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.