anello-net | projects | blog | news | search | about | links

Grub Fallback

April 20th, 2009


Grub ist,im allgemeinen Ton gesprochen, der beste Bootloader. Ein Bootloader ist, die Schnittstelle die das Betriebssystem aktiviert/lädt.

Der Grub Bootloader hat unzählige Features, jedoch eins kam mir diese Woche sehr hilfreich vor und daher schreibe ich dazu.

Mit einem Remote System, welches physikalisch nicht erreichbar ist, an welchem man einige Kernel Tweaks austesten will/muss, bekommt man ein Problem, sobald der Kernel nicht mehr mitspielt. Für diesen und natürlich auch andere Fälle gibt es ein Fallback Feature. Dank diesem Feature kann man eine Reihenfolge an Bootoptionen definieren, die nach und nach abgearbeitet werden, bis ein System erfolgreich geladen wurde.

Beispiel:

Man hat in der grub.conf/menu.lst zwei Kernel hinterlegt.

default saved # Durch diesen Eintrag wird der Default-Eintrag gebootet #bzw. der nächste funktioniernde Fallback gespeichert timeout 5 fallback 1 # Hier wird der Fallback definiert (GRUB zählweise 0 1 ... n) title Linux - New Custom Kernel # Dies ist Eintrag 0 root (hd0,0) kernel /boot/vmlinuz-2.6.29 root=/dev/sda1 ro savedefault fallback title Linux - Old Working Kernel # Dies ist Eintrag 1 root (hd0,0) kernel /boot/vmlinuz-2.6.18 root=/dev/sda1 ro savedefault Das heisst, das wenn der Boot mit dem Eintrag 0 'New Custom Kernel' scheitert, wird Eintrag 1 'Old Working Kernel' als neuer default gesetzt. Dies kann man mit folgendem Befehl im gebooteten System anpassen.

# grub-set-default 0 Dieses Feature kann man sehr gut in Kombination mit Grub PXE verwenden, z.B. wenn die Systemfestplatte nicht mehr funktioniert und dann über PXE ein Rescue System abgerufen wird oder von einem integriertem Flashspeicher gestartet wird.