Cómo crear un USB de arranque múltiple con Ventoy
Una memoria USB capaz de almacenar y permitirnos arrancar desde varias distribuciones de Linux es una herramienta muy útil para tener a nuestra disposición. En un artículo anterior vimos cómo configurarlo y crearlo manualmente desde cero; sin embargo, como dicha operación puede volverse tediosa rápidamente, en este tutorial veremos cómo utilizar Ventoy, una herramienta capaz de hacer todo el trabajo sucio por nosotros.
En este tutorial aprenderás:
Cómo descargar Ventoy
Cómo utilizar Ventoy para configurar una memoria USB de arranque múltiple
Cómo probar el dispositivo de arranque múltiple sin reiniciar con Qemu
Requisitos de software y convenciones utilizadas.
Paso 1: descarga Ventoy
Al ser Ventoy un proyecto de código abierto, su código fuente está alojado en github. Podemos decidir compilar el software desde el código fuente o descargar el código precompilado en forma de tarball. En este tutorial usaremos la última solución. Para descargar la última versión del programa, que en el momento de escribir este artículo es 1.0.14
, podemos ejecutar el siguiente comando:
$ curl -L https://github.com/ventoy/Ventoy/releases/download/v1.0.14/ventoy-1.0.14-linux.tar.gz \
| tar -xmpz
El tarball se descargará y extraerá en un solo paso; al final deberías encontrar un directorio ventoy-1.0.14
creado en tu ubicación actual. A partir de ahora trabajaremos dentro de él:
$ cd ventoy-1.0.14
Paso 2: prepare el dispositivo USB
Ventoy creará un USB de arranque múltiple que podemos usar para arrancar múltiples imágenes de distribución, por lo tanto, debemos elegir qué dispositivo USB usar con él (para ver todos los dispositivos de bloque actuales conectados al sistema, podemos usar el lsblk
comando). Una vez que decidimos qué dispositivo USB usar con Ventoy, podemos prepararlo usando el script Ventoy2Disk.sh
. Para ver la página de “ayuda” del script y conocer su sintaxis, podemos ejecutarlo como usuarios sin privilegios, sin ningún argumento:
$ ./Ventoy2Disk.sh
El comando produce esta salida:
***********************************************************
* Ventoy2Disk Script *
* longpanda admin@ventoy.net *
***********************************************************
Usage: Ventoy2Disk.sh CMD [ OPTION ] /dev/sdX
CMD:
-i install ventoy to sdX (fail if disk already installed with ventoy)
-u update ventoy in sdX
-I force install ventoy to sdX (no matter installed or not)
OPTION: (optional)
-r SIZE_MB preserve some space at the bottom of the disk (only for install)
-s enable secure boot support (default is disabled)
Como podemos observar, el script toma la ruta de un dispositivo de bloque sin formato (¡no una partición!) como único argumento, y se puede ejecutar básicamente en tres “modos”: si usamos -i
como "CMD", el script intentará instalar Ventoy en el dispositivo de bloque pasado, pero fallará si ya existe una instalación previa. Para evitar este comportamiento y forzar la instalación sin importar lo que podamos usar -I
en su lugar. Si utilizamos -u
se actualizará una instalación existente.
El script también tiene dos opciones: -r
toma como argumento el tamaño en MB para preservar al final del disco; -s
habilita la compatibilidad con arranque seguro.
Por el bien de este tutorial, instalaré el dispositivo /dev/sdc
en mi sistema. Para funcionar correctamente, el script Ventoy2Disk.sh debe iniciarse con privilegios administrativos:
$ sudo ./Ventoy2Disk.sh -i /dev/sdc
Después de ejecutar el comando, el script nos pedirá (dos veces) que confirmemos la operación antes de continuar, ya que se sobrescribirán todos los datos del dispositivo seleccionado:
***********************************************************
* Ventoy2Disk Script *
* longpanda admin@ventoy.net *
***********************************************************
Disk : /dev/sdc
Model: Corsair Survivor 3.0 (scsi)
Size : 28 GB
Attention:
You will install Ventoy to /dev/sdc.
All the data on the disk /dev/sdc will be lost!!!
Continue? (y/n)y
All the data on the disk /dev/sdc will be lost!!!
Double-check. Continue? (y/n)y
En cuanto demos la confirmación, el script empezará a funcionar. Se crearán dos particiones en el dispositivo: la primera ocupará casi todo el espacio disponible en el dispositivo y tendrá el formato exfat; el segundo se utilizará como esp y se formateará como vfat:
sdc 28.3G
├─sdc1 28.3G exfat
└─sdc2 32M vfat
Dado que la partición principal está formateada como exfat, para poder montarla en nuestra distribución se deben instalar los paquetes que brindan soporte para este sistema de archivos. En ciertos casos, como en la última versión de Fedora, es posible que necesitemos obtener el software requerido de repositorios externos. En el caso de Fedora, por ejemplo, se debe agregar rpmfusion a las fuentes del software antes de instalar exfat-utils
y paquetes fuse-exfat
).
Ahora que nuestro dispositivo USB está listo, todo lo que tenemos que hacer es colocar los ISO que queremos usar dentro de su primera partición. En el sitio web de Ventoy es posible consultar una lista de ISO probados (301 en el momento de escribir este artículo) que se ha confirmado que funcionan correctamente. Las imágenes se pueden organizar en subdirectorios: Ventoy las buscará de forma recursiva y las mostrará en orden alfabético en el menú de GRUB generado. Para este tutorial usaré dos ISO:
Clonezilla 2.6.4-10 i686 en vivo
Instalación de red del servidor Fedora 32 x86_64
Instalamos Ventoy y lo usamos para crear nuestro dispositivo de arranque múltiple, luego copiamos las imágenes que queremos incluir en nuestro menú de arranque; Lo único que queda por hacer ahora es probar que nuestra configuración funciona correctamente. Para hacer eso no necesitamos reiniciar nuestra máquina: podemos probar el dispositivo USB usando Qemu.
Para realizar la tarea necesitamos ubicar nuestro dispositivo USB hostbus y hostaddr. Podemos hacerlo lanzando el comando lsusb y buscando el dispositivo apropiado en su salida. En mi caso, el dispositivo es el “Corsair Survivor Stealth Flash Drive”:
$ lsusb
Bus 002 Device 007: ID 1b1c:1a0a Corsair Survivor Stealth Flash Drive
[...]
En el resultado podemos ver que el dispositivo hostbus es 002
y hostaddr es 007
. Ahora que tenemos toda la información necesaria, podemos ejecutar el siguiente comando:
$ sudo qemu-system-x86_64 -m 512 -enable-kvm -usb -device usb-host,hostbus=2,hostaddr=7
Si todo está bien, en este punto se debería abrir una nueva ventana donde deberíamos poder ver el menú de grub generado por Ventoy con las líneas relativas a las imágenes que copiamos en los pasos anteriores.
Conclusiones
Crear un dispositivo USB de arranque múltiple es muy fácil usando la herramienta Ventoy: en este tutorial vimos cómo descargar el software y usarlo para formatear y configurar la memoria USB que albergará todos nuestros ISO, y cómo probarlo sin reiniciar nuestra máquina usando Quemu. Ventoy usa exfat para formatear la partición principal de la memoria USB, por lo que debemos asegurarnos de que el software necesario para soportar dicho sistema de archivos esté instalado en nuestra distribución.