GRUB Konfiguration - menu.lst
 

Die Datei menu.lst in dem Verzeichnis /boot/grub ist die Konfigurationsdatei für das Auswahlmenü von GRUB, welches beim starten angezeigt wird. Aus dem Menü kann nun das zu bootende Betriebssystem ausgewählt oder Befehle über die Kommandozeile direkt an GRUB gesendet werden. Ihr Aufbau ist eigentlich ganz simpel:

Das Design des Menüs

default=0
das System, das standardmäßig startet wenn die entsprechende Timeout-Zeit abgelaufen ist. Hier der allererste Eintrag (die Zählung beginnt bei 0).

timeout=5
die Zeit, die verstreicht bis das default-System startet (in sec)

color cyan/blue white/blue
die Farben des Bootmenüs. Eine Liste der möglichen Farben unter GRUB gibts weiter unten. Alternativ können hier auch folgende Einträge stehen:

splashimage=(hd0,6)/grub/splash.xpm.gz
ruft ein komprimiertes xpm-Bild als Hintergrundbild für GRUB auf. Wie man einen Splash-Image-Hintergrund einrichtet, siehe auch weiter unten.
Suse verwendet einen GRUB mit gfx-Unterstützung, daher kann es bei Suse auch folgenden Eintrag geben:
gfxmenu (hd0,6)/boot/message
ruft eine gfx-Animation auf.

Einträge für Betriebssysteme

# Beispiel für einen Suse-Eintrag
title openSuse 10.2
title=der Name der als Eintrag im Bootmenü erscheint.

root (hd0,5)
Ort des zu startenden Systems. Da GRUB die Partitionen beginnend mit null numeriert, handelt es sich hier um /dev/hda6.

kernel /boot/vmlinuz-2.6.18.2-34-default root=/dev/hda6 vga=0x317
kernel=Verzeichnis und der zu bootende Kernel.
root=Lage der root-Partition. Anschließend die Optionen für den Kernel. Hier
vga=Auflösung für die Konsole (für die Auflistung der Nummern siehe weiter unten)

initrd /boot/initrd-2.6.18.2-34-default
Verzeichnis und die zu verwendende initrd. Falls die IDE oder SCSI-Treiber nicht im Kernel enthalten sind, müssen die entsprechenden Module über eine initrd-Datei (Initial Ram Disk) geladen werden.

# Beispiel für einen Debian-Eintrag
title Debian GNU/Linux, kernel 2.6.26-1-486
root (hd0,6)
kernel /boot/vmlinuz-2.6.26-1-486 root=/dev/hda7 ro quiet
initrd /boot/initrd.img-2.6.26-1-486
savedefault

Die Kerneloption quiet zeigt nicht sämtliche Log-Ausgaben beim booten und sorgt damit für weniger, aber dafür übersichtlichere Meldungen beim Systemstart.
ro steht für readonly und bewirkt, daß die Partition zunächst nur lesend eingebunden wird.
Über savedefault sind sich manche Anleitungen uneinig. Die GRUB-Anleitung unter info:grub meint, daß dieser Eintrag bewirkt, daß das System, daß man für den Start auswählt automatisch als Default gespeichert wird. Ein Linux-Buch behauptet daß durch savedefault sämtliche Informationen über den System-Eintrag, also die Kernel und Initrd-Einträge in der Datei /boot/grub/stage2 gespeichert werden. savedefault kann aber auch weggelassen werden.

# Beispiel für einen Windows-Eintrag
title Windows
root (hd0,0)
makeactive
chainloader +1
chainloader +1 ruft einfach die nächsten Daten nach GRUB auf, also damit den Bootloader von Windows.

# anderes Beispiel für Windows-Eintrag
title Windows
rootnoverify (hd0,0)
chainloader (hd0,0)+1


Design von Grub - Farben des Menüs

GRUB kennt folgende Farben für Vorder- und Hintergrund:

Vorder- und Hintergrundfarben zusätzliche Vordergrund-Farben
* black
* blue
* green
* cyan
* red
* magenta
* brown
* light-gray
* dark-grey
* light-blue
* light-green
* light-cyan
* light-red
* light-magenta
* yellow
* white

Syntax:
color <Vordergrund>/<Hintergrund> <aktiver Vordergrund>/<aktiver Hintergrund>

Beispiele für menu.lst Einträge:
color yellow/blue yellow/red
color yellow/green yellow/black


Boot-Splash-Images erstellen

Eigene Boot-Splash-Images zu erstellen, die bei Grub als Hintergrundbild angezeigt werden, ist mit dem Kommandozeilen-Programm convert kinderleicht.

Grundvorraussetzung für das File:

maximale Größe: 640x480 Pixel
Anzahl Farben: 14 Farben
Dateiformat: xpm (komprimiert)

convert ist im Paket imagemagick enthalten. Jedoch scheint unter Debian imagemagick nicht korrekt zu funktionieren. Stattdessen ist es besser man installiert die Pakete graphicsmagick und graphicsmagick-imagemagick-compat.
(letzteres Paket erfordert die Deinstallation von imagemagick)
graphicsmagick-imagemagick-compat stellt den Befehlssatz zu dem auch convert gehört für graphicsmagick zur Verfügung.

Mit folgendem Befehl kann man dann JPG-Bilder in das erforderliche Format konvertieren:
# convert -colors 14 -geometry 640x480 bild1.jpg bild1.xpm
wandelt ein JPG-Bild in das richtige Format (xpm) mit der korrekten Auflösung und der maximal zulässigen Anzahl an Farben. Mit
# gzip bild1.xpm
komprimiert man das Bild.
Nun muß man sich nur noch einen Speicherort suchen - der Übersichtlichkeit halber sollte man das Verzeichnis /boot/grub verwenden - und es nur noch in der menu.list angeben:
splashimage /boot/grub/bild1.xpm.gz
Das Verzeichnis kann theoretisch vollkommen frei selbst gewählt werden. Es empfiehlt sich aber wie gesagt der Übersichtlichkeit halber das Verzeichnis von GRUB.

Hier noch eine Tabelle der möglichen vga-Einstellungen für die Konsole:

Bild: Tabelle-grub-vga-Einstellungen.jpg

Welche Auflösungen von der Grafikhardware unterstützt werden, bestimmt das vga-Bios und kann mit einem kleinem Test ermittelt werden. Dazu muß man gleich nach dem Start des PC's das Auswahlmenü von Grub mit der Taste c unterbrechen. Anschließend befindet man sich in der Grub-Konsole.
grub>
Der Befehl help liefert eine Übersicht der möglichen Befehle in der Grub-Shell.
grub> help
Mit dem Befehl
grub> vbeprobe
werden die möglichen Auflösungen aufgelistet. Anschließend kann man die jeweilige Nummer in die menu.list eintragen. Ein Eintrag dieser Art zum Beispiel
vga=788
bewirkt eine Framebuffer-Auflösung von 800x600 Bildpunkten bei einer Farbtiefe von 16-Bit.

Zum Abschluß noch eine Debian-menu.lst zum Download.