Start   Impressum   Lizenz         online lesen   Download         Online-Shop   Jumping Blue Turtle

Debian für Unternehmer - Debian-Know-how

0730: Globales Bootmenü einrichten

In diesem Modul wird Ihnen gezeigt, wie Sie Ihr globales Bootmenü modifizieren können. Das verwendete Bootmenü heißt grub.

1. Die Datei "menu.lst"

Die wesentliche Konfigurationsdatei, um die es hier geht, heißt "/boot/grub/menu.lst". Sie bestimmt das Aussehen des kompletten Bootmenüs und die Bedeutung der einzelnen Menüpunkte. Es geht jetzt darum, die grub-Konfigurationsdatei des Startrampensystems anzupassen, welches sich aktuell im Verzeichnis "0002_startrampensystem" befindet. Öffnen Sie dazu die Datei "0002_startrampensystem/boot/grub/menu.lst" in einem Editor:

nedit 0002_startrampensystem/boot/grub/menu.lst

Interessant ist jetzt der Inhalt dieser Datei. Alle Zeilen, die mit einem "#" beginnen, sind Kommentarzeilen und werden entsprechend von grub ignoriert.

Es ist eine gute Idee, wenn Sie zuerst die Datei etwas aufräumen. Wenn Sie den Blick für das Wesentliche freihaben möchten, dann löschen Sie alle Zeilen, die mit einem Kommentar beginnen, heraus. Die nach dieser Aktion übrigbleibenden ca 10 Prozent der ursprünglichen Datei passen jetzt locker auf eine einzige Bildschirmseite.

2. Das Aussehen des Bootmenüs

Die folgenden drei Parameter bestimmen das Aussehen und Verhalten Ihres Bootmenüs:

  • default: Die Zahl sagt aus, welcher Menüpunkt nach dem Booten des Rechners zur Auswahl vorselektiert sein soll. Die Zählung beginnt bei 0. Beispiel:
    default 3
    
    In dem Fall ist der vierte (!) Menüpunkt vorselektiert.
  • timeout: Wenn nach dem Booten des Rechners die Tastatur nicht berührt wird, dann sagt die Zahl aus, nach wie vielen Sekunden der vorselektierte Menüpunkt automatisch von grub ausgewählt wird. Das entsprechende Betriebssystem wird dann gestartet. Beispiel:
    timeout 60
    
    Nach 60 Sekunden den zweiten Menüpunkt automatisch auswählen.
  • color normal [highlight]: Dieser Befehl bestimmt die Farben des Bootmenüs. Die Farben werden mit Hilfe von symbolischen Farbbezeichnungen angegeben.

    Also so:

    "color foreground/background foreground/background".

    Anstelle von "background" können folgende Farben verwendet werden:

    black, blue, green, cyan, red, magenta, brown, light-gray.

    Anstelle von "foreground" können zusätzlich auch noch folgende Farben verwendet werden:

    dark-gray, light-blue, light-green, light-cyan, light-red, light-magenta, yellow, white

    Das Farbenpaar für "normal" bestimmt das Aussehen aller Menüpunkte, die im Moment nicht selektiert sind. Das Farbenpaar für "highlight" bestimmt das Aussehen des aktuell selektierten Menüpunktes. Wird kein Farbenpaar für "highlight" angegeben, dann wird der aktuell selektierte Menüpunkt invertiert dargestellt.

    Beispiel:

    color yellow/green white/blue
    
    Das Menü wird mit gelber Schrift auf grünem Hintergrund dargestellt. Der aktuell selektierte Menüpunkt wird mit weißer Schrift auf blauem Hintergrund dargestellt.

3. Die einzelnen Menüpunkte

Am Ende der Datei werden die einzelnen Menüpunkte definiert. Sie müssten dort jetzt vier Menüpunkte zu stehen haben. Der erste und der dritte Menüpunkt starten Ihr Startrampen-Linux im Normal-Modus, der zweite und vierte im Rettungs-Modus. Die ersten beiden Menüpunkte benutzen einen 686er-Bigmem-Kernel, die anderen beiden benutzen einen einfachen 686er-Kernel.

Nach einer kleinen Umformatierung (TABs raus!) sehen sie so aus:

title Debian GNU/Linux, kernel 2.6.26-2-686-bigmem
  root (hd0,6)
  kernel /boot/vmlinuz-2.6.26-2-686-bigmem root=/dev/sda7 ro
  initrd /boot/initrd.img-2.6.26-2-686-bigmem

title Debian GNU/Linux, kernel 2.6.26-2-686-bigmem (single-user mode)
  root (hd0,6)
  kernel /boot/vmlinuz-2.6.26-2-686-bigmem root=/dev/sda7 ro single
  initrd /boot/initrd.img-2.6.26-2-686-bigmem

title Debian GNU/Linux, kernel 2.6.26-2-686
  root (hd0,6)
  kernel /boot/vmlinuz-2.6.26-2-686 root=/dev/sda7 ro
  initrd /boot/initrd.img-2.6.26-2-686

title Debian GNU/Linux, kernel 2.6.26-2-686 (single-user mode)
  root (hd0,6)
  kernel /boot/vmlinuz-2.6.26-2-686 root=/dev/sda7 ro single
  initrd /boot/initrd.img-2.6.26-2-686

Wenn auf einem Rechner mehrere Betriebssysteme laufen, dann ist es am pflegeleichtesten, vom globalen Bootmenü aus einfach nur die lokalen Bootmenüs der anderen Systeme anzuspringen.

Würden sich auf den Partitionen "/dev/sda5" und "/dev/sda6" nun die zwei Betriebssysteme "mein Linux 1" und "mein Linux 2" befinden, dann könnten Sie die folgenden zwei Einträge in die Konfigurationsdatei hinzufügen, um diese beiden Systeme vom globalen Bootmenü aus zu erreichen:

title mein Linux 1
  root (hd0,4)
  chainloader +1

title mein Linux 2
  root (hd0,5)
  chainloader +1

Wie Sie sehen, ist das Prinzip eigentlich ganz einfach. Die einzelnen Befehle haben die folgende Bedeutung:

  • title: Der Text nach dem "title"-Befehl ist die Bezeichnung des Menüpunktes im Menü. Wenn Sie also "mein Linux 1" schreiben, dann heißt der Menüpunkt im Bootmenü genau so.
  • root: Der erste Wert in der Klammer (hd0) sagt aus, auf welchem Datenträger sich die zu bootende Partition befindet. Mit "hd0" meinen Sie die erste Festplatte, mit "hd1" die zweite, mit "hd2" die dritte und so weiter. Sollten Sie noch ein antiquiertes Diskettenlauferk besitzen, dann wäre "fd0" das erste Diskettenlaufwerk im System. Der zweite Wert beschreibt die Partition auf dem Datenträger. Der Wert 0 steht für die erste Partition, 1 für die zweite, 5 für die sechste und so weiter. Wenn dort also "root (hd0,4)" steht, dann ist damit "/dev/sda5" gemeint.

    Sie können den zweiten Wert auch weglassen. Fehlt er, dann soll nicht vom Bootsektor einer Partition, sondern vom Masterbootsektor des Datenträgers (also vom MBR) gebootet werden. Also: Wenn Sie "root (hd1)" schreiben, dann meinen Sie "/dev/sdb".

    Das Weglassen des zweiten Wertes ist ganz praktisch, wenn Sie ein lokales Bootmenü konfigurieren. Dort ist es empfehlenswert, einen Menüpunkt einzubauen, der zum globalen Bootmenü zurückspringt. Das ist nützlich, wenn Sie beim Booten des Rechners aus Versehen das falsche System ausgewählt haben. Durch das "wieder hoch springen" verhindern Sie einen Neustart des Rechners und Sie sparen dadurch Zeit (ganze 15 Sekunden bei moderner Hardware) und Nerven.

  • chainloader +1: Mit diesem Befehl sagen Sie "grub", dass ein anderer Bootsektor (einer anderen Partition oder der des gesamten Datenträgers, also der MBR) aufgerufen werden soll. Meistens springen Sie von hier aus in ein anderes Bootmenü, etwa in das von Windows XP (falls bei Ihnen noch eins läuft) oder in das "grub" oder "lilo" eines anderen Linux-Systems.

Wenn Sie Ihr Menü mit weiteren nützlichen Eigenschaften versehen möchten, dann können Ihnen vielleicht auch nachfolgend beschriebenene Menüpunktarten hilfreich sein.

So könnte in einem lokalen Bootmenü ein Eintrag aussehen, der ins globale Bootmenü zurückspringt, ohne dass ein Rechnerneustart nötig ist:

title zurueck zum globalen Bootmenue
  root (hd0)
  chainloader +1

Mit einem solchen Trenn-Eintrag können Sie die Einträge in einem Bootmenü gruppieren:

title --------------------
  root

Sie sehen also, der Aufbau und die Pflege eines globalen Bootmenüs ist eine sehr einfache Sache, wenn die Details irgendwo dokumentiert sind. Viel Spaß damit! :-)

4. Globales Musterbootmenü

Wenn Sie Ihren Rechner so einrichten wollen, wie ich es hier generell empfehle, dann sollte Ihr globales Bootmenü wie folgt aussehen:

default 3
timeout 60
color yellow/green white/blue

title sda1: Installationspartition
  root (hd0,0)
  chainloader +1

title sda2 - startrampe: Debian 6.0.4
  root (hd0,1)
  kernel /boot/vmlinuz-2.6.26-2-686-bigmem root=/dev/sda2 ro
  initrd /boot/initrd.img-2.6.26-2-686-bigmem
  savedefault

title ----------------------------------------
  root

title sda5 - os1: Debian 6.0.4 zum Arbeiten
  root (hd0,4)
  chainloader +1

title sda6 - os2: Debian Etch R0
  root (hd0,5)
  chainloader +1

title sda7 - os3: Template-Baustelle
  root (hd0,6)
  chainloader +1

Erklärung:

  • default 3: Damit wird erreicht, dass immer das Arbeitssystem (das wichtigste System auf dem Rechner) vorselektiert ist. Die Zählung der Menüpunkte beginnt bei 0.
  • timeout 60: Wird 60 Sekunden lang keine Taste auf der Tastatur gedrückt, dann wird das lokale Bootmenü des vorselektierten Systems betreten. Jenes Menü könnte dann so konfiguriert sein, dass nach 5 Sekunden Nichtstun das globale Bootmenü erneut aufgesucht wird. Der Vorteil: Es wird kein System gebootet, wenn Sie es nicht booten möchten!
  • color yellow/green white/blue: Das Menü erscheint mit gelber Schrift auf grünem Hintergrund. Der aktuell ausgewählte Menüpunkt erscheint mit weißer Schrift auf blauem Hintergrund.
  • title sda1: Hiermit ist die Installationspartition erreichbar, mit der die Installation eines neuen Betriebssystems gestartet werden kann.
  • title sda2 - startrampe: Hiermit kann das Startrampensystem gebootet werden. Dabei gibt es Folgendes zu beachten:
    • Hier müssen Sie den ersten der 4 Einträge wiederverwenden, der sich ursprünglich in der Datei befand (siehe oben).
    • Aus "root (hd0,6)" machen Sie bitte "root (hd0,1)", denn das ist die Partition, in der sich das Startrampensystem künftig einmal befinden soll.
    • Aus dem gleichen Grund machen Sie aus dem "/dev/sda7" ein "/dev/sda2".
    • Für ein Startrampensystem reicht es völlig aus, nur den ersten der 4 Originaleinträge wiederzuverwenden. Sie brauchen dort weder einfache 686er-Kernel noch brauchen Sie dort einen Rettungs-Modus.
  • title ----------------------------------------: Hiermit wird nichts gebootet, sondern das aktuelle Bootmenü bleibt aktiv. Dieser Eintrag ist ein Trenner und soll optisch zeigen, dass die oberen 2 Menüpunkte der einen Kategorie angehören und die unteren 3 Menüpunkte einer anderen Kategorie.
  • title sda5 - os1: Hiermit wird das Arbeitssystem gebootet.
  • title sda6 - os2: Hiermit wird ein Testsystem gebootet.
  • title sda7 - os3: Hiermit wird die Template-Baustelle gebootet.