Grub-menu.lst win-system (map)

Eine einfache Konfigurationsdatei von grub könnte dann folgendermaßen aussehen: default=0 timeout=10 splashimage=(hd0,0)/grub/splash.xpm.gz

title Linux (2.4.18) root (hd0,0) kernel /bzImage-2.4.18 ro root=/dev/hda3 initrd /initrd-2.4.18.img

title Linuxalt (2.2.14) root (hd0,0) kernel /bzImage-2.2.14 ro root=/dev/hda3 initrd /initrd-2.2.14.img title Windows 98 map (hd0,0) (hd0,1) map (hd0,1) (hd0,0) rootnoverify (hd0,1) chainloader +1 Die ersten drei Zeilen sind - ähnlich wie bei lilo.conf die globalen Einstellungen. default=0 bedeutet, daß der erste Eintrag gewählt wird, wenn der Timeout überschritten wurde. Die zweite Zeile definiert diesen Timeout Wert in Sekunden. Die dritte Zeile definiert das verwendete Hintergrundbild. Hier finden wir bereits die erste Anwendung der grub-spezifischen Adressierung, die gleich näher erläutert wird.

Die folgenden Einträge definieren jeweils die zu bootenden Systeme. Die einzelnen Zeilen bedeuten jeweils folgendes:

title Titelzeile Diese Zeile leitet einen Abschnitt eines zu bootenden Systems ein. Der unter Titelzeile gemachte Eintrag erscheint später im Menü. root hdn,m Dieser Eintrag ist nicht das Wurzelverzeichnis des Linuxsystems. Er bezeichnet die Partition, auf der die Kerneldateien und die grub-Konfigurationsdateien liegen. In unserem Beispiel ist das /dev/hda1, also die /boot-Partition von Linux. Die angegebenen Zahlen bezeichnen folgendes:

* n - Nummer der Platte (0 ist die erste Platte, 1 die zweite, ...) * m - Nummer der Partition auf der Platte (0 ist die erste Partition, 1 die zweite, ...)

Unser Beispiel bezeichnet also mit (hd0,0) die erste Partition der ersten Platte also im Linux-Jagon /dev/hda1.

Alle weiteren Angaben beziehen sich auf diese Platte. kernel Kerneldatei Parameter Mit dieser Angabe wird die Kerneldatei angegeben und mit Aufrufparametern versehen. Der Pfad der Kerneldatei bezieht sich hier nicht auf die Wurzel des Linux-Systems sondern auf die Wurzel des Systems, das wir im letzten Punkt (root) angegeben hatten. In unserem Beispiel liegt die Kerneldatei also unter /boot/bzImage-2.4.18.

Die eigentliche Wurzel des zu bootenden Linux-Systems wird als Kernelparameter angegeben (hier also /dev/hda3. initrd Ramdiskimage   Hier wird der Name der Ramdiskdatei angegeben, die als initiale Ramdisk geladen werden soll. Benutzt der Kernel keine initiale Ramdisk, so wird diese Zeile komplett weggelassen. Auch hier bezieht sich der Pfad auf die Wurzel des unter root angegebenen Devices.

Der zweite Eintrag definiert einen zweite Kernel auf der selben Partition. Die Angaben entsprechen denen des ersten Eintrags.

Im dritten Eintrag wird eine Windows-Partition definiert, die Win98 booten soll. Dieser Eintrag enthält einige Besonderheiten, die hier noch kurz dargestellt werden sollen.

map (Partition1) (Partition2) Windows98 bootet normalerweise nur von der ersten Partition der ersten Festplatte. Durch den Befehl map (hd0,0) (hd0,1) erklären wir die Partition hd0,0 zur zweiten Partition (hd0,1) und mit der nächsten Zeile wird entsprechend die zweite Partition zur ersten. Aus der Sicht des Windows-Systems ist also die zweite Partition jetzt die erste und umgekehrt. Damit ist für Windows die Welt wieder in Ordnung und es glaubt, von der ersten Partition zu booten. rootnoverify (Partition) Diese Angabe entspricht der Angabe root bei Linux-Einträgen, nur das diesesmal die entsprechende Partition nicht gemountet wird. (Das ist unter Windows nicht nötig, da ja nicht eine bestimmte Datei geladen werden soll, sondern der Bootsektor der Partition) chainloader +1 Diese Angabe ist für Windows erforderlich. Windows wird über einen chainloader gebootet, der auf einem betimmten Sektor der Windows-Partition liegt. Die Angabe +1 bezeichnet hier die Sektornummer 1, also den Bootsektor der Windows-Partition (die unter rootnoverify angegeben wurde).

Es existieren natürlich noch viele weitere Möglichkeiten für die Konfigurationsdatei, aber die hier genannten sollten einen ausreichenden Überblick über den Einsatz von grub als Bootmanager geben.