- Wie kommt ein Schneepflugfahrer morgens zur Arbeit?
- -- H.G. Butzko
Aus meinem Bekanntenkreis wird immer mal wieder die Frage an mich herangetragen: "Sag mal, wie bekomme ich eigentlich mein Linux bootfähig, wenn ich entweder noch gar keinen Bootloader drauf habe, oder aber der Bootloader kaputt ist?" Bisher war die Lösung immer noch von vielen Rückfragen abhängig, besonders wichtig war dabei das "Abzählen" der Partitionen. Dank GRUB4DOS kann ich jetzt aber mal in einem allgemeingültigen How-To zusammenschreiben. Was im Vorfeld benötigt wird, sind die Parameter, mit denen der Linux-Kernel gestartet wird. Außerdem wird auch die Lage des Kernels im Dateisystem benötigt, diese wird aber von vielen Linux-Distributionen mit deinem Link von /vmlinuz angezeigt, der hier also als Stellvertreter genommen wird.
GRUB4DOS ist eine Abspaltung (auch "Fork" genannt, nach dem englischen Begriff für "Gabelung" oder "Verzweigung") des "originalen" GRUB. Ursprünglich dafür gedacht, um von DOS aus ein GRUB-ähnliches Tool laden zu können, das Programm mittlerweile wohl eher selten von DOS aus genutzt. Die heutzutage viel nützlichere Verwendungsmöglichkeit ist ihn entweder als nativen Bootloader einzusetzen, oder aber um ihn vom Windows Bootloader starten zu lassen.
Das Herzstück von GRUB4DOS heißt grldr, und lässt sich nativ, vom Windows Bootloader, von CD und mit Hilfe des
PXE Protokolls auch über das Netzwerk zu laden. Die Einrichtung auf CD folgt den üblichen Prinzipien eines nativen Bootloaders, und auch bei PXE läuft es nach den bekannten Vorgehensweisen. Details lassen sich auch in der sehr guten, inoffiziellen Dokumentation nachlesen. Am einfachsten ist aber die Installation auf Festplatte. Alles, was man braucht ist eine Partition, die mit einer der folgenden Dateisysteme formatiert ist: FAT16, FAT32, NTFS, EXT2, EXT3 oder EXT4. Auf diese Partition kopiert man dann die Datei "grldr" in das Wurzelverzeichnis und legt dort auch noch die Datei "menu.lst" an, die die Konfiguration des Bootloaders beschreibt, wie welches Betriebssystem gestartet werden soll. Eine "menu.lst" für Linux sieht bei mir ungefähr so aus:
color cyan/blue white/cyan white/black white/black
timeout=10
default=0
title Irgendeine Linux-Distribution
find --set-root /vmlinuz
kernel /vmlinuz root=/dev/sda1 ro
initrd /initrd.img
title GRUB2 suchen und laden
find --set-root /boot/grub/core.img && kernel /boot/grub/core.img
find --set-root /grub/core.img && kernel /grub/core.img
title Windows XP laden
find --set-root /ntldr
chainloader /ntldr
Im ersten Absatz stehen die allgemeingültigen Parameter, im zweiten dann die Parameter für das Starten der Linux-Distribution ("root=/dev/sda1 ro" sind übrigens die Parameter des Rechners an dem ich gerade tippe). Man beachte, dass es nicht nötig ist, die Partitionanzugeben, auf der sich der Linux-Kernel befinden, der Befehl "find --set-root" ersetzt das kryptische "root (hd0,0)" von GRUB. Die Konfiguration dritte Absatz sorgt dafür, dass der GRUB2 Bootloader gesucht und geladen wird. (Dieser Teil ist ungetestet.) Im vierten Abschnitt sieht man, wie ich ein Windows XP mit GRUB4DOS lade. (Das ist wiederum getestet.) Man sieht also, wie flexibel GRUB4DOS einsetzbar ist. Eine Flexibilität, die GRUB und auch GRUB2 abgeht. Das war es schon... zumindest fast. Irgendjemand muss ja nun noch den "grldr" laden.
Man kann ihn zum Beispiel vom Windows Bootloader (Windows NT, 2000 und XP) aus laden, wenn man in die Datei "boot.ini" folgende Zeile in dem Abschnitt "[operating systems]" hinzufügt:
C:\grldr="Grub4Dos"
Anders sieht die Sache aus, wenn "grldr" direkt beim Start als erstes geladen werden soll. Dann braucht man noch einen speziell auf GRUB4DOS zugeschnittenen Master Boot Record (MBR). Da die 440 Byte, die dort für Programmcode vorgehalten werden, nicht ausreichen, wird noch der Rest des Tracks in dem sich üblicherweise nur der MBR und die Partitionstabelle befindet mit verwendet. Dieser MBR-Bootloader hat meines Wissens nach keinen Namen und wird mit Hilfe eines Tools namens "bootlace.com" auf die Festplatte geschrieben. Dieses Programm ist übrigens sehr bemerkenswert: die Datei "bootlace.com" kann sowohl unter DOS als auch unter Linux ausgeführt werden. Für die Installation unter Windows gibt es ein Programm namens "grubinst", dass die gleiche Aufgabe erfüllt, und außerdem noch eine optionale, grafische Benutzeroberfläche bietet.
Dieses verteilt seinen Code über die ersten 18 Sektoren der Festplatte. Leider hat diese Kompaktheit aber auch einen Nachteil: dieser MBR-Bootloader unterstützt nur die Dateisysteme FAT16, FAT32, NTFS, EXT2 und EXT3. Die Unterstützung für EXT4 fehlt. Bei meiner
Anfrage, ob es mögliche wäre auch noch diese Funktionalität mit in den Code zu quetschen, wurde ich auf ein anderes Projekt des Teams aufmerksam gemacht: ein Bootloader für die ersten 63 Sektoren names "wee", der EXT4 Unterstützung bietet, und sich zum Laden des "grldr" eignet. Im Gegensatz zum "18 Sektoren"-Loader des "bootlace.com".
Und hier nun auf einen Blick alle wichtigen Links zu GRUB4DOS:
Kommentare
Seitdem kannich mein windows nicht mehr starten,komme auch an
meine festplatte nicht mehr ran.
Wenn dem so ist, kannst Du folgende Zeilen eingeben, um Windows "von Hand" zu starten.
Windows Vista/7:
find --set-root /bootmgr
chainloader /bootmgr
Windows NT/2000/XP:
find --set-root /ntldr
chainloader /ntldr