Con esta entrada pretendemos compartir nuestra experiencia en la generación del Live-EPS para que, aquellos que necesitéis un sistema personalizado, podáis generaros uno. Para generar las versiones del CD/DVD utilizaremos la herramienta uck (Ubuntu Customization Kit), que instalaremos descargando el paquete (.deb) de la página http://uck.sourceforge.net si nuestra distribución no la incluye (para la versión Ubuntu 10.04 TLS ya está disponible en sus repositorios). Para la última versión (2011) del Live-EPS se ha utilizado la versión 2.2.1 del UCK.
Para generar el DVD necesitamos un directorio con al menos 5GB de espacio, aunque lo recomendable para no ir ajustado de espacio es que tenga 10GB de espacio libre como mínimo, aparte del espacio que destinemos a guardar las distintas copias de los DVD que queramos conservar. Además, para grabar el DVD arrancable es recomendable grabarlo con el Gnome Baker, pues permite grabar imagenes de DVD.
La metodología a utilizar consistirá en desempaquetar el iso original, opcionalmente desempaquetar el initrd que utiliza dicho iso, descomprimir el sistema de archivos squashfs comprimido, modificar como root dicho sistema de archivos añadiendo/borrando y/o configurando los paquetes necesarios (y opcionalmente el initrd), compresión del sistema de archivos modificado (y opcionalmente el initrd), y por último la generación del nuevo iso del DVD de Ubuntu customizado. Para realizar dichos pasos, UCK nos proporciona una serie de scripts, haciendo todas estas operaciones dentro del directorio $HOME/tmp del usuario que lance los scripts (siempre se lanzarán mediante sudo), creando los subdirectorios necesarios para realizar las operaciones. En concreto, los pasos a seguir para generar nuestro Live-DVD:
- En una instalación limpia de SO con Ubuntu 10.04.1 LTS, hemos instalado el programa UCK (Ubuntu Customization Kit), en su versión 2.2.1. El fichero con formato debian, en este caso, es uck_2.2.1-0ubuntu1_all.deb.
- Creamos, en el directorio $HOME del usuario, el directorio tmp, que es donde “colgarán” el resto de directorios auxiliares que UCK utilizará para trabajar.
- Descargamos el CD de Ubuntu 10.04.1 para 32 bits (plataforma i386), cuyo archivo es ubuntu-10.04.1-desktop-i386.iso. Lo dejamos en $HOME/Descargas.
- Desempaquetamos, como usuario normal, la ISO descargada mediante la orden:
- Esto nos generará el directorio $HOME/tmp/remaster-iso, donde veremos los archivos que contiene la imagen ISO del CD.
- Desempaquetamos el initrd que el DVD utiliza para arrancar. Por ahora no es fundamental pero procedemos a ello:
- Desempaquetamos, como usuario normal, el sistema de ficheros del CD alojado en remaster-iso (y que viene comprimido en formato squashfs):
- A continuación, accederemos como ‘root’ al sistema de archivos que tenemos descomprimido en $HOME/tmp/remaster-rootfs para poder realizar las modificaciones que deseemos (instalar paquetes con apt-get, configurar servicios, etc.) Esto lo conseguiremos mediante:
- Recomprimimos a formato squashfs con:
- Recomprimimos el nuevo initrd para el ISO, a partir del contenido del directorio $HOME/tmp/remaster-initrd con:
- Generamos, a partir de los nuevos rootfs e initrd, el nuevo ISO de nuestra Ubuntu customizada con el SW de la base, el comando es
cd $HOME sudo uck-remaster-unpack-iso Descargas/ubuntu-10.04.1-desktop-i386.iso
cd $HOME sudo uck-remaster-unpack-initrd
Esto nos generará el directorio $HOME/tmp/remaster-initrd, donde veremos los directorios y archivos del disco RAM de inicio (el sistema de archivos que contiene los comandos básicos que utiliza el CD para arrancar y que se aloja en RAM, cuando aún no está el sistema de archivos raíz montado).
cd $HOME sudo uck-remaster-unpack-rootfs
Esto nos generará el directorio $HOME/tmp/remaster-root con los directorios y archivos del sistema de archivos del CD en crudo, tal como los necesitamos para modificar/añadir/eliminar, en su caso.
cd $HOME sudo uck-remaster-chroot-rootfs
Para salir del entorno chroot en el que hemos realizado los cambios, solo tendremos que ejecutar en dicho entorno la orden exit
cd $HOME sudo uck-remaster-pack-rootfs
cd $HOME sudo uck-remaster-pack-initrd
cd $HOME sudo uck-remater-pack-iso
Tras este último paso, ya tendremos nuestra primera versión de un Live-DVD de Ubuntu. Si quiesiéramos hacer nuevas modificaciones, para generar un nuevo DVD a partir del primero realizado, podemos empezar desde el punto 8 de esta lista.
Podemos, además, realizar un control de versiones (en nuestro caso con SVN), controlando los cambios en los directorios $HOME/tmp/remaster-initrd y $HOME/tmp/remaster-rootfs