HOWTO: Creando un liveusb de debian personalizado

Hola a todos

Ahora que jessie está a punto de ser stable he pensado en crearme un pendrive para tareas de rescate o lo que surja. Voy a poner aquí el proceso que he seguido por si a alguien más le sirve (y para que no se me olvide XD).

Lo haré desde mi actual instalación, debian jessie, usando debootstrap, squashfs-tools y syslinux. También podríamos hacerlo desde ubuntu o arch.

Empezamos instalando los paquetes necesarios
apt-get install debootstrap squashfs-tools syslinux gparted chroot


Creamos la carpeta donde trabajaremos e instalamos el sistema base
mkdir liveusb
debootstrap --arch=i386 jessie liveusb http://ftp.fr.debian.org/debian


Los parametros que le pasamos a debootstrap son bastante "autoexplicativos" pero por si acaso...
-arch=i386: Aquí le decimos para que arquitectura crearemos el sistema. Si no ponemos nada usará la de la instalación actual (amd64 en mi caso). He elegido i386 para que sea más universal.
-jessie: Aquí le decimos la rama de debian que queremos usar. También podríamos poner el nombre genérico (testing) o incluso una versión de ubuntu (intrepid, vivid...)
-liveusb: Es el nombre de la carpeta donde instalaremos
Y el último parámetro es el mirror desde el que se descargará todo, he puesto el francés porque suele ir bastante mejor que el español.

Entramos en la carpeta.
chroot liveusb


Ahora estamos dentro del nuevo sistema. Tenemos que hacer un par de ajustes para evitar errores.
mount -t proc none proc
mount -t sysfs none sys
mount -t devpts none dev/pts


Con esto hemos montado 3 carpetas importantes del sistema, para que piense que estamos en una instalación normal y que no de avisos a la hora de escribir logs por ejemplo.

Lo primero y antes de que se nos olvide cambiamos el password de root.
passwd


Luego configuramos el idioma y la hora
apt-get install locales
dpkg-reconfigure locales
dpkg-reconfigure tzdata


Instalamos el kernel
apt-get install linux-image-686-pae


Y luego ya los paquetes que queramos. Yo voy a instalar un escritorio completo con xfce.
apt-get install task-xfce-desktop task-spanish task-spanish-desktop task-spanish-kde-desktop live-boot gstreamer1.0-libav


El primer paquete instala xfce junto a las aplicaciones "típicas" de escritorio como libreoffice o iceweasel. Los 3 siguientes son los paquetes de idiomas para localizar todo al español. live-boot instala los scripts necesarios para arrancar en modo live y el último paquete sirve para poder ver vídeos en html5 con iceweasel.

Creamos un usuario para poder iniciar sesión, en mi caso le llamaré "usuario".
adduser usuario


Una vez que terminado desmontamos y salimos.
umount -lf dev/pts
umount -lf sys
umount -lf proc
exit


Ahora que volvemos a estar fuera comprimiremos la carpeta en un sólo fichero.
mksquashfs liveusb filesystem.squashfs


Con esto hemos creado el sistema. Ahora prepararemos el usb para arrancar. Abrimos gparted, creamos una partición fat32 y la marcamos como boot. No me alargo más aquí porque es bastante sencillo.

Una vez preparado el pendrive le instalamos syslinux
dd conv=notrunc bs=440 count=1 if=/usr/lib/syslinux/mbr/mbr.bin of=/dev/sdX
syslinux --install /dev/sdX


Con el primer comando sobreescribimos el mbr del pendrive y con el segundo instalamos syslinux. Creamos un fichero llamado syslinux.cfg en la raíz del pendrive con este contenido
default live
prompt 0

label live
   kernel live/vmlinuz
   initrd live/initrd.img
   append boot=live quiet


Creamos una carpeta llamada "live" dentro del pendrive y ahí copiamos 3 ficheros: filesystem.squashfs (que hemos creado antes), vmlinuz y initrd.img. Estos dos últimos están dentro de la carpeta "liveusb" que hemos creado antes, dentro de "boot". Tendrán nombres más largos.

Reiniciamos y probamos el pendrive. Si todo ha ido bien, al arrancar os saldrá la pantalla de inicio de sesión de lightdm, entramos con el usuario que hemos creado y aparecerá xfce con la configuración estandar. Recordad que al ser un sistema live todos los cambios que hagamos se borrarán al apagar. Yo lo que hice fue iniciar, configurar el escritorio a mi gusto (temas, atajos de teclado, configuarción del panel, instalar un par de extensiones a iceweasel...) y guardarme una copia de la carpeta ".config" que hay en el home del usuario. Luego, ya de vuelta en mi sistema, copié esa carpeta dentro de "liveusb" y volví a crear el fichero filesystem.squashfs. Así tengo un escritorio personalizado.

Podéis customizar el sistema todo lo que queráis modificando la carpeta liveusb que creamos al principio (tocar ficheros de configuración, instalar nuevos paquetes...).

Espero que a alguien más le sirva!
0 respuestas