IMPORTANTE: Este post se actualiza para ir añadiendo entradas de grub según sea pedido en los comentarios y grupo de telegram. Por favor tenlo en cuenta para consultas futuras.

En esta entrada os enseñaré a preparar una socorrida memoria USB que podrá contener y ejecutar tantas imágenes distros GNU/Linux como pueda almacenar. Tendremos la opción tanto instalarla como de usarla en modo live. Y por si esto os pareciera poco, será compatible tanto con ordenadores de 32 y 64 bits y que tengan BIOS o UEFI. Pasos a seguir:

NOTA QUE DEBÉIS TENER EN MENTE SIEMPRE CUANDO LEÁIS TUTORIALES DE GNU/LINUX: los comandos precedidos por # deben ser ejecutados como usuario root y los precedidos por $ deben ser ejecutados por un usuario no root.

Paso 0: Conseguir una memoria USB y un sistema GNU/Linux que tenga grub2 instalado. Si no teneis grub2 en vuestro sistema podéis, o instalarlo y desinstalarlo cuando acabéis el proceso o hacerlo desde otra distro en modo live que venga con grub2 de serie por ejemplo Antergos o Manjaro.

Paso 1: Una vez insertado el pendrive objetivo debemos anotar muy bien que nombre de dispositivo le ha asignado nuestro sistema, para ello en la consola ejecutamos el comando lsblk y nos aparecerá algo parecido a esto:

Como podéis ver hay tres dispositivos detectados (sda/b/c), mi pendrive es el dispositivo sdc (podréis reconocer el vuestro por el tamaño y porque en la columna RM que significa removable tendrá un 1) así que a partir de ahora cuando veáis que pone sdc no olvidéis cambiarlo por el identificador de vuestro dispositivo antes de ejecutar cualquier comando o puede que echéis a perder vuestro sistema. Ahora es cuando os digo que no olvidéis hacer copia de los datos importantes antes de seguir. A continuación abrimos GParted, en la parte superior derecha seleccionamos nuestro pendrive (/dev/sdc) y en la barra superior abrimos la opción Dispositivo y elegimos Crear tabla de particiones, aparecerá una ventana como en la imagen en la que debemos seleccionar msdos y aplicar. Una vez creada la tabla de particiones tenemos que formatear dicha memoria en fat32. Y sí, fat32 para evitar problemas posteriormente, el tamaño máximo de los archivos que podréis meter será de 4GB pero es raro encontrar isos live que pesen tanto.

Paso 2: Ya tenemos el pendrive formateado y con la tabla de particiones correcta, ahora nos toca pasar a la terminal para ejecutar comandos (¡¡YUHUUUU!!). Sacamos nuestro pendrive, esperamos unos segundos y lo volvemos a enchufar, en la terfminal ejecutamos de nuevo lsblk y miramos el punto de montaje de nuestro pendrive (aparece en la columna MOUNTPOINT). Si nuestro sistema no lo ha automontado lo montamos nosotros, ejecutando lsblk para ver si se sigue llamando sdc o ha cambiado de nombre y después el siguiente comando, si ha pasado a llamarse sdd pues a partir de ahora ponemos sdd y listo:

Ahora que tenemos montada nuestra memoria USB le debemos meter grub2 con los siguientes comandos, primero para sistemas UEFI. Si fue automontada recuerda cambiar /mnt/MULTIBOOT por el punto de montaje que tu sistema le haya asignado:

Ahora para sistemas BIOS. De nuevo recuerda cambiar /mnt/MULTIBOOT por el punto de montaje que tu sistema le haya asignado y sdc por el identificador de tu pendrive:

Con esto ya será tu memoria USB arrancable desde BIOS y UEFI. El resto del tutorial será meter las imágenes iso y editar el archivo grub.cfg.

Paso 3: Abrimos la carpeta raíz de nuestro pendrive (en nuestro caso /mnt/MULTIBOOT) y entramos en la carpeta boot que habrá, dentro de esta creamos una carpeta llamada iso que será la encargada de albergar todas las distros que queramos tener. Pegamos dentro de dicha carpeta las isos pertinentes y seguimos al siguiente paso (ten paciencia, algunas pueden tardar mucho en pegarse y más si no usas una memoria USB 3.0 o superior).

Paso 4: Ahora toca preparar el menú de grub2. De nuevo abrimos la consola y ejecutamos lsblk -f para averiguar el UUID de la partición fat32 de nuestro dispositivo.

Como podéis ver el UUID de mi partición es AD7A-F378, desde ahora debéis sustituir ese UUID cuando aparezca por el de vuestra partición.

Vamos a la carpeta /mnt/MULTIBOOT/boot/grub y buscamos el archivo grub.cfg, si no está lo creamos nosotros y pegamos en su interior lo siguiente (sustituye mi UUID por el tuyo en la primera línea):

Si queremos ponerle un fondo al grub debemos pegar la imagen que queramos de fondo en la carpeta grub de nuestro dispositivo (la carpeta grub está dentro de la carpeta boot) y añadir estas líneas debajo de las que acabamos de pegar:

Si tu fondo de grub es una imagen en formato png debes eliminar la # de la primera línea y si está en formato jpg/jpeg debes eliminar la # de la segunda línea.

En la tercera línea va la ruta al archivo de imagen pero sólo desde la raíz de tu dispositivo hasta el propio archivo, es decir, en lugar de /mnt/MULTIBOOT/boot/grub/imagen.png debemos poner /boot/grub/imagen.png. No olvidéis sustituir la extensión .png por la de vuestro archivo.

A continuación tenemos que crear las entradas del menú para las distros que hayamos metido en la carpeta iso. Para que quede “bonito” añadimos una línea vacía debajo de lo que acabamos de poner en grub.cfg y de los siguientes cuadros pegamos los que necesitemos. Recordad cambiar lo que hay entre las comillas simples de la primera y segunda línea de cada apartado, en la primera debe ir el nombre que queráis que aparezca en el menú de grub2 y en la segunda debe ir la ruta desde la raíz del pendrive hasta vuestro archivo .iso:

NOTA: no importa que sea la iso con GNOME o Cinnamon, simplemente debes cambiar lo que he mencionado antes de la primera y segunda línea.

NOTA: el link de Apricity OS lleva a una entrada de lignux.com en la que podéis encontrar el link de descarga de ambas versiones de Apricity OS ya que su web oficial está cerrada.

  • Manjaro:

NOTA: no importa el entorno de escritorio que tenga la iso (KDE, GNOME, XFCE…), simplemente debes cambiar lo que he mencionado antes de la primera y segunda línea.

NOTA: no importa el entorno de escritorio que tenga la iso (KDE, GNOME, XFCE…), simplemente debes cambiar lo que he mencionado antes de la primera y segunda línea.

NOTA: el usuario root del live de Kali Linux es ‘root’ y su contraseña ‘toor’.

NOTA: no importa el entorno de escritorio que tenga la iso (KDE, GNOME, XFCE…), simplemente debes cambiar lo que he mencionado antes de la primera y segunda línea.

NOTA: el usuario root del live de Parrot es ‘root’ y su contraseña ‘toor’.

NOTA: no importa el entorno de escritorio que tenga la iso (KDE, GNOME, XFCE…), simplemente debes cambiar lo que he mencionado antes de la primera y segunda línea.

NOTA: no importa el entorno de escritorio que tenga la iso (KDE, GNOME, XFCE…), simplemente debes cambiar lo que he mencionado antes de la primera y segunda línea.

Zorin OS (core):

  • Void Linux:

NOTA: no importa el entorno de escritorio que tenga la iso (KDE, GNOME, XFCE…), simplemente debes cambiar lo que he mencionado antes de la primera y segunda línea.

NOTA: no importa el entorno de escritorio que tenga la iso (KDE, GNOME, XFCE…), simplemente debes cambiar lo que he mencionado antes de la primera y segunda línea.

  • Reiniciar:

  • Apagar:

Y fin, llegados a este punto si habéis seguido los pasos como se han indicado debéis tener un fantástico pendrive listo para enchufar y arrancar con una multitud de distros.

Si echáis de menos alguna distro decídmelo en los comentarios y la intentaré añadir tan pronto como sea posible.

Extra: quizás os hayáis dado cuenta pero además de usarla como memoria USB multiboot, podréis usarla también para almacenar vuestros archivos como con cualquier otro pendrive.

Fondo de grub2 usado en la primera imagen:

Fuentes y agradecimientos: la increíble wiki de Arch Linux (en la que colaboro y os animo a colaborar a vosotros en lo que podáis, ya que una parte de este post es gracias a ella) y la infinita sabiduría del compañero Felfa ya que este post es tan suyo como mío (de no haber sido por su ayuda aún estaría dandome de tortas con grub2 para que funcionase correctamente en la memoria USB).

Cuéntanos en los comentarios tu experiencia y si fue mala te ayudaremos a solucionar el problema que tuvieras ^^.

Eso es todo. Propicios días.

47 COMENTARIOS

  1. Muy Buenas tardes….me intereso mucho este tutorial, pero me trave en un apartado ya que mencionas que el formato a las pendrive debe ser en fat32 porque no hay isos tan grandes, pero estoy tratanto de usar una distribucion modificada que ya contiene software integrado a la propia distribucion y la iso funcional de donde se descarga es de mas de 6gb en sus versiones x86 y x64 cada una, y no he podido meterlas para que las 2 queden en el mismo pendrive y funciones en bios y uefi al mismo tiempo segun se vaya a usar, podrias ayudarme por favor….!!!

  2. Hola he intentado hacer un pendrive multiboot desde ubuntu 1604 y no me funciona. Mi pc tiene bios no uefi, he suprimido esa parte, pero al intentar ver si está grub2 instalado con el comando apt-cache policy grub2 me muestra que no tengo ninguno cuando al iniciar el pc me aparece los diferentes os instalados. Algo muy mal estoy haciendo.

  3. Hola, he intentado hacer un pendrive multiboot desde ubuntu 1604 y no me funciona. Mi pc tiene bios no uefi (he suprimido esa parte) pero al intentar ver si está grub2 instalado con el comando apt-cache policy grub2 me muestra que no tengo ninguno cuando al iniciar el pc me aparece los diferentes os instalados. Algo muy mal estoy haciendo.

  4. Hola, he intentado hacer un pendrive multiboot desde ubuntu 16.04 y no me funciona. Mi pc tiene bios no uefi (he suprimido esa parte) pero al intentar ver si está grub2 instalado con el comando apt-cache policy grub2 me muestra que no tengo ninguno cuando al iniciar el pc me aparece los diferentes os instalados. Algo muy mal estoy haciendo.

  5. También me ha funcionado la siguiente entrada, para la iso mínima (net install) de openSUSE Tumbleweed. El arraque el lento, pero arranca la instalación:

    menuentry ‘openSUSE Tumbleweed (netinstall)’ {
    set isofile=’/boot/iso/openSUSE-Tumbleweed-NET-x86_64-Snapshot20170801-Media.iso’
    loopback loop $isofile
    set gfxpayload=keep
    linux (loop)/boot/x86_64/loader/linux splash=silent iso-scan/filename=$isofile
    initrd (loop)/boot/x86_64/loader/initrd
    }

  6. También me ha funcionado la siguiente entrada, para la iso mínima (net install) de openSUSE Tumbleweed. El arraque el lento, pero arranca la instalación:

    menuentry ‘openSUSE Tumbleweed (netinstall)’ {
    set isofile=’/boot/isos/openSUSE-Tumbleweed-NET-x86_64-Snapshot20170801-Media.iso’
    loopback loop $isofile
    set gfxpayload=keep
    linux (loop)/boot/x86_64/loader/linux splash=silent iso-scan/filename=$isofile
    initrd (loop)/boot/x86_64/loader/initrd
    }

    • Excelente tutorial.
      Tengo una duda, por curiosidad más que nada. ¿Cómo hacéis para obtener la información del menú de entrada “menuentry” de cada distro linux?

      Muchas gracias.

    • Excelente tutorial.

      Tengo una duda, por curiosidad más que nada. ¿Cómo hacéis para obtener la información del menú de entrada “menuentry” de cada distro linux?

      Muchas gracias.

  7. Un post grandioso. Gracias.
    Aprovechando que Debian 9 (Stretch) ya está en la calle, aporto mi granito de arena con la entrada correspondiente para la versión con gnome:

    menuentry ‘Debian-9-gnome’ {
    set isofile=’/boot/iso/debian-live-9.0.1-amd64-gnome.iso’
    loopback loop $isofile
    linux (loop)/live/vmlinuz-4.9.0-3-amd64 boot=live config findiso=$isofile desktop=gnome priority=low
    initrd (loop)/live/initrd.img-4.9.0-3-amd64
    }

    Probada.

    • Y también la entrada para la revisión 9.1 de Debian (descargando la ISO del DVD nº 1):

      menuentry ‘Debian-9.1.0′ –class dvd {
      set isofile=’/boot/iso/debian-9.1.0-amd64-DVD-1.iso’
      loopback loop $isofile
      linux (loop)/install.amd/vmlinuz vga=788 — quiet
      initrd (loop)/install.amd/gtk/initrd.gz
      }

  8. Hola! he seguido el tutorial y funciona perfecto. Quiero configurar la entrada en el grub para wifislax. Sabrá alguien por acá?

  9. Muy bueno el tuto.
    Estuve enredando un poco con Tails, probando el menuentry de debian pero fallaba al conectar a la red tor. Al final dí con la configuración que me funciona.
    Si a alguien le interesa …

    menuentry ‘tails-i386-2.12.iso’ {
    set isofile=’/boot/iso/tails-i386-2.12.iso’
    loopback loop $isofile
    linux (loop)/live/vmlinuz2 boot=live config findiso=${isofile} live-media=removable apparmor=1 security=apparmor nopersistent noprompt timezone=Etc/UTC block.events_dfl_poll_msecs=1000 noautologin module=Tails
    initrd (loop)/live/initrd2.img
    }

    Un saludo.

  10. Buenas 😀 Como sugerencia estaría bien que se añadiese la manera de instalar Hiren’s Boot y WifiSlax. Un saludo

    • Añadida la de WifiSlax, hirensboot me es imposible añadirla, no se como hacerlo asi que si alguien sabe por favor lo deje en los comentarios o lo diga en el grupo de telegram y lo añadiré 🙂

  11. Muy buen tutorial, muchas gracias.
    De entrada ya me sirve para empezar a conocer un poco mejor el Grub. Me parece muy atractivo eso de poder hacerlo sin necesidad de utilizar un programa. Para mi próxima reinstalación usaré este método.

    Sin embargo tengo una pregunta (no es maliciosa, lo aseguro):
    ¿Qué utilidad tiene tener ese tipo de USB?¿La gente suele cambiar tanto de SO como para tener una memoria con distintas distros?

    Se me ocurre que quizás me podría venir bien tener la distintas distros que he ido probando almacenadas en un USB en vez de en el disco duro y de paso le pongo este sistema.

    • Desde tenerlo encima para tu propia tranquilidad ya que si se estropea tu sistema puedes hacer chroot y arreglarlo fácilmente hasta enseñarle la distribución que quieras a alguien para animarle a probarla y entrar en el mundo GNU/Linux ^^

  12. Quiero tener instalado en un disco duro varias distro, cada una con su particion y memoria. Puedo hacerlo siguiedo este tuto ?

    • No, este tutorial no sirve para eso. Usando este tutorial puedes tener un pendrive que te permita instalar cada distro en tu disco duro.

  13. Un buen artículo que aunque tú lo enfocas a una memoria USB, yo lo aplico al disco duro del ordenador.

    Tengo un portátil que vino con windows y el disco duro particionado en gpt. La primera partición es la EFI de tamaño 1 GiB. Originalmente en esta partición sólo estaba el directorio EFI con subdirectorios como ASUS, Microsoft o Boot.

    Le añadí el subdirectorio MEMTEST86 (para probrar la memoria RAM) con el “programa” BOOTX64.EFI. Al seleccionarlo en el menú de arranque realiza la comprobación de la RAM. También le añadí el subdirectorio GRUB que contiene grubx64.efi. Este grub para UEFI lo obtuve del cd de kubuntu 14.10. Para arrancar con este grub en lugar del que tenía el windows, tuve que seleccionarlo en la “bios” del portátil.

    En la raíz de esta primera partición, le añadí el directorio systemrescuecd en el que de vez en cuando coloco la ISO actualizada de System Rescue CD, pero siempre le doy el mismo nombre: sysrcd.iso.

    Por último hice una instalación de grub en esta primera partición utilizando kubuntu 14.10. En el grub.cfg se colocan las menuentry según las necesidades. El problema surgió al querer poner muchas opciones en la pantalla y utilizar una tipografía grande. Al final opté por poner en la primera pantalla los sistemas operativos y en la segunda pantalla las opciones. Para acceder a la segunda pantalla hay que crear un submenú:

    submenu ‘Opciones’ –class opciones {
    menuentry ‘System Rescue CD’ –class disco-cd {

    }
    menuentry ‘MemTest86’ –class memoria {

    }
    menuentry ‘Firmware’ –class firmware {
    fwsetup
    }
    }

    La última opción permite acceder a la “bios” del portátil utilizando el comando fwsetup, que en aquel entonces sólo encontré en el grub de kubuntu y que no encontré en otros.

    Saúdos,

  14. Se me olvidó algo que podría ser interesante, el cambiar la fuente y el tamaño de la misma:

    1. Escogemos una fuente que nos guste (DejaVuSansMono es un ejemplo), así como su tamaño (opción -s, habrá que probarlo a ver cómo se ve en el grub):

    grub-mkfont -s 16 -o /home/folgui/Descargas/DejaVuSansMono.pf2 /usr/share/fonts/dejavu/DejaVuSansMono.ttf

    2. Copiamos la fuente generada en formato compatible grub al pendrive:

    cp /home/folgui/Descargas/DejaVuSansMono.pf2
    /run/media/folgui/MULTIBOOT/boot/grub/fonts

    3. Editamos el archivo /run/media/folgui/MULTIBOOT/boot/grub/grub.cfg

    loadfont /boot/grub/fonts/DejaVuSansMono.pf2

    4. Salvamos y listo.

    Saludos, folgui.

    • En un principio no lo añadí a la entrada porque no lo vi necesario, si alguien necesitase cambiar las fuentes pues ya tiene aquí tu explicación, muchas gracias jejejej.
      Saludos.

  15. Buenas. Por aportar algo:

    menuentry ‘Deepin’ {
    set isofile=’/boot/iso/deepin-15.4-amd64.iso’
    loopback loop $isofile
    linux (loop)/live/vmlinuz.efi boot=live config findiso=$isofile priority=low
    initrd (loop)/live/initrd.lz
    }

    menuentry ‘ElementaryOS’ {
    set isofile=’/boot/iso/elementaryos-0.4.1-stable.20170517.iso’
    loopback loop $isofile
    linux (loop)/casper/vmlinuz boot=casper iso-scan/filename=$isofile
    initrd (loop)/casper/initrd.lz
    }

    menuentry “Clonezilla Live 2017″ {
    # Nos lleva directamente a Iniciar Clonezilla
    set isofile=”/boot/iso/clonezilla-live-20170220-zesty-amd64-uefi.iso”
    loopback loop $isofile
    linux (loop)/live/vmlinuz boot=live live-config noswap findiso=$isofile union=overlay username=user config acpi_osi= noapic nolapic —
    initrd (loop)/live/initrd.img
    }

    menuentry “GParted Live 0.27.0-1″ {
    set isofile=”/boot/iso/gparted-live-0.27.0-1-amd64.iso”
    loopback loop $isofile
    linux (loop)/live/vmlinuz boot=live union=overlay username=user config components quiet noswap noeject toram=filesystem.squashfs nosplash findiso=$isofile iso-scan/filename=”$isofile”
    initrd (loop)/live/initrd.img
    }

    menuentry “SystemRescueCD 5.0.1″ {
    set isofile=”/boot/iso/systemrescuecd-x86-5.0.1.iso”
    loopback loop $isofile
    linux (loop)/isolinux/rescue64 setkmap=es isoloop=$isofile
    initrd (loop)/isolinux/initram.igz
    }

    y finalmente, un reinicio del sistema en el grub:

    menuentry “Reboot” –class windows –class os {
    reboot
    }

    Espero que os aporte algo.

    Muchas gracias.

    Saludos.

    • ¡Genial! ¿Los has probado todos? Todos los ejemplos que hay en la entrada y los que voy añadiendo han sido testados por mí mismo, si me confirmas que funcionan los añado en cuanto te lea, de lo contrario tendré que probar cada una antes. Muchas gracias :D.

  16. Tengo un problema, y me pasa con varios pendrive. Cuando intento montarlo (tando desde Ubuntu como desde Fedora) siempre recibo el mismo mensaje:

    mount: tipo de sistema de ficheros incorrecto, opción incorrecta, superbloque incorrecto en /dev/sdc,
    falta la página de códigos o el programa auxiliar, o algún otro error

    En algunos casos se encuentra información en syslog – pruebe
    dmesg | tail o algo parecido.

    • Supongo que seguiste los pasos al pie de la letra así que no te diré nada al respecto. Lo que puedes probar para intentar corregir los pendrives es conectarlos, hallar su ID con el comando lsblk como se indica en este post y (asumiendo que su ID es sdc) ejecutar ‘fsck -fyc /dev/sdc’ sin las comillas claro. Si tienes algún problema más puedes entrar al grupo de Telegram y te ayudaremos. El alias del grupo es @LiGNUx.

  17. Gracias
    SUGERENCIA: Un artículo de como tener una LiveISO de tu distro en tu menu grub de tu disco duro para casos de emergencia o para uso de visitas y similares.

    • Pues en un principio se haría igual, teniendo en cuenta que ya tienes grub2 en tu pc y la iso descargada sustituyes la ruta que aparece en los ejemplos por la de tu iso. Prueba a hacerlo y nos comentas que tal. Si el procedimiento varía o fallase haré una publicación dedicada. ¡Gracias!

  18. Muchas gracias por el tutorial! Tengo 1 duda: entiendo que arranca tanto efi como bios el menu pero a la hora de iniciar la distro que uno elige, carga tambien en modo efi o bios? Creo que segun como se inicie una distro se instalara de una fodma u otra.

    • Prueba con esto:
      menuentry 'RemixOS' {
      loopback loop '/boot/iso/Remix_OS_for_PC_Android_M_64bit_B2016112101.iso'
      linux (loop)/kernel root=/dev/ram0 SERIAL=random logo.showlogo=1 androidboot.selinux=permissive quiet REMOUNT_RW=0 DATA= DATA_IN_MEM=1
      initrd (loop)/initrd.img
      }

      Esto tratará de arrancar el sistema de la ISO de RemixOS en modo live sin persistencia. Para hacerlo con persistencia tendrás que extraer la ISO en un directorio dentro del pendrive y cambiar algunas opciones en el arranque.

      • Vaya, muchas gracias, anoche solo leí el comentario y lo anoté para probar a hacerlo, justo venía a responderle. Lo pruebo y lo añado a la entrada, muchas gracias compañero :D.

        Edit: lo he probado y tras +10 minutos esperando no pasa de la pantalla de carga (la que tiene un android y pone Android-x86)
        si a alguien le funciona que me lo diga y añadiré entonces la menuentry de RemixOS o que me mande su configuración si consiguió bootearla de otro modo.

DEJA UNA RESPUESTA

Por favor, introduzca su comentario!
Por favor, introduzca su nombre aquí