Zum Inhalt springen
Der Guide für ein smartes Leben.
Starthilfe

Teil 2: Windows-Multiboot mit GRUB

Autor: Redaktion pcmagazin • 19.9.2007 • ca. 3:20 Min

Eine Besonderheit von GRUB ist, dass er seinen gesamten Funktionsumfang nur dann voll zur Geltung bringen kann, wenn er in den Master Boot Record der Festplatte installiert wird. Windows und DOS schreiben in den MBR lediglich einen Standard-Bootrecord, der das BIOS anweist, eine in der Partitionstab...

Eine Besonderheit von GRUB ist, dass er seinen gesamten Funktionsumfang nur dann voll zur Geltung bringen kann, wenn er in den Master Boot Record der Festplatte installiert wird. Windows und DOS schreiben in den MBR lediglich einen Standard-Bootrecord, der das BIOS anweist, eine in der Partitionstabelle aktiv markierte Partition zu suchen und deren Bootloader zu starten. Da GRUB nicht seinen gesamten Code auf 446 Bytes unterbringen kann, schreibt er seine zweite Stufe in die Installationspartition. Sie sollten dies im Hinterkopf behalten, wenn Sie öfters Partitionen verschieben, löschen und neu anlegen. Verschieben Sie die Partition, auf der GRUB installiert wurde, bootet der PC nicht mehr von Festplatte.

Windows-Multiboot mit GRUB
© Archiv

Der einfachste Weg, die Konfiguration von GRUB kennen zu lernen, ist Ubuntu Linux oder openSUSE auf einen gewöhnlichen PC mit einer einzigen IDE- oder SATA-Festplatte zu installieren und während der Installation das Überschreiben des Master-Boot-Records zu erlauben. Der Installer erstellt dann eine Konfigurationsdatei /boot/grub/menu.lst und eine weitere Datei /boot/grub/device.map, in der die Zuordnung der Festplatten steht.

Auf dem Testrechner mit drei primären Partitionen (1. NTFS, 2. LinuxSwap, 3. Linux Root) erhielten wir dabei folgende /boot/grub/menu.lst-Kommentare. Die deutsche Tastaturbelegung im Boot-Editor haben wir entfernt.

default 0
timeout 10
title Ubuntu, Kernel 2.6.17
kernel (hd0,2)/boot/vmlinuz root=/dev/sda3 ro
initrd (hd0,2)/boot/initrd.img
boot
title Windows Vista
root (hd0,0)
makeactive
chainloader +1
boot

Die dazu gehörige /boot/grub/device.map enthielt nur einen Eintrag:

(hd0) /dev/sda

GRUB beginnt die Zählung von Partitionen und Festplatten bei Null, (hd0) bezeichnet die erste vom BIOS erkannte Festplatte - in der Regel die Platte, die in der Boot-Reihenfolge an erster Stelle steht. (hd0,0) steht demnach für die erste Partition der ersten Festplatte, hier die NTFS-Partition mit einer Vista-Installation.

Der erste Eintrag steht für die Linux-Installation. Kernel und Initrd werden direkt über ihren Pfad auf der dritten Partition auf der ersten Festplatte aufgerufen. Das Schlüsselwort boot schließt den Eintrag ab. Es folgt Windows auf der ersten Partition der ersten Festplatte. Da Vista einen eigenen Loader am Anfang seiner Partition mitbringt, wird dieser über das Schlüsselwort chainloader aufgerufen, makeactive markiert die Boot-Partition als aktiv.

GRUB installieren

Aktuelle Linux-Distributionen erledigen die Installation von GRUB automatisch. Hat eine erneute Windows-Installation den Master- Bootrecord überschrieben, werden Sie GRUB jedoch neu installieren müssen - ebenso, wenn Sie GRUB dazu nutzen, verschiedene Windows-Installationen komfortabel zu booten, ohne dass eine Linux-Installation auf dem Rechner vorhanden ist. Dies geht am komfortabelsten mit einer Linux-Live-CD wie Knoppix oder Kanotix. Starten Sie von dieser und mounten Sie die Partition, auf der Sie GRUB installieren wollen. Öffnen Sie anschließend eine Root-Shell und führen Sie den GRUB-Installer aus:

Windows-Multiboot mit GRUB
© Archiv
grub-install --root-directory=/media/hda3 --recheck /dev/hda

Dieser Befehl installiert GRUB in den Master-Bootrecord der ersten IDE-Festplatte und die zweite Stufe auf die dritte Partition dieser Platte.

Der Parameter --recheck prüft die Zuordnung zwischen Linux-Laufwerksbezeichnungen und gibt sie am Ende aus. Wird die Boot-Platte nicht korrekt als (hd0) identifiziert, was häufig der Fall ist, wenn SATA- und IDE-Geräte in einem Rechner eingebaut sind, müssen Sie die Datei/boot/grub/device. map anpassen und den Befehl erneut ohne --recheck ausführen. Enthielt die Partition, auf der GRUB installiert wurde, noch keine /boot/grub/menu.lst, muss diese erstellt werden, um beim Systemstart nicht in der Eingabeaufforderung

grub>

zu landen und Bootpartition, Kernel und Initrd oder Chainloader von Hand eintippen zu müssen.

Profi-Bootloader

GRUB bringt einige Features mit, die den Bootloader für Firmenumgebungen und Server attraktiv machen. Eines davon ist die Möglichkeit, bestimmte Boot-Einträge durch ein Passwort abzusichern. So kann das Abändern von Menüeinträgen genauso verhindert werden wie die Anwahl gesperrter Optionen. Dies erlaubt es, Rettungssysteme so abzusichern, dass sie nur der Administrator anwählen kann. Erstellen Sie den Passwort-Hash unter Linux (oder unter Windows in einer Cygwin-Umgebung) mit dem Befehl

openssl passwd -1

Der ausgegebene Passwort-Hash wird vor die Menüeinträge in die Konfigurationsdatei eingegeben. Der Befehl lock sperrt einen Menüeintrag schließlich ganz, andere Menüeinträge können ausgewählt und gestartet, aber nicht ohne Passwort verändert werden.

default 0
timeout 10
password --md5 $1$OG9J9Le6$wfoIs2sHJR8rkzS4VjT5N0
title Ubuntu, Kernel 2.6.17
kernel (hd0,2)/boot/vmlinuz root=/dev/sda3 ro
initrd (hd0,2)/boot/initrd.img
lock
boot
title Windows Vista
root (hd0,0)
makeactive
chainloader +1
boot

Eine weitere interessante Erweiterung ist die Möglichkeit, GRUB mit Treibern für Netzwerkkarten und einem DHCP- sowie TFTP-Client zu kompilieren. Dies erleichtert das Zurückspielen von Betriebssystem-Images via Netzwerk, auch wenn ein Rechner nicht für den Boot-Vorgang per PXE konfiguriert wurde.