Changes between Version 7 and Version 8 of InitrdCliente


Ignore:
Timestamp:
Jul 15, 2009, 1:36:53 PM (15 years ago)
Author:
adelcastillo
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • InitrdCliente

    v7 v8  
    11= Cliente Initrd =
    22
    3 El cliente initrd.gz es sistema muy liviano que nos permitirá instalar sistemas con un arranque muy rápido. El initrd.gz es un archivo comprimido que tiene un sistema de ficheros completo. Modificar el initrd.gz puede ser bastante molesto, así que nuestro objetivo es modificarlo lo menos posible, pero que funcione en todos los ordenadores posibles sin que haya que actualizarlo continuamente. Para ello lo que vamos a hacer es usar el initrd.gz de Ubuntu y modificarle simplemente el arranque. Cualquier cosa que querramos agregarle al sistema lo haremos a través de NFS. Ejemplos de cosas que se podrían agregar a través NFS sería:
     3El cliente initrd.gz es sistema muy liviano que nos permitirá instalar sistemas con un arranque muy rápido. El initrd.gz es un archivo comprimido que tiene un sistema de ficheros completo. Modificar el initrd.gz puede ser bastante molesto, así que nuestro objetivo es no tener que modificarlo nunca más, pero que funcione en todos los ordenadores posibles sin que haya que actualizarlo continuamente. Para ello lo que vamos a hacer es usar el initrd.gz de Ubuntu y modificarle simplemente el arranque. Además podemos borrarle todo lo que tenga que ver con la instalación de Ubuntu. Cualquier cosa que querramos agregarle al sistema lo haremos a través de NFS. Ejemplos de cosas que se podrían agregar a través NFS sería:
    44 * Arranques polimórficos. El cliente buscará que hacer en el servidor, que puede ofrecerle un script distinto cada vez.
    55 * Ejecutables compilados estáticamente. Estáticamente para que no haya que mantener todos los programas compilados con las misma libreria, menos manteniento. Es importante modificar el PATH en el script de arranque para agregar las rutas nuevas de los ejecutables nuevos.
     
    3535}}}
    3636Esto te crea en /tmp/initrd/newroot el sistema de ficheros que tendrías al arrancar con el núcleo y el initrd. Cualquier modificación que le hagamos al sistema de ficheros se verá afectado cuando se vuelva a comprimir.
     37
     38== BusyBox ==
     39Este tipo de instalación (debian en modo consola) se basan en usar la herramienta BusyBox. Es un ejecutable que proveé la mayoria de las herramientas unix en un espacio reducido. Entonces si miramos por ejemplo el directorio /bin del initrd veremos que sólo son enlaces a la herramienta busybox. Un 'ls -l' se ejecutaría como un 'busybox ls -l' dentro de la instalación. Todo lo que no tenga el busybox es lo que deberemos agregar por NFS y compilación estática. Busybox es también tiene un init. Sabe usar el /etc/inittab pero no tiene soporte para arranque multinivel. El fichero /etc/inittab es el fichero que usa el primer proceso llamada "init" para saber que tiene que hacer. Para más informacción man inittab. El fichero que trae el initrd.gz de Ubuntu lo primero que hace es llamar a debian-installer-startup que llama, a su vez, a los scripts de /etc/rcS.d/. Si agregaramos nuestros scripts directamente en ese directorio, como viene en el apartado "Modificar el arranque" conseguiriamos ejecutar nuestro código antes que la instalación de Ubuntu, y sí al final ponemos un restart o un shutdown nadie sabría que es una instalación de Ubuntu. Una mejor manera es borrar todo sobre la instalación de Ubuntu scripts, librerias, configuración, etc. para que quede mucho más claro y ocupe menos espacio. Si se quiere crear un initrd de prueba, rápido y sucio puedes pasar directamente a "Modificar el arranque".
     40
     41== Borrando restos de Ubuntu/Debian (Sin acabar) ==
     42
     43Modificamos el inittab por este otro:
     44
     45Borramos los siguientes ficheros de la instalación de Ubuntu:
     46{{{
     47find -name *debian* -exec rm -rf {} \;
     48cd bin/
     49file * | grep shell | awk -F ":" '{print $1}' | xargs rm
     50rm anna archdetect choose-mirror log
     51rm -rf apt-install choose-mirror deb* env2debconf ethdetect fetch-url
     52rm -rf lib/main-menu.d
     53}}}
    3754
    3855== Modificar el arranque ==