Dieser Artikel oder Abschnitt ist ein Kandidat für den Wechsel zu Multiboot-Disk-Images.
Ein Multiboot-USB-Flash-Laufwerk ermöglicht das Booten mehrerer ISO-Dateien von einem einzigen Gerät. Die ISO-Dateien können auf das Gerät kopiert und direkt gebootet werden, ohne sie vorher zu entpacken. Es stehen mehrere Methoden zur Verfügung, die jedoch möglicherweise nicht für alle ISO-Images funktionieren.
Verwenden von GRUB- und Loopback-Geräten
Dieser Artikel oder Abschnitt benötigt Sprach-, Wiki-Syntax- oder Stilverbesserungen. Siehe Hilfe: Stil als Referenz.
Vorteile:
- nur eine einzige Partition erforderlich
- Alle ISO-Dateien befinden sich in einem Verzeichnis
- Das Hinzufügen und Entfernen von ISO-Dateien ist einfach
Nachteile:
- Nicht alle ISO-Images sind kompatibel
- Das ursprüngliche Startmenü für die ISO-Datei wird nicht angezeigt
- Es kann schwierig sein, einen funktionierenden Starteintrag zu finden
Vorbereitung
Dieser Artikel oder Abschnitt muss erweitert werden.
Erstellen Sie mindestens eine Partition und ein von GRUB unterstütztes Dateisystem auf dem USB-Laufwerk. Siehe Partitionierung und Dateisysteme#Erstellen eines Dateisystems. Wählen Sie die Größe basierend auf der Gesamtgröße der ISO-Dateien, die Sie auf dem Laufwerk speichern möchten, und planen Sie zusätzlichen Speicherplatz für den Bootloader ein.
GRUB installieren
Einfache Installation
Mounten Sie das Dateisystem auf dem USB-Laufwerk:
# mount /dev/sdXY /mnt
Erstellen Sie das Verzeichnis /boot:
# mkdir /mnt/boot
Installieren Sie GRUB auf dem USB-Laufwerk:
# grub-install --target=i386-pc --recheck --boot-directory=/mnt/boot /dev/sdX
Wenn Sie ISOs im UEFI-Modus booten möchten, müssen Sie grub für das UEFI-Ziel installieren:
# grub-install --target=x86_64-efi --removable --boot-directory=/mnt/boot --efi-directory=/mnt
Für UEFI muss die Partition die erste in einer MBR-Partitionstabelle sein und mit FAT32 formatiert sein.
Hybrid UEFI GPT + BIOS GPT/MBR Boot
Diese Konfiguration ist nützlich, um einen universellen USB-Stick zu erstellen, der überall bootfähig ist.Zunächst müssen Sie eine GPT-Partitionstabelle auf Ihrem Gerät erstellen. Sie benötigen mindestens 3 Partitionen:
- Eine BIOS-Bootpartition (gdisk type code
EF02
). Diese Partition muss 1 MB groß sein - Eine EFI-Systempartition (gdisk-Typcode
EF00
mit einem FAT32-Dateisystem). Diese Partition kann so klein wie 50 MiB sein. - Ihre Datenpartition (verwenden Sie ein von GRUB unterstütztes Dateisystem). Diese Partition kann den Rest des Speicherplatzes Ihres Laufwerks belegen.
Die sachliche Richtigkeit dieses Artikels oder Abschnitts ist umstritten.
Als nächstes müssen Sie eine hybride MBR-Partitionstabelle erstellen, da das Setzen des Boot-Flags auf der schützenden MBR-Partition möglicherweise nicht ausreicht.
Beispiel für die Erstellung einer Hybrid-MBR-Partitionstabelle mit gdisk:
Vergessen Sie nicht, die Partitionen zu formatieren :
# mkfs.fat -F32 /dev/sdX2# mkfs.ext4 /dev/sdX3
Sie können jetzt GRUB installieren, um sowohl EFI + GPT als auch BIOS + GPT/MBR zu unterstützen. Die GRUB-Konfiguration (–boot-directory) kann am selben Ort aufbewahrt werden.
Zuerst müssen Sie die EFI-Systempartition und die Datenpartition Ihres USB-Laufwerks mounten.
Ein Beispiel hierfür wäre wie folgt:
# mount /dev/sdX3 /mnt# mkdir -p /mnt/boot/EFI# mount /dev/sdX2 /mnt/boot/EFI
Dann können Sie GRUB für UEFI mit installieren:
In den meisten Fällen entspricht EFI_MOUNTPOINT
dem /mnt/boot/EFI
Unterverzeichnis auf Ihrer gemounteten USB-Festplatte.
# grub-install --target=x86_64-efi --recheck --removable --efi-directory=/EFI_MOUNTPOINT --boot-directory=/DATA_MOUNTPOINT/boot
Und für BIOS mit:
# grub-install --target=i386-pc --recheck --boot-directory=/DATA_MOUNTPOINT/boot /dev/sdX
Als zusätzliches Fallback können Sie GRUB auch auf Ihrer MBR-bootfähigen Datenpartition installieren:
# grub-install --target=i386-pc --recheck --boot-directory=/DATA_MOUNTPOINT/boot /dev/sdX3
GRUB konfigurieren
Mit einer Vorlage
Es gibt einige Git-Projekte, die einige bereits vorhandene GRUB-Konfigurationsdateien bereitstellen, und ein nettes generisches grub.cfg
, mit dem die anderen Boot-Einträge bei Bedarf geladen werden können, wobei sie nur angezeigt werden, wenn die angegebenen ISO-Dateien – oder Ordner, die sie enthalten – auf dem Laufwerk vorhanden sind.
Multiboot USB: https://github.com/aguslr/multibootusb
GLIM (GRUB2 Live ISO Multiboot): https://github.com/thias/glim
Manuelle Konfiguration
Für Multiboot-USB-Laufwerke ist es einfacher, grub.cfg
von Hand zu bearbeiten, anstatt es zu generieren. Alternativ können Sie die folgenden Änderungen in /etc/grub.d/40_custom
oder /mnt/boot/grub/custom.cfg
vornehmen und /mnt/boot/grub/grub.cfg
mit grub-mkconfig generieren.
Da empfohlen wird, anstelle von /dev/sdxY
einen persistenten Namen zu verwenden, um die Partition auf dem USB-Laufwerk zu identifizieren, auf der sich die Image-Dateien befinden, definieren Sie eine Variable, um den Wert zu speichern. Wenn sich die ISO-Images auf derselben Partition wie GRUB befinden, lesen Sie die UUID beim Booten wie folgt:
/mnt/boot/grub/grub.cfg
# Pfad zur Partition, die ISO-Images enthält (mit UUID)probe -u $root --set=rootuuidset imgdevpath="/dev/disk/by-uuid/$rootuuid"
Oder geben Sie die UUID explizit an:
/ grub / grub.cfg
# Pfad zur Partition, die ISO-Images enthält (mit UUID)set imgdevpath="/dev/disk/by-uuid/UUID_value"
Alternativ können Sie anstelle der UUID die Gerätebezeichnung verwenden:
/mnt/boot/grub/grub.cfg
# Pfad zur Partition mit ISO-Images (mit Labels)set imgdevpath="/dev/disk/by-label/label_value"
Die erforderliche UUID oder Bezeichnung finden Sie unter lsblk -f
. Verwenden Sie nicht dasselbe Label wie die Arch-ISO für das USB-Gerät, da sonst der Startvorgang fehlschlägt.
Um die Konfiguration abzuschließen, muss ein Boot-Eintrag für jedes ISO-Image unterhalb dieses Headers hinzugefügt werden, Beispiele finden Sie im nächsten Abschnitt.
Booteinträge
Es wird angenommen, dass die ISO-Images im Verzeichnis boot/iso/
auf demselben Dateisystem gespeichert sind, auf dem GRUB installiert ist. Andernfalls müsste dem Pfad zur ISO-Datei die Geräteidentifikation vorangestellt werden, wenn der Befehl loopback
verwendet wird, z. B. loopback loop (hd1,2)$isofile
. Da diese Identifikation von Geräten nicht persistent ist, wird sie in den Beispielen in diesem Abschnitt nicht verwendet.
Man kann persistent Block device naming wie folgt verwenden. Ersetzen Sie die UUID entsprechend Ihrer ISO-Dateisystem-UUID.
Arch Linux monthly release
Siehe auch archiso.
Siehe README.bootparams für Archiso-Optionen, die in der Kernel-Befehlszeile unterstützt werden.
Memtest86+
Memtest86+ ist in der monatlichen ISO enthalten.
archboot
Siehe auch archboot.
Mit Syslinux und memdisk
Mit dem Memdisk-Modul wird das ISO-Image in den Speicher geladen und sein Bootloader geladen. Stellen Sie sicher, dass das System, das dieses USB-Laufwerk startet, über genügend Speicher für die Image-Datei und das laufende Betriebssystem verfügt.
Vorbereitung
Stellen Sie sicher, dass das USB-Laufwerk ordnungsgemäß partitioniert ist und dass eine Partition vorhanden ist, deren Dateisystem von Syslinux unterstützt wird, z. B. fat32 oder ext4. Installieren Sie dann Syslinux auf dieser Partition, siehe Syslinux#Installation im BIOS.
Memdisk-Modul installieren
Das Memdisk-Modul wurde während der Syslinux-Installation nicht installiert, es muss manuell installiert werden. Mounten Sie die Partition, in der Syslinux installiert ist, in /mnt/
und kopieren Sie das Memdisk-Modul in dasselbe Verzeichnis, in dem Syslinux installiert ist:
# cp /usr/lib/syslinux/bios/memdisk /mnt/boot/syslinux/
Konfiguration
Bearbeiten Sie nach dem Kopieren der ISO-Dateien auf das USB-Laufwerk die Syslinux-Konfigurationsdatei und erstellen Sie Menüeinträge für die ISO-Images. Der grundlegende Eintrag sieht folgendermaßen aus:
boot/syslinux/syslinux.cfg
BESCHRIFTEN SIE some_label LINUX memdisk INITRD /path/to/image.iso APPEND iso
Weitere Konfigurationsoptionen finden Sie unter memdisk im Syslinux Wiki.
Vorbehalt für 32-Bit-Systeme
Beim Booten eines 32-Bit-Systems von einem Image, das größer als 128 MB ist, muss die maximale Speichernutzung von vmalloc erhöht werden. Dies geschieht durch Hinzufügen von vmalloc=valueM
zu den Kernelparametern, wobei value
größer ist als die Größe des ISO-Images in MiB.
Wenn Sie beispielsweise das 32-Bit-System von der Arch-Installations-ISO booten, drücken Sie die Taste Tab
über den Eintrag Boot Arch Linux (i686)
und fügen Sie am Ende vmalloc=768M
hinzu. Das Überspringen dieses Schritts führt beim Booten zu folgendem Fehler:
modprobe: ERROR: could not insert 'phram': Input/output error
Automatisierte Tools
- GRUB2 Live ISO Multiboot (GLIM) — Eine Reihe von GRUB-Konfigurationsdateien, um einen VFAT-formatierten USB-Speicherstick mit GNU / Linux-Distribution ISO-Images in ein Multiboot-USB-Laufwerk zu verwandeln.
https://github.com/thias/glim || nicht verpackt? suchen Sie in AUR
- liveusb-builder – Eine Skriptsuite zum Erstellen eines Multiboot-USB-Sticks für GNU / Linux-Distributionen
https://github.com/mytbk/liveusb-builder || liveusb-builder—gitAUR
- MultiBootUSB – Eine plattformübergreifende Python-Software mit CLI- und GUI-Schnittstellen, mit der Sie mehrere Live-Linux-Images auf einem USB-Stick installieren und entfernen können.
https://github.com/mbusb/multibootusb || multibootusbAUR
- MultiSystem — Ein grafisches Tool, mit dem Sie mehrere ISO-Images auf einem USB-Gerät installieren, verwalten und entfernen können.
http://liveusb.info/dotclear/ |/ multisystemAUR
- Ventoy — Ein Open-Source-Tool zum Erstellen eines bootfähigen USB-Laufwerks für ISO / WIM/IMG/VHD(x)/EFI-Dateien. Sie müssen die Festplatte nicht immer wieder formatieren, sondern nur die Dateien auf das USB-Laufwerk kopieren und direkt booten.
https://www.ventoy.net || ventoy-binAUR