domingo, 11 de noviembre de 2007

Personalizar el live CD de Ubuntu.

Como primer tutorial vamos a ver como personalizar el live CD de Ubuntu para crear uno a medida e incluso llegar a crear nuestra propia distro basada en la de Canonical. Para la realización del mismo hemos segido la guia existente en la documentación de Ubuntu

Instalamos y cargamos las herramientas necesarias:
sudo apt-get install squashfs-tools mkisofs qemu
sudo modprobe squashfs

Descargamos el cd oficial de ubuntu y lo colocamos en un directorio vacío, en nuestro caso, y usando mucho la imaginación, lo llamamos Isos y nos colocamos en él.
cd Isos

Una vez en este directorio creamos otro y lo llamamos mnt, en este directorio es donde montaremos la iso.
mkdir mnt
sudo mount -o loop ubuntu-7.10-desktop-i386.iso mnt

Después extraemos el contenido del cd a otro directorio, en este caso lo llamaremos content
rsyinc --exclude=/casper/filesystem.squashfs -a mnt/ content

Creamos otro directorio llamado squashfs y montamos en él el sistema de ficheros que hemos volcado de content.
mkdir squashfs
sudo mount -t squashfs -o loop mnt/casper/filesystem.squashfs squashfs

Y después extraemos lo montado en un directorio llamado edit. Esta operación puede resultar lenta.
mkdir edit
sudo cp -a squashfs/* edit/

Preparamos la conexión del live CD
sudo cp /etc/resolv.conf edit/etc/
sudo cp /etc/hosts edit/etc/
sudo chroot edit
mount -t proc none /proc
mount -t sysfs none /sys

Importamos las keys locales
export HOME=/root
export LC_ALL=C

Y ahora entramos ya en el lío, vamos a configurar lo que queremos en nuestro live CD.

Un ejemplo es cambiar el fondo de pantalla, para ello iremos a edit/usr/share/backgrounds y copiaremos la imagen que queremos emplear, después la añadiremos en el siguiente fichero: edit/usr/share/gnome-background-properties/ubuntu-wallpapers.xml.

Otro ejemplo es añadir alguna aplicación copiando su directorio de nuestro /usr al de edit.

En mi caso y ya que lo que quiero es un live CD de todo lo que contiene mi PC lo copio enterito, al igual que con el directorio home. Aunque esto es una operación lenta que requiere de mucho espacio libre.

Con el contenido ya colocado vamos a reorganizar el CD y crear la iso. Lo primero en este proceso es regenerar el archivo manifest.
chmod +w content/casper/filesystem.manifest
sudo chroot edit dpkg-query -W --showformat='${Package} ${Version}\n' > content/casper/filesystem.manifest
sudo cp content/casper/filesystem.manifest content/casper/filesystem.manifest-desktop
sudo sed -ie '/ubiquity/d' content/casper/filesystem.manifest-desktop

Comprimimos el file system, aviso, es muy lento.
sudo rm extract-cd/casper/filesystem.squashfs
sudo mksquashfs edit extract-cd/casper/filesystem.squashfs

Ponemos el nombre a nuestra imagen.
sudo gedit content/README.diskdefines

Actualizamos el fichero md5sum borrando el viejo y creando otro.
sudo -s
rm content/md5sum.txt
(cd extract-cd && find . -type f -print0 | xargs -0 md5sum > md5sum.txt)
exit

Y creamos la ISO.
cd content
sudo mkisofs -r -V "$IMAGE_NAME" -cache-inodes -J -l -b isolinux/isolinux.bin -c isolinux/boot.cat -no-emul-boot -boot-load-size 4 -boot-info-table -o ../ubuntu-6.06.1-desktop-i386-custom.iso

Ya sólo nos queda quemarla en un CD y disfrutar de nuestra distro de ubuntu personalizada.

2 comentarios:

Anónimo dijo...

Hola,

Felicitaciones, muy bueno el tutorial.

Esto es para el usplash de ubuntu 7.10 instalado, pero en el live CD no se cambia ( se queda el clasico de ubuntu )

¿Alguna idea como se puede personalizar el del Live CD tambien ?

Saludos

Noara dijo...

Pon en la carpeta del filesistem.squashfs el kernel y el initrd de la distro k emos montado en la carpeta.


Suerte :)

---------------------------
mi blog de programación

Sin Noticias de los jefes