Muchas Distros en un pendrive = Multiboot Grub2 ISOBoot

· osiux's blog


.org | .md | .gmi | .html

porqué tener un Multiboot? #

Por lo general nunca salgo de casa sin llaves y junto a las llaves viajan 3 pendrives:

Esto me permite estar siempre preparado y a falta de notebook puedo trabajar en cualquier lado con sólo arrancar desde algún pendrive, según la ocasión.

Muchas veces hace falta bootear (arrancar) con una distro porque el sistema actual se murió y es necesario hacer algún tipo de rescate, otras veces en cambio se puede usar una distro para intentar navegar anónimamente por internet usando TAILS 3 por ejemplo, o simplemente para probar algo nuevo o tal vez mostrar las bondades de GNU/Linux 4 a algún amigo.

Un método simple de contar con varias distros es utilizar una característica de GRUB (el gestor de arranque), que es la posibilidad de iniciar desde un archivo ISO, es decir una imagen de disco (puede ser CD/DVD/USB), entonces sólo hacen faltan los siguientes pasos:

  1. Particionar y formatear el pendrive
  2. Instalar GRUB
  3. Descargar/Copiar los archivos ISO
  4. Editar el /boot/grub/grub.cfg
  5. Reiniciar y disfrutar!

El único paso "complicado" es pegarle a las opciones de cada distro para iniciar correctamente, para simplificar un poco esta tarea, creé un repositorio con las configuraciones para cada distro y con el tiempo iré actualizando la config, aunque cualquier puede meter mano y mejorarla.

particionar y formatear el pendrive #

  1. Abrir una terminar y loguearse como root
sudo -s
  1. Listar los discos:
fdisk -l
  1. Reparticionar, reemplazando sdx por lo que corresponda, por lo general es sdb. OjO si te equivocás, PERDES TUS DATOS!
fdisk /dev/sdx
  1. Tipear d para eliminar una partición existente

  2. Tipear n para crear una nueva partición

  3. Tipear p para seleecionar una partición primaria

  4. Tipear 1 para crear la primer partición

  5. Presionar Enter para usar el primer cilindro

  6. Presionar Enter nuevamente para usar el último cilindro por defecto

  7. Tipear a para activar

  8. Tipear 1 para marcar como booteable la primer partición activa

  9. Tipear t para elegir el tipo de partición

  10. Tipear c para usar una partición FAT32

  11. Tipear w para escribir los cambios (si no estás seguro, presioná q)

  12. formatear la nueva partición:

mkfs.vfat -F 32 -n MULTIBOOT /dev/sdx1

instalar GRUB #

  1. Montar el USB (sólo si no se montó solo)
sudo mkdir /mnt/multiboot
sudo mount /dev/sdx1 /mnt/multiboot
  1. Instalar GRUB
sudo grub-install --force --no-floppy --boot-directory=/mnt/multiboot /dev/sdx

clonar el repositorio #

Al insertar el pendrive debería automontarse en la mayoría de las distros en /media/multiboot

cd /media/multiboot
git clone https://github.com/osiris/multiboot

agregando una opción en el menú #

Por ejemplo, para iniciar un Ubuntu 12.04 amd64 es necesario agregar lo siguiente:

menuentry 'Ubuntu 12.04 amd64' {
set isofile="/ubuntu-12.04-desktop-amd64.iso"
loopback loop $isofile
linux (loop)/casper/vmlinuz boot=casper iso-scan/filename=$isofile noprompt noeject
initrd (loop)/casper/initrd.lz
}

test sin reboot #

Lo ideal es reiniciar la compu, modificar la configuración de las BIOS para que podamos iniciar desde un pendrive (en cada compu es distinto, probá las teclas F2, F8, F10, F12).

Puedo hacer pruebas (siempre que tengas RAM y CPU suficiente) usando QEMU sin necesidad de reiniciar:

qemu-system-x86_64 -hdb /dev/sdb

Entonces se muestra el menú de GRUB y se puede probar una distro:

https://osiux.com/img/multiboot-grub2-isoboot.png