![]() |
En este artículo aprenderemos a crear nuestra propia distribución basada en Debian instalada en un Pendrive USB. No será un sistema Live, como muchos, sino una instalación estándar, como si de un disco duro se tratase. Todo lo que hagamos en el SO de ese pendrive, quedará guardado. Con la peculiaridad de que lo prepararemos (o al menos lo intentaremos xD) para que arranque con cualquier máquina x86 |
Motivación
¿Por qué hacerlo? En primer lugar para aprender. Seguro que ya existen sistemas hechos para instalar en pendrive, ¿pero donde estaremos más cómodos que en el nuestro propio? Como instalaremos sólo lo que necesitemos, podemos reducirlo a un sistema minimalista que entre en un Pendrive de 500MB, o un sistema completo para Pendrives de mayor capacidad.
Además bastará con crear una imagen del pendrive (mediante 'cat' o 'dd') para clonarlo las veces que queramos y en en número de memorias USB que deseemos (sería un buen regalo para un amigo: "un pendrive con una mini distribución hecha por ti mismo" xD).
También vereis que el proceso es realmente sencillo, no necesitaremos estar una semana encerrados en la habitación para lograrlo (ni mucho menos xD), en unos 30 minutos estará hecho.
Requisitos
El proceso
Preparando el Pendrive
Introducimos el Pendrive en la ranura USB (suponemos que esta en /dev/sdb1).
Particionamos mediante fdisk (creamos 1 sola partición de tipo Linux (83), formateamos en ext2 y montamos en /mnt.
fdisk /dev/sdb1 mkfs.ext2 /dev/sdb1 mount /dev/sdb1 /mnt |
Instalando el sistema base
Esto nos lo hará la genial herramienta debootstrap. Sólo necesitamos indicarle la arquitectura y la versión de Debian a usar.
En nuestro caso sera 'i386' y 'etch', pero podeis variarlo según querais.
debootstrap --arch i386 etch /mnt |
Este proceso tardará un poco, ya que descarga los paquetes del sistema base desde internet.
Customizando el sistema
Ahora ya tenemos un sistema mínimo en el Pendrive. Vamos a instalar las herramientas que encontremos necesarias, y a personalizarlo un poco a nuestro gusto.
En primer lugar montamos /proc y /dev, copiamos resolv.conf (para las dns) y realizamos el cambio de sistema (chroot).
cp /etc/resolv.conf /mnt/etc/resolv.conf mount -t proc none /mnt/proc mount -o bind /dev /mnt/dev chroot /mnt |
Si todo va bién, ya estamos en nuestro nuevo sistema. Vamos a instalar las locales necesarias.
aptitude install locales dpkg-reconfigure locales aptitude install localepurge localepurge |
Instalamos la imagen del kernel, las herramientas básicas y syslinux.
También asignamos el password de root, y creamos un usuario que llamaremos 'user'
aptitude install linux-image-2.6.18-5-686 depmod 2.6.18-5-686 aptitude install install joe screen ssh less openssl console-tools console-keymaps aptitude install syslinux user-setup |
Para poder usar el Pendrive en cualquier PC, necesitamos algun método que nos permita detectar en que unidad lo ha detectado la BIOS. Es decir sda,sdb,sdc... Para ello utilizaremos las etiquietas de disco (Label). Para asignar una etiqueta a un disco utilizaremos tune2fs. La etiqueta puede llamarse como queramos.
tune2fs -L Debax /dev/sdb1 |
Configuramos los archivos básicos. El contenido de estos depende de nuestro caso en particular. Para editarlos podemos usar nano por ejemplo.
nano /etc/network/interfaces auto lo iface lo inet loopback auto eth0 iface eth0 inet dhcp nano /etc/hostname Debax nano /etc/hosts 127.0.0.1 localhost Debax nano /etc/fstab proc /proc proc defaults 0 0 LABEL=Debax / ext2 defaults,rw 0 1 |
Creamos el archivo mtab, e instalamos extlinux en el disco y mbr. ¡Mucho cuidado con este último paso!
grep -v rootfs /proc/mounts > /etc/mtab mkdir -p /boot/extlinux extlinux -zi /boot/extlinux cat /usr/lib/syslinux/mbr.bin > /dev/sdb |
Ahora creamos el archivo de configuración de extlinux.
nano /boot/extlinux/extlinux.conf default Debax prompt 1 timeout 5 display /boot/extlinux/hola.msg label Debax kernel /boot/vmlinuz-2.6.18-5-686 append initrd=/boot/initrd.img-2.6.18-5-686 rw root=LABEL=Debax |
Creamos, si queremos, el archivo hola.msg que será el mensaje que expondrá extlinux en el arranque.
nano /boot/extlinux/hola.msg Bienvenido a Debax USB Una mini distribucion basada en Debian Visita dabax.net ;>) |
Ya podemos reiniciar el PC con el Pendrive insertado y arrancar desde él. Sería buena idea instalar el resto del software que creamos interesante.
aptitude install xserver-xorg xfce4 firefox gaim |
Creando algunos scripts de arranque
En este punto vamos a personalizar un poco más el sistema. Crearemos algunos scripts de arranque.
startX: iniciará el entorno gráfico (es necesario modificar el script y cambiar user por el usuario que tengamos en el sistema)
keymap: pondrá el teclado en español
iniciar_dhcp: iniciará una búsqueda dhcp general
xorg_conf: dará opción en el arranque de configurar las X
nano /etc/init.d/startX
#!/bin/bash
case $1 in
start)
echo "Iniciando sistema grafico"
echo "Puedes consultar el LOG en /var/log/arranque_x.log"
X :0 1>>/var/log/arranque_x.log 2>>/var/log/arranque_x.log &
DISPLAY=:0 su user -c xfce4-session 1>/dev/null 2>/dev/null &
;;
stop)
echo "Parando todos los procesos X"
killall -9 X
;;
*)
echo "Opcion invalida"
;;
esac
nano /etc/init.d/keymap
#!/bin/bash
loadkyes es
nano /etc/init.d/iniciar_dhcp
#!/bin/bash
case $1 in
start)
echo "Iniciando dhcp inicial"
echo "Para desacivar el dhcp inicial: update-rc.d -f iniciar_dhcp remove"
dhclient
;;
esac
nano /etc/init.d/xorg_conf
#!/bin/bash
case $1 in
start)
echo -e "\033[0;36m Pulsa [ENTER] para configurar las X \
o espera 5 segundos para mantener la configuracion actual\033[0m"
read -t 5 OP
if [ $? -eq 0 ]; then
cp /etc/X11/xorg.conf /etc/X11/xorg.conf.backup0
echo "Backup de la configuracion actual guardado como xorg.conf.backup0"
dpkg-reconfigure xserver-xorg
fi
;;
esac
chmod +x /etc/init.d/xorg_conf /etc/init.d/iniciar_dhcp /etc/init.d/keymap /etc/init.d/startX
update-rc.d startX defaults 99
update-rc.d xorg_conf defaults 98
update-rc.d keymap defaults 98
update-rc.d iniciar_dhcp defaults 98
|
Y ya esta. ¡A disfrutar!
Clonando el pendrive
Ahora podemos guardar una copia del Pendrive para copiarla posteriormente en otro
Podemos usar dd:
- Para guardar la copia: dd if=/dev/sdb1 of=Debax.dd
- Para clonar otro Pendrive: dd if=Debax.dd of=/dev/sdc1
Este proceso requiere que el Pendrive clonado, sea igual o de mayor tamaño. Si es de mayor tamaño, el espacio que sobre quedará no utilizable.
Otra forma menos "chapuzera" de clonarlo es guardar el mbr por un lado y copiar los archivos del sistema por otro:
En el Pendrive de origen (sdb):
dd if=/dev/sdb of=/tmp/mbr_Debax.dd count=512 mount /dev/sdb1 /mnt cd /mnt ; tar cvf /tmp/Debax.tar * |
En el Pendrive de destino (sdc):
dd if=/tmp/mbr_Debax.dd of=/dev/sdc mount /dev/sdc1 /mnt tar xvf /tmp/Debax.tar -C /mnt/ |
- Inicie sesión o regístrese para enviar comentarios

