Den Umstieg des Boot-Managers von Lilo auf Grub haben inzwischen die meisten Linux-Distributionen vollzogen.
Und schon steht der nächste Boot-Manager der Zukunft in den Startlöchern: Grub 2.
Da er bereits in der neuen Ubuntu Version 9.10 (Karmic Koala) als standard Boot-Manager mitgeliefert wird, ist es Zeit mal einen Blick darauf zu werfen.
Aufbau
Grub 2 ist stark modifiziert worden. Aber nur zu seinem Vorteil. Denn die große Modularisierung lässt mehr Spielraum zu. So unterstützt Grub 2 nun direkt (Software-)RAID und LVM-Partitionen, beliebige weitere Dateisysteme und einige eher exotische Features.
Der erste Blick ins Verzeichnis <code>/boot/grub/code> läßt einen schnell verzweifeln.
Dazu besteht aber kein Grund. Denn die meisten Dateien braucht man nicht oder muss sie zumindest nicht beachten.
Die Datei <code>menu.lstcode> findet sich nicht mehr aber dafür eine <code>grub.cfgcode>. Sie ist nicht nur umbenannt, sondern hat auch ihre Syntax verändert.
(Allerdings leider nicht in eine XML-Schreibweise.):
menuentry "Ubuntu, Linux 2.6.31-14-generic" { set quiet=1 insmod ext2 set root=(hd0,1) search --no-floppy --fs-uuid --set 4d8167db-a88c-4209-9f5c-27fda684f112 linux /boot/vmlinuz-2.6.31-14-generic root=UUID=4d8167db-a88c-4209-9f5c-27fda684f112 ro quiet splash initrd /boot/initrd.img-2.6.31-14-generic }
Hier sehen wir bereits, dass das Modul für das Dateisystem geladen werden soll: <code>insmod ext2code>
Erst auf den zweiten Blick fällt das Auge auf <code>set root=(hd0,1)code>.
Dies ist nicht wie gewohnt die zweite Partition auf der ersten Platte, sondern die Erste.
Konfiguration
Letztendlich muss man als Anwender nicht ins Verzeichnis <code>/boot/grub/code> schauen.
Denn Grub 2 wird vollständig in <code>/etc/grub.d/code> konfiguriert.
Hier finden sich Shell-Scripte welche über <code>grub-mkconfigcode> aufgerufen werden und ihren Teil zur <code>grub.cfgcode> hinzufügen.
Bei Ubuntu 9.10 enthält dieses Verzeichnis folgende Dateien:
00_header 05_debian_theme 10_linux 20_memtest86+
Es ist nicht schwer zu erraten was sich in der jeweiligen Datei versteckt.
Der Aufruf von <code>grub-mkconfigcode> ist leider nicht ganz so trivial:
grub-mkconfig -o /boot/grub/grub.cfg
(Wenn man nicht im Administrations-Terminal ist, sollte noch ein <code>sudocode> davor.)
Erfreulicherweise hat sich am MBR-Installer nichts geändert:
grub-install /dev/sda
Damit installiert man den Master-Boot-Record von Grub 2 auf der ersten Festplatte.
Fazit
Grub 2 bietet deutlich mehr Features.
Auch ist die Erkennung von fremden Betriebssystemen verbessert worden.
Doch leider ist die Konfigurations-Methode für viele Admins ein Rückschritt.
Denn es ist wesentlich umständlicher/schwerer den Konfigurator <code>grub-mkconfigcode> innerhalb der richtigen Umgebung aufzurufen, wenn man gerade in eine Recovery-System arbeitet bzw. in einem anderen OS gebootet hat.
Links
- huschi.net: /dev/hda wird zu /dev/sda
- Ubuntu-Users: GRUB 2
- GNU GRUB 2 FAQ