Multiboot über USB: nur ein Stick für Windows und Linux

Um den Boot-Stick auf Linux-Betriebssysteme zu erweitern ist etwas mehr Erfahrung erforderlich. Wer eine einfache Multi-Boot-Lösung für Linux sucht, sollte YUMI oder ein ähnliches Tool einsetzen. Die hier beschriebene Methode ist für alle sinnvoll, die Linux- und Windows-Betriebssysteme von einem einzigen Stick starten möchten.

Möglich ist das mit GNU Grub, oft auch als Grub 2 bezeichnet. Die offizielle Versionsnummer ist allerdings derzeit 1.99. Die Installation von Grub nimmt man am besten unter einem Betriebssystem vor, das Grub 2 (nicht Grub 1 oder Legacy Grub) als Standard-Boot-Manager verwendet, etwa Ubuntu oder Linux Mint. Wer eine solche Distribution nicht zur Hand hat, kann das Rettungssystem Parted Magic von CD oder einem zweiten USB-Stick starten und von dort installieren.

Zunächst gibt man aber seinem Boot-Stick einen Namen, da einige Linux-Distributionen, etwa Fedora, das Boot-Medium am Namen erkennen. Das erledigt man unter Windows mit dem Befehl label G:ZDNET-BOOT.

Danach wird der Stick in einen Linux-Rechner mit Grub 2 eingesteckt. Normalerweise wird der Stick automatisch gemountet. Der Mount-Point heißt meist /media/ZDNET-BOOT. Mit dem Befehl cat /proc/mounts stellt man anschließend den Posix-Devicenamen des Sticks fest, siehe Bild unten. Bei einem System mit zwei Festplatten wird meist /dev/sdc1 angezeigt. Das bezeichnet die Partition. Zur Installation von Grub 2 wird nicht Partition sondern der ganze Stick benötigt. Aus /dev/sdc1 wird daher /dev/sdc (die "1" wird weggelassen).

Anschließend installiert man Grub mit dem Befehl

sudo grub-install --root-directory=/mnt/ZDNET-BOOT /dev/sdc

Als nächstes muss eine Konfigurationsdatei /boot/grub/grub.cfg auf dem Stick angelegt werden. Das lässt sich wahlweise unter Linux oder Windows erledigen. Es ist egal, ob es sich um eine Unix- oder Windows-Textdatei handelt. Idealerweise benutzt man einen Editor, der mit beiden Textformaten zurechtkommt.

Zunächst erstellt man einen Eintrag für die Windows Betriebssysteme, der wie folgt aussieht:

menuentry "Windows Installer starten" {
echo "Lade Windows-Boot-Manager (bootmgr) ..."
ntldr /bootmgr
echo "Starte Windows-Boot-Manager (bootmgr) ..."
}

Grub 2 hat die Möglichkeit, Kernel und Initrd aus einer ISO-Datei zu extrahieren und zu booten. Das heißt, man muss lediglich die ISO-Datei einer Distribution auf den Stick kopieren und einen weiteren Menüeintrag in /boot/grub/grub.cfg hinzufügen. Allerdings funktioniert das nur mit Distributionen, die das explizit unterstützen, beispielsweise Ubuntu.

Andere Distributionen, etwa Fedora, verlangen, dass die ISO-Datei vorher ausgepackt und auf den Stick kopiert wird. Das Booten klappt damit genau so gut. Allerdings ist eine ISO-Datei praktischer. Man kann sie schnell mal einem Freund geben oder in einer virtuellen Maschine booten.

Einige wenige Distributionen, zum Beispiel OpenSUSE, kommen nicht damit zurecht, wenn sie nicht im Root-Verzeichnis des Sticks installiert sind, was in einer Multiboot-Umgebung nicht geht. Diese Distributionen müssen angepasst werden. Das geht allerdings über den Umfang dieses Artikels hinaus. Man kann sich jedoch behelfen, indem man eine Netinstall-Version des OS auf den Stick packt. Dann kann man booten und die eigentliche Installation über das Intra- oder Internet ausführen.

Bei Distributionen, die als ISO-Datei auf den Stick gelegt werden können, lässt sich die ISO-Datei in ein beliebiges Verzeichnis des Sticks kopieren, beispielsweise in /linux.

Um etwa Ubuntu 11.10 64-Bit auf den Stick zu bringen, lädt man die Datei ubuntu-11.10-desktop-amd64.iso herunter und kopiert sie ins Verzeichnis /linux auf den Stick. Danach fügt man Folgendes zur Datei /boot/grub/grub.cfg hinzu:

menuentry "Ubuntu 11.10 (Oneiric Ocelot) 64-Bit Live-CD vom Stick starten" {
echo "Binde Ubuntu-ISO-Image ein ..."
loopback loop /linux/ubuntu-11.10-desktop-amd64.iso
set root='(loop)'
echo "Lade den Ubuntu-11.10-Kernel ..."
linux /casper/vmlinuz boot=casper file=/cdrom/preseed/ubuntu.seed iso-scan/filename=/linux/ubuntu-11.10-desktop-amd64.iso noeject noprompt --
echo "Lade das Ubuntu-11.10-Initialisierungsdateisystem ..."
initrd /casper/initrd.lz
echo "Starte Kernel ..."
}

menuentry "Ubuntu 11.10 (Oneiric Ocelot) 64-Bit installieren" {
echo "Binde Ubuntu-ISO-Image ein ..."
loopback loop /linux/ubuntu-11.10-desktop-amd64.iso
set root='(loop)'
echo "Lade den Ubuntu-11.10-Kernel ..."
linux /casper/vmlinuz only-ubiquity boot=casper file=/cdrom/preseed/ubuntu.seed iso-scan/filename=/linux/ubuntu-11.10-desktop-amd64.iso noeject noprompt --
echo "Lade das Ubuntu-11.10-Initialisierungsdateisystem ..."
initrd /casper/initrd.lz
echo "Starte Kernel ..."
}

Zu beachten ist, dass die beiden Zeilen, die mit "linux" beginnen, aus layouttechnischen Gründen umgebrochen sind, die jeweils folgende Zeile gehört noch dazu.

Um herauszufinden, welche Parameter dem Linux-Kernel übergeben werden müssen, kann man in der Original-ISO-Datei nach den Dateien syslinux.cfg und isolinux.cfg und dort nachschauen. Sie sind für jede Distribution unterschiedlich und es gibt keine allgemeingültige Vorgehensweise. Im Zweifel muss man sie wissen oder googlen.

Die beiden Beispiele oben beziehen sich auf dieselbe Ubuntu-Live-CD. Der Unterschied besteht im Parameter "only-ubiquity", der bewirkt, dass das Installationsprogramm gestartet wird. Lässt man ihn weg, wird die Live-CD-Oberfläche gebootet.

Nachfolgend sind Beispiele für weitere Distributionen aufgeführt, die sich als ISO-Datei auf den Stick kopieren lassen. Man findet weitere Konfigurationen bei panticz.de und bei paranoids.at. Nur wenige Distributionen, etwa Grml, haben die Kernel-Parameter sauber dokumentiert.

Distributionen, die nicht als ISO-Datei gebootet werden können, werden einfach auf dem Stick in Verzeichnis ausgepackt. Es eignet sich in der Regel ein Unterverzeichnis von /linux, etwa /linux/Fedora-x64. In dieses Verzeichnis wird gesamte Inhalt der Original-CD oder ISO-Datei kopiert. Nachfolgend sind wieder einige Beispiele aufgeführt:

Wenn man anschließend vom Stick bootet, erscheint Folgendes auf dem Bildschirm:

Wer "Windows Installer starten" auswählt, landet im Auswahlmenü für die Windows-Installation. Jede andere Auswahl führt dazu, dass die entsprechende Linux-Live- oder Installations-CD gebootet wird.

Page: 1 2

ZDNet.de Redaktion

Recent Posts

Microsoft stellt kleines KI-Modell Phi-3 Mini vor

Seine Trainingsdaten umfassen 3,8 Milliarden Parameter. Laut Microsoft bietet es eine ähnliche Leistung wie OpenAIs…

3 Tagen ago

Google schließt kritische Sicherheitslücke in Chrome

Sie erlaubt eine Remotecodeausführung außerhalb der Sandbox. Betroffen sind Chrome für Windows, macOS und Linux.

4 Tagen ago

Microsoft beseitigt Fehler im März-Sicherheitsupdate für Exchange Server

Probleme treten vor allem bei Nutzern von Outlook Web Access auf. Das optionale Hotfix-Update für…

4 Tagen ago

Neue iPads: Apple kündigt Event für 7. Mai an

Die Einladung zeigt einen zeichnenden Apple Pencil. Der wiederum deutet auf neue iPads hin. Es…

4 Tagen ago

EU-Parlament stimmt für Recht auf Reparatur

Die Richtlinie erhält 584 Ja-Stimmen und 3 Gegenstimmen. Das „Recht auf Reparatur“ beinhaltet unter bestimmten…

4 Tagen ago

Forscher entwickeln Exploits per GPT-4 aus Sicherheitswarnungen

Die Tests basieren auf tatsächlich existierenden Sicherheitslücken. GPT-4 erreicht eine Erfolgsquote von 87 Prozent. Alle…

5 Tagen ago