Der Bootmanager GNU GRUB

Booten bis die Schwarte kracht

Ob nun als LILO Nachfolger oder Konkurrent bezeichnet, der Bootloader GNU GRUB bietet eine Menge an lange vermissten Features. GRUB ist die Abkürzung für GRand Unified Bootloader. Direkt übersetzt bedeutet GRUB soviel wie Larve. Der Test zeigt jedoch, das GRUB dieses Stadium längst hinter sich gelassen hat. Wo die meisten anderen Bootloader - ob nun der NT Loader, LILO oder der BSD Loader - sehr spartanisch ausgestattet und zu bedienen sind, zeigt GRUB seine Stärken. Mit Startmenü, einer Kommandoshell und einem neuartigen Konzept, dem direkten Zugreifen auf unterschiedliche Filesysteme, geht GRUB ins Rennen.

GRUB - der Anfang

Die erste Version von GRUB entstand 1995 (durch Erich Boleyn) und diente als Loader des HURD Betriebssystems. Nach diversen Weiterentwicklungen wurde GRUB 1999 durch Okuji Yoshinori und Gordon Matzigkeit in das GNU Projekt übernommen. Es entstand GNU GRUB (im folgendem als GRUB bezeichnet). Heute unterstützt GRUB das Laden verschiedenster Systeme (FreeBSD, NetBSD, OpenBSD, GNU/Linux, GNU MACH-Kernel). GRUB benutzt den Multiboot Standard. Betriebssysteme, die diesem Standard unterliegen, benutzen den gleichen Startvorgang. Leider sind das nur wenige. Nicht direkt unterstützte Betriebssysteme ( z.B. DOS, sämtliche Windows-Versionen und OS2) werden mittels 'chain-loading' (zu deutsch Kettenladen) geladen.

GRUB hat auf Grund seiner Funktionalität und seiner umfangreichen Features in einigen Distributionen LILO, als klassischen Linux-Loader, abgelöst. Dieser Artikel soll Ihnen, nach einem kurzen Überblick über die Aufgaben und Funktionen von Bootloadern/ -manager, zumindest einen Anreiz liefern, sich mit GRUB zu beschäftigen. Allein die Menüleiste beim Systemstart ist im täglichen Gebrauch sicherlich für jeden Anwender hilfreich.

Ein paar Grundlagen
Nach dem Einschalten des Rechners wird der Prozessor über den Reset-Vektor dazu angewiesen, das BIOS (Basic Input Output System) zu starten. Dieses konfiguriert (mittels der im CMOS abgelegten Daten) und testet das Gesamtsystem (Stichwort Speichercheck, Floppy seek at boot ...). Im Anschluss daran werden entsprechend der eingestellten Bootreihenfolge die Speichermedien nach einem 'bootbaren' Medium durchsucht. Dazu wird zunächst der Masterbootrekord (MBR) eingelesen.

Info:
Im BIOS befinden sich viele zusätzliche Unterprogramme, die über Systemaufrufe (Software-Interrupts) von den einzelnen Betriebssystemen verwendet werden können. GRUB macht ebenfalls davon Gebrauch, wenn es um die Festplattenparameter und -zugriffe geht.

Der MBR einer Festplatte beinhaltet prinzipiell einen 446 Byte großen Bereich für Programmcode, weitere 64 Byte für die Partitionseinträge sowie eine abschließende 0xAA55 als Kennung, insgesamt 512 Byte. Wer bereits programmiert hat weiß, dass man in 446 Bytes nicht die Welt an Funktion unterbringen kann. Deswegen bestehen Bootloader zumeist aus (mindestens) zwei oder mehr Teilen. Die Aufgabe des ersten Teils besteht darin, den zweiten, weitaus größeren Teil nachzuladen. Dieser ist für das Laden und Starten (Abgabe der Kontrolle) des jeweiligen Systems verantwortlich. Eventuell ist noch eine Parameterübergabe erforderlich.

Um sich über ein Bootkonzept klar zu werden, sind Informationen über die Einteilung der Festplatte in Partitionen sehr hilfreich. Prinzipiell kann eine Festplatte aus maximal vier primären Partitionen bestehen (Beschränkung auf Grund der 64 Bytes im MBR). Wer mehr benötigt, greift entweder auf einen speziellen Bootmanager zurück (z.B. BootStar) oder erstellt eine erweiterte Partition. In dieser können dann logische Laufwerke angelegt werden.

ACHTUNG: Beim Einsatz von Bootmanagern in Kombination mit GRUB, darf GRUB nicht in den MBR geschrieben werden! Dort befindet sich in aller Regel der Programmcode (erster Teil) des Bootmanagers.

Artikel kommentieren