Amigos, amigas… en esta ocasión les quiero explicar cómo demonios puedo crear una livecd para cualquiera.
En ocasiones es molesto estar reinstalando pc por pc y además deseamos usar nuestra iso sin disco duro.
Pues aquí está la solución esperada, el nirvana de los livecd, el oráculo(col la tilde en la primera a) de las distros, jeje
Bueno, lo primero que debemos hacer es preparar nuestro sistema a cómo deseamos que quede, en este paso reinstalamos las cosas y borramos los archivos innecesarios con bleachbits y algunas locales fuera de es y us
Limpie su PC eliminando todo el contenido de /usr/share/doc/* así pesará menos el iso.
Luego de limpiar no habrá nada más para no crear basura nuevamente y aproveche esta situación para clonar nuestra apariencia de usuario para los demás usuarios con
cp -rfv /home/miusuario/* /etc/skel/
cp -rfv /home/miusuario/.* /etc/skel/
rm -rfv /etc/skel/.cache
En /etc/skel está la configuración que se copia a cada usuario cuando se crea uno nuevo.
Elimine las reglas de udev con
rm -v /etc/udev/rules.d/*
Si no haces esto, cuando pongas una tarjeta wifi en el live-cd en vez de comenzar como wlan0 por ejemplo empezaría en 1 en la nomenclatura vieja wlanX
También desmonte todo lo de /media y elimine las carpetas dentro de /media/*, si no haces esto no podrás montar dispositivos usb como usuario normal en el live-cd puesto que tendría el propietario del usuario viejo y cuando crees un nuevo usuario no podrás montar nada a no ser como root.
La solución es eliminar todo lo dentro de /media para que el usuario lo cree con sus permisos.(Desmonte antes todo lo de media para no perder datos)
Ya casi podemos crear nuestro live cd
Para esto debes instalar squashfs-tools y live-boot del repo. Se puede empaquetar el sistema desde dentro del mismo sstema excluyendo /tmp,/dev/sys/media, etc pero recomiendo hacerlo desde otro live cd u otra partición con GNU/Linux para que no haya nada en uso.
Antes de empaquetar no se puede olvidar comentar todas las lineas de /etc/fstab porque si no nuestra distro estará buscando discos que no existen y demorará mucho en cargar.
No se preocupe luego puede descomentarlas desde otro live cd montando la partición y editando el archivo.
En este punto y estando en otro GNU/Linux montamos la partición de nuestro sistema con
mkdir sistema
mount /dev/sda1 ./sistema
Empaquetamos con mksquashfs ./sistema -comp xz filesystem.squashfs
Creamos una carpeta raiz de nuestro live con sus sub carpetas
mkdir -p milive/live
mkdir -p milive/boot
Movemos el squashfs a live
mv ./filesystem.squashfs ./milive/live
Antes de copiar nuestro kernel/initrd a nuestra carpeta live nos aseguramos que los scripts de booteo de live bboot estén dentro del initramfs, estos hacen que el sistema se autoajuste a cualquier pc en tiempo de booteo
update-initramfs -u
Luego copiamos kernel e initrd
cp -fv /boot/vmlinuz-* ./milive/live/kernel
cp -fv /boot/initrd-* ./milive/live/initrd
Ahora armamos la carpeta de booteo que puede ser con grub o isolinux que es el más usado, para eso remomiendo cojer la carpeta boot de otro live de plantilla y cambiar el nombre del kernel e initrd del archivo isolinux.cfg y agregarle las opciones boot=live components al kernel con la opcion append en isolinux por ejemplo.
Luego puede empaquetar la iso con genisoimage
genisoimage -b isolinux/isolinux.bin -c isolinux/isolinux.cat -r -J -o cd_image.iso ./milive
Luego prueba el iso con qemu
qemu-system -cdrom cd_image.iso -m 1G -vga qxl -enable-kvm -cpu host -machine type=q35
Como última recomendación puede convertir el iso a híbrida con el script isohibrid para que pueda usar dd para pasar el iso en estado puro a un usb y que bootee.
Nota: Instaldo el paquete isolinux, se instalará también en usr/share/isolinux plantillas para usar en nuestra iso, solinux/syslinux, etc permiten poner una foto de fondo de resolucíon 640×480 a nuestro menú para eso vea la documentación de lo programas isolinux. Isolinus se usa para imágenes de cd, syslinux para usb, etc aunque si vuelca una imágen híbrida con dd no necesitará adaptar el archivo ni cambiarle el nombre de isolinux.cf a syslinux.cfg como en el caso de copiar a mano los archivos en la raíz del usb ye instalar syslinux en el mbr dle pendrive.