Crear o Modificar Mi Propio Live CD de Ubuntu

Ésta va a ser la primera entrada, vamos a crear una versión del live cd de ubuntu.

Cuántas veces no nos hemos encontrado en que queremos enseñar un live cd y no tiene internet para descargar códecs de audio, o bien queremos rescatar un sistema y no tenemos ésa herramienta que siempre instalamos en nuestro ubuntu, por citar algunos ejemplos.

Ahora, con éste sencillo método podremos fardar, o bien rescatar en, o cualquier sistema. Bien, necesitaremos una iso de nuestra versión favorita de ubuntu, y un par de paquetes: squashfs-tools y mkisofs (que ahora se llama genisoimage)

Por cierto, estoy dando por hecho que conocéis bien la consola y sabéis lo que es un chroot, por que si no es así, éste artículo podría costaros un poco de entender.


Sin más dilación, yo concretamente voy a modificar la ubuntu 8.04.1. Ala pues, al tajo:

sudo apt-get install mkisofs squashfs-tools

Para tener las cosas claras y ordenadas, vamos a crear una estructura de directorios para trabajar tranquilos.

El proceso siguiente descibe lo siguiente:

-Montar la imágen del cdrom
-Montar el filesystem.squashfs en un directorio
-Copiar el contenido del filesystem.squashfs a otro directorio para poder modificarlo
-Copiar el resolv.conf del equipo host (principal, el nuestro) para poder acceder a internet
-Chrotearnos en el filesystem.squashfs para poder modificar el sistema de ficheros de forma nativa.

Bueno, ahí va:


mkdir ubuntu8
cd ubuntu8
cp ../ubuntu8.iso .
mkdir image
mkdir squash
mkdir mysquash
sudo mount -t iso9660 -o loop ubuntu8.iso ./image
sudo mount -t squashfs -o loop ./image/casper/filesystem.squashfs ./squash
cp -vr ./squash/* ./mysquash
sudo cp /etc/resolv.conf ./mysquash/etc
sudo chroot ./mysquash

Ahora, en nuestra consola, será como si estuviéramos en el root de un linux normal, es decir, podremos hacer los apt-get install o apt-get remove que queramos, modificando unicamente el squash.

Hacemos los apts necesarios. En mi caso me he quitado todo el tema de ofimática y juegos, he quitado el escritorio gnome y he puesto xfce. Como ya he dicho antes, doy por hecho que ésto lo sabéis hacer, así que no voy a ponerlo aquí (Quizás otro día haga un artículo de introducción a bash)

Ahora hay que empaquetar los cambios del directorio mysquash y generar un filesystem.

mksquashfs ./mysquash filesystem.squashfs

Éso tarda bastante rato, aunque la imágen que generemos sea pequeña. Ahora deberíamos copiar la imágen del live que montamos antes en otro directorio, como por ejemplo: imagen_nueva

Luego ponemos el filesystem.squashfs en el casper de la imágen nueva

sudo cp filesystem.squash ./imagen_nueva/casper

Después hacemos una imágen iso:

mkisofs -J -R -o ubuntu-my-live.iso -no-emul-boot -boot-info-table -b isolinux/isolinux.bin ./imagen_nueva

Ahora ya está, la podemos probar por ejemplo, con qemu.

7 comentarios:

NepT1 dijo...

Hola! Gracias por esta guía, logre hacer un CD personalizado y funciona bastante bien hasta que llega el momento de iniciar sesión donde me aparece un error critico de KDM (inicia con kdm), después de aceptar aparece la pantalla para insertar usuario y pass, puedo escoger entre gnome y kde4, los dos inician (en kdm hasta sale la ventanita de carga) pero se queda sin aparecer nada en el escritorio y tampoco sale ningún error.

NepT1 dijo...

Por cierto, inicia sesión porque añadí un nuevo usuario al sistema porque si no, no inicia automáticamente como con el cd original. Quizás tendría que añadir algún fichero de configuración al home del usuario creado? Aunque no creo, después de introducir el nombre y pass me dice: Added user ... y se supone que el sistema ya crea lo necesario para iniciar la sesion.

Tooom@s dijo...

Mejor Usar uck "Ubuntu Cotumization Kit"(solo en Ubuntu en Debian puro no) es parecido a esos proprogramas para hacer win xp desatendidos buscalo en adep o por Synaptic‎ como uck si no te sale a la primera debes actulizar tu linux, o por ultimo busca en internet uck youtube y veras un tutorial de como es esta notable herramienta

Unknown dijo...

Hola, he intentado modificar un cdlive, pero me arroja un error:

mount: wrong fs type, bad option, bad superblock on /dev/loop1,
missing codepage or helper program, or other error
En algunos casos se encuentra información en syslog, pruebe
dmesg | tail o algo parecido

tienes una idea de lo que pueda estar ocurriendo.

Unknown dijo...

@Tooom@as: Gracias, cuando hice la entrada no existía.

@Victor: No, prueba dmesg | tail y veremos que pasa

Engerbert Escalona dijo...

Buenos días, estoy probando tu post, pero me encontre con el mismo error que Victor Stenger, al realizar:

mount -t squashfs -o loop ./image/live/filesystem.squashfs ./squash

El sistema me retorna este mensaje:

mount: wrong fs type, bad option, bad superblock on /dev/loop1,
missing codepage or helper program, or other error
En algunos casos se encuentra información en syslog, pruebe
dmesg | tail o algo parecido

Inmediatamente realice un dmesg | tail, con el siguiente resultado:

[ 233.458956] sd 4:0:0:0: [sdb] Write Protect is off
[ 233.458963] sd 4:0:0:0: [sdb] Mode Sense: 03 00 00 00
[ 233.458967] sd 4:0:0:0: [sdb] Assuming drive cache: write through
[ 233.461423] sd 4:0:0:0: [sdb] Assuming drive cache: write through
[ 233.461432] sdb: sdb4
[ 233.463740] sd 4:0:0:0: [sdb] Assuming drive cache: write through
[ 233.463748] sd 4:0:0:0: [sdb] Attached SCSI removable disk
[ 233.992848] FAT: utf8 is not a recommended IO charset for FAT filesystems, filesystem will be case sensitive!
[ 379.309912] ISO 9660 Extensions: Microsoft Joliet Level 3
[ 379.309973] ISO 9660 Extensions: RRIP_1991A

Y realice un tail -f /var/log/syslog, con el siguiente resultado:

Jan 11 11:11:35 eescalona kernel: [ 233.461423] sd 4:0:0:0: [sdb] Assuming drive cache: write through
Jan 11 11:11:35 eescalona kernel: [ 233.461432] sdb: sdb4
Jan 11 11:11:35 eescalona kernel: [ 233.463740] sd 4:0:0:0: [sdb] Assuming drive cache: write through
Jan 11 11:11:35 eescalona kernel: [ 233.463748] sd 4:0:0:0: [sdb] Attached SCSI removable disk
Jan 11 11:11:36 eescalona kernel: [ 233.992848] FAT: utf8 is not a recommended IO charset for FAT filesystems, filesystem will be case sensitive!
Jan 11 11:13:51 eescalona AptDaemon: INFO: Quiting due to inactivity
Jan 11 11:13:51 eescalona AptDaemon: INFO: Shutdown was requested
Jan 11 11:14:01 eescalona kernel: [ 379.309912] ISO 9660 Extensions: Microsoft Joliet Level 3
Jan 11 11:14:01 eescalona kernel: [ 379.309973] ISO 9660 Extensions: RRIP_1991A
Jan 11 11:17:01 eescalona /USR/SBIN/CRON[2479]: (root) CMD ( cd / && run-parts --report /etc/cron.hourly)


¿Qué puede ser?

Unknown dijo...

hola muy interesante tu foro, tengo una pregunta despues que monto la imagen y quiero realizar algun cambio me dice denegano por que sera?