¿cuantas distros puedo poner en un pendrive de 8Gb? (o una tarde de ocio)

#1
Bueno, esta tarde me dispuse a re-crear un experimento que hice hace cerca de 6 años, en el cual logré hacer funcionar un liveUSB con 16 distros usando GRUB Legacy, en esta oportunidad trabajaré con BURG.

Ingredientes:

Isos de sistemas operativos:

en mi caso tengo por los momentos:

- System Rescue CD

- NanoLinux

- MacPup

- OpenElec

- Debian Netinst multi arch

- Slitaz

- Dr.Web

- gparted

- Android 4.0

Un sistema GNU/Linux corriendo (yo lo hice con Jessie, pero incluso puede ser un livecd siempre que tenga la opción de instalar el burg; EJ. Canaima GNU/Linux)

Obviamente un Pendrive (el mío es de 8Gb) por cuestiones de espacio no es recomendable usar un de capacidad inferior a 4Gb

Preparación:

Primeramente hacemos un total respaldo del contenido de nuestro pendrive porque es necesario formatearlo:

Iniciamos gparted, eliminamos TODAS las particiones del pendrive (por lo general es una sola XD) luego creamos una partición nueva en FAT32, dejando 520Mb libres al final ¿para que? luego lo veremos. Le ponemos el nombre/etiqueta de nuestra preferencia.

En el espacio libre dejado al final crearemos una partición (aca no importa el formato, podemos dejar por defecto ext2) usando el total del espacio disponible.

Desconectamos y volvemos a montar el pendrive para que se actualice por completo y procedemos a instalar el burg:

NOTA: TODAS ESTAS OPERACIONES DEBEN HACERSE CON EL USUARIO ROOT

# burg-install −−no-floppy −−root-directory=/media/(ETIQUETA) /dev/sdX

Donde: /media/(ETIQUETA) es la carpeta donde se monta el pendrive y /dev/sdX es el dispositivo del pendrive (por lo general sdb)

HAY QUE SER EXAGERADAMENTE CUIDADOSO CON ESTO ya que si que nos equivocamos de dispositivo podemos dejar sin arranque nuestro disco, para saber donde esta montado el pendrive bastará con el siguiente comando:

# mount | grep media

Ya que tenemos el burg instalado necesitaremos un menu, los temas y las fuentes; como soy flojo lo copio TODO de mi propio burg:

# cp −−avf /boot/burg/burg.cfg /media/(ETIQUETA)/boot/burg

# cp −−avf /boot/burg/fonts /media/(ETIQUETA)/boot/burg

# cp −−avf /boot/burg/themes /media/(ETIQUETA)/boot/burg



Ya tenemos un pendrive booteable, pero ¿que bootea? bueno, pues de momento sólo el burg (o, en mi caso, el burg del disco de mi máquina ya que aun no editamos nada XD)

Procedemos a crear las carpetas temporales para el montaje de las isos:

#mkdir -p /tmp/isos/srcd /tmp/isos/nanolinux /tmp/isos/macpup /tmp/isos/openelec /tmp/isos/drweb /tmp/isos/slitaz /tmp/isos/gparted /tmp/isos/android

Y las montamos:

# mount -o loop systemrescuecd-x86-4.0.0.iso /tmp/isos/srcd

# mount -o loop nanolinux-beta1.iso /tmp/isos/nanolinux

# mount -o loop Macpup_550.iso /tmp/isos/macpup

# mount -o loop drweb-livecd-602.iso /tmp/isos/drweb

# mount -o loop slitaz-4.0.iso /tmp/isos/slitaz

# mount -o loop gparted-live-0.17.0-4-i486.iso /tmp/isos/gparted

# mount -o loop android-x86-4.2-20130228.iso /tmp/isos/android

El caso con OpenElec y debian es especial, OpenElec es un archivo comprimido y haremos lo siguiente:

# tar -xvpzf OpenELEC-Generic.x86_64-3.2.4.tar -C /tmp/isos/openelec

Y con debian debemos clonar la iso a la segunda partición del pendrive (¿vieron? era para eso)

# dd if=debian-testing-amd64-i386-netinst.iso of=/dev/sdb2

Si son como yo, que me gusta ver una barra de progreso pueden instalar el programa pv y el comado quedaría asi:

# dd if=debian-testing-amd64-i386-netinst.iso |pv| dd of=/dev/sdb2

Con el pv entre las tuberías tendremos un lindo indicador del progreso de dd.

Desmontamos el pendrive, lo extraemos y lo volvemos a conectar (esto para que nos reconozca la partición donde clonamos el instalador de debian)

Copiamos el contenido de las isos:

# cp −−avf /tmp/isos/srcd/* /media/(ETIQUETA)/

# cp −−avf /tmp/isos/nanolinux/* /media/(ETIQUETA)/

# cp −−avf /tmp/isos/macpup/* /media/(ETIQUETA)/

# cp −−avf /tmp/isos/drweb/boot /media/(ETIQUETA)/drweb

# cp −−avf /tmp/isos/slitaz/* /media/(ETIQUETA)/

# cp −−avf /tmp/isos/gparted/* /media/(ETIQUETA)/

# cp −−avf /tmp/isos/android/* /media/(ETIQUETA)/

# cp −−avf /tmp/isos/openelec/target/KERNEL /media/(ETIQUETA)/

# cp −−avf /media/Debian\ testing\ M-A\ 1/install* /media/(ETIQUETA)

Y ahora viene la parte creativa, ubicar el syslinux.cfg o isolinux.cfg para pasar del formato de ése menu de arranque al nativo de burg, es decir, pasar de esto:

label installgui
menu label ^Graphical install
kernel /install.386/vmlinuz
append video=vesa:ywrap,mtrr vga=788 initrd=/install.386/gtk/initrd.gz −− quiet

a esto:

menuentry “Graphical install” {
linux /install.386/vmlinuz video=vesa:ywrap,mtrr vga=788 −− quiet
initrd /install.386/gtk/initrd.gz

}

Si se fijan bien, no es tan complicado, la palabra “kernel” se sustituye por “linux”, el initrd queda solito en una línea y lo que es el apéndice (append) se agrega al final de la línea del kernel.

Un caso particular, MacPup, el menu de arranque es el de grub legacy:

title Macpup 550
kernel (cd)/vmlinuz root=/dev/ram0 pmedia=idecd
initrd (cd)/initrd.gz

title Macpup 550 – RAM
kernel (cd)/vmlinuz root=/dev/ram0 pfix=ram pmedia=idecd
initrd (cd)/initrd.gz

Para nuestro pendrive quedaría así:

menuentry “Macpup 550″ {
linux /vmlinuz root=/dev/ram0 pfix=fsck
initrd /initrd.gz
}
menuentry “Macpup 550 – RAM” {
linux /vmlinuz root=/dev/ram0 pfix=ram,fsck
initrd /initrd.gz
}

Y si queremos que nos muestre el icono de la distribución sólo agregamos la siguiente línea entre la última comilla y la primera llave de “menuentry” asi:

“ −−class puppy −−class gnu-linux −−class gnu −−class os −−group group_main {

En el ejemplo anterior nos mostrará el icono de puppy linux, para mostrar otro debemos buscar las clases disponibles en la carpeta de iconos dentro de la carpeta de temas.

Podemos probar si funcionó sin necesidad de reiniciar el equipo con una máquina virtual, yo uso qemu y lo pruebo asi:

$ qemu -hda /dev/sdb

y me muestra esto:



P:eek: si ven que el menu de arranque se les hace demasiado largo pueden poner otros archivos de configuración (yo lo hice en el caso de debian, que tiene un montón de opciones adicionales):

menuentry “debian netinstall” −−class debian −−class gnu-linux −−class gnu −−class os −−group group_main {
configfile /boot/burg/debian.cfg
}

El archivo /boot/burg/debian.cgf es casi idéntico al /boot/burg/burg.cfg sólo se diferencia porque tiene exclusivamente las opciones de debian y un boton de regreso asi:

menuentry “regresar” {
configfile /boot/burg/burg.cfg
}

Espero que halla sido de utilidad, si te gustó, te sirvió o crees que puede mejorarse eres libre de hacer tus comentarios. Igualmente si necesitas ayuda puedes pregunta y ya veremos cómo se resuelve :eolo:

Mi Blog (originalmente lo postee allí, si incurro en alguna falta por favor admin que me notifique)
 
Última edición:

Zephyros

Bovino de la familia
#2
Muy interesante información.

Por cierto, para alguien que empieza en esto de Linux, no hay nada de "obvias razones"... no siempre las cosas que nos parecen "obvias" lo son para los demás.

Gracias!
 
#3
Gracias por tomarte el tiempo de leer y responder; sólo puse lo de "obvias razones" refiriéndome al espacio en disco, a excepción de slitaz y nanolinux () no hay una distro menor a los 200Mb (me refiero a las usadas se que en la web se consiguen un montón de mini y micro distros)
 
Arriba