Multi-Boot USB-Stick mit Ventoy
Für den Betrieb des Server-Parks werden allerlei verschiedene Betriebssysteme bzw. Linux-Distributionen benötigt. Sei es zur Installation eines neuen Systems, zur Analyse, zur Fehlerbehebung oder einfach nur für Testzwecke. Die dazu benötigten Installationsdateien liegen normalerweise in so genannten iso-Abbildern vor. Diese wurden früher auf CDs/DVDs gebrannt, während heutzutage eher bootbare USB-Sticks verwendet werden.
Das Problem: Sofern man den Anweisungen der jeweiligen Dokus folgt, installiert man mit Tools wie DiskDump oder einer grafischen Lösung die Installationsdateien EINES Systems auf EINEN USB-Stick.
Viel praktischer ist jedoch die Nutzung eines Multi-Boot-USB-Sticks um auf diesem möglichst viele Betriebssysteme/Distributionen zu hinterlegen. Bei Bedarf wählt man aus einem Bootmenü das gewünschte System aus, das gestartet werden soll. Eine sehr charmante Lösung hierfür ist das Tool Ventoy. Die Vorbereitung eines USB-Sticks mit Ventoy ist schnell erledigt und erleichtert den Admin-Alltag.
Um den Multi-USB-Stick zu erzeugen, müssen wir …
- die Ventoy-Software auf einem PC/Notebook (irgend ein verfügbares Arbeitsgerät) installieren.
- mit Ventoy einmalig einen USB-Stick vorbereiten (Ich würde einen Stick >= 32GB empfehlen).
- mindestens ein iso-File im Anschluss auf den Stick schieben (und bei Bedarf nach und nach mehr ;-))
Ventoy wird für Windows und Linux bereit gestellt. Die Software kann über die Webseite, Github oder Sourceforge herunter geladen werden. Die Installation auf meinem Debian-Notebook ist mit zwei Befehlen erledigt:
$ wget https://github.com/ventoy/Ventoy/releases/download/v1.0.96/ventoy-1.0.96-linux.tar.gz
$ tar -xzvf ventoy-1.0.96-linux.tar.gz
$ cd ventoy-1.0.96/
Im eben entpackten Verzeichnis liegen verschiedene Skripte bereit:
$ ls
boot README VentoyGUI.aarch64 VentoyVlnk.sh
CreatePersistentImg.sh tool VentoyGUI.i386 VentoyWeb.sh
ExtendPersistentImg.sh ventoy VentoyGUI.mips64el WebUI
log.txt Ventoy2Disk.ini VentoyGUI.x86_64
plugin Ventoy2Disk.sh VentoyPlugson.sh
Sofern wir das Tool konsolenbasiert nutzen wollen, ist Ventoy2Disk.sh
das Skript der Wahl. Mit folgendem Aufruf sehen wir die vorhandenen Möglichkeiten:
$ ./Ventoy2Disk.sh --help
**********************************************
Ventoy: 1.0.96 x86_64
longpanda admin@ventoy.net
https://www.ventoy.net
**********************************************
Usage: Ventoy2Disk.sh CMD [ OPTION ] /dev/sdX
CMD:
-i install Ventoy to sdX (fails if disk already installed with Ventoy)
-I force install Ventoy to sdX (no matter if installed or not)
-u update Ventoy in sdX
-l list Ventoy information in sdX
OPTION: (optional)
-r SIZE_MB preserve some space at the bottom of the disk (only for install)
-s/-S enable/disable secure boot support (default is enabled)
-g use GPT partition style, default is MBR (only for install)
-L Label of the 1st exfat partition (default is Ventoy)
-n try non-destructive installation (only for install)
Mit der eben angezeigten Ausgabe kann man eigentlich schon arbeiten. Für uns relevant wäre bei der Erstinstallation ./Ventoy2Disk.sh -i /dev/sdX
. Die entsprechende Gerätedatei können wir mit Programm lsblk
identifizieren:
$ lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS
sda 8:0 1 0B 0 disk
sdb 8:16 1 57,3G 0 disk
└─sdb1 8:17 1 57,3G 0 part
[...]
In diesem Fall also /dev/sdb
. Achtung: Das System sollte im Folgenden nicht gemountet sein. Der Aufruf erfolgt mit Super-User-Rechten:
$ sudo ./Ventoy2Disk.sh -i /dev/sdb
**********************************************
Ventoy: 1.0.96 x86_64
longpanda admin@ventoy.net
https://www.ventoy.net
**********************************************
Disk : /dev/sdb
Model: USB SanDisk 3.2Gen1 (scsi)
Size : 57 GB
Style: MBR
Attention:
You will install Ventoy to /dev/sdb.
All the data on the disk /dev/sdb will be lost!!!
Continue? (y/n)
All the data on the disk /dev/sdb will be lost!!!
Double-check. Continue? (y/n)
Wir können nochmal kontrollieren, ob es sich wirklich um unseren USB-Stick handelt und mit 2x y
fahren wir fort. Ventoy erstellt nun eigenständig zwei Partitionen, kopiert die notwendigen Daten an Ort und Stelle und schließt die Installation ab:
Create partitions on /dev/sdb by parted in MBR style ...
Done
Wait for partitions ...
partition exist OK
create efi fat fs /dev/sdb2 ...
mkfs.fat 4.2 (2021-01-31)
success
Wait for partitions ...
/dev/sdb1 exist OK
/dev/sdb2 exist OK
partition exist OK
Format partition 1 /dev/sdb1 ...
mkexfatfs 1.3.0
Creating... done.
Flushing... done.
File system created successfully.
mkexfatfs success
writing data to disk ...
sync data ...
esp partition processing ...
Install Ventoy to /dev/sdb successfully finished.
Für uns relevant ist die größere, bootbare Partition:
$ sudo fdisk -l /dev/sdb
[...]
Device Boot Start End Sectors Size Id Type
/dev/sdb1 * 2048 120111103 120109056 57,3G 7 HPFS/NTFS/exFAT
/dev/sdb2 120111104 120176639 65536 32M ef EFI (FAT-12/16/32)
Damit ist die Installation beendet. Wenn /dev/sdb1
gemountet ist, können iso-Dateien von Betriebssystemen/Linux-Distributionen auf den USB-Stick kopiert werden.
Ein Gerät, das von unserem Ventoy-Stick bootet, schlägt via Grub2 die einzelnen hinterlegten Systeme vor. Je nach Auswahl startet der Installationsprozess oder das Live-System des jeweiligen Eintrags:
Ventoy wird aktiv weiter entwickelt. Sofern es Updates gibt, lädt man die Software wie oben beschrieben herunter und steckt seinen USB-Stick ein. Die Ventoy-Version kann nun ausgelesen werden:
$ sudo ./Ventoy2Disk.sh -l /dev/sdb
**********************************************
Ventoy: 1.0.96 x86_64
longpanda admin@ventoy.net
https://www.ventoy.net
**********************************************
Ventoy Version in Disk: 1.0.93
Disk Partition Style : MBR
Secure Boot Support : YES
Bei dem eben angezeigten Gerät, handelt es sich um meinen derzeitigen produktiv genutzten Ventoy-Multi-Boot-Stick der mit der Version 1.0.93 nicht die neueste Version besitzt. Mit folgendem Befehl führen wir ein Update durch:
$ ./Ventoy2Disk.sh -u /dev/sdb
**********************************************
Ventoy: 1.0.96 x86_64
longpanda admin@ventoy.net
https://www.ventoy.net
**********************************************
Upgrade operation is safe, all the data in the 1st partition (iso files and other) will be unchanged!
Update Ventoy 1.0.93 ===> 1.0.96 Continue? (y/n)
esp partition processing ...
Update Ventoy on /dev/sdb successfully finished.
Sobald wir die die Abfrage mit y
bestätigen, wird das Update durchgeführt.
Im Vergleich zu den früheren Lösungen ist die Einrichtung eines Multi-Boot-Sticks ziemlich einfach. Ein paar Eingaben auf der Kommandozeile und der Stick ist fertig. Wer es grafisch möchte, kann z. B. mit VentoyGUI.x86_64
über ein GUI die Einrichtung vornehmen
Einmal eingerichtet, können je nach Belieben iso-Dateien auf den Stick gezogen oder wieder entfernt werden. Begrenzt ist man halt hier durch die Größe des USB-Sticks. Mein hier verwendeter 64G-Stick, reicht mir locker.