Bootloader
Aus HackerWiki
Teile des folgenden Artikels sind dem Wiki des Undernet-Channels #linuxger mit freundlicher Erlaubnis des Autors entnommen.
Ein Bootloader ist das Programm, das von der Hardware des Computers beim Einschalten, beim Neustarten, kurz, immer wenn der Rechner das Betriebssystem laden muss, gestartet wird.
Der Bootloader hat Informationen darüber, welches Betriebssystem zu laden ist, und wo der Kernel dieses Betriebssystems liegt. Hat der Bootloader den Kernel geladen und gestartet, beendet er sich. Seine Aufgabe ist damit erledigt, und er wird bis zum nächsten Start nicht mehr gebraucht.
Contents |
Wie wird ein Bootloader geladen
Nach dem Einschalten oder auf irgendeine Weise initiierten Neustarts eines IBM-kompatiblen Computers wird vom BIOS, nach Ausführen der POST-Routine und den damit verbundenen Hardware-Tests und -erkennungen, automatisch der Inhalt des MBR, des Master Boot Record, der dem BIOS als Startfestplatte gemeldeten Festplatte, eingelesen und ausgeführt. Dieser Inhalt ist ein Programm, das direkt in die 512 Byte des MBR geschrieben wurde: Der Bootloader.
Es ist auch möglich, einen Bootloader im Startsektor einer beliebigen Partition oder anderen Festplatte zu haben, doch muß dieser dann von einem Bootloader im MBR heraus gestartet, bzw. die Festplatte beim Starten als Startlaufwerk ausgewählt werden (manche BIOSe unterstützen dies).
Der Master Boot Record ist der physisch erste Sektor einer Festplatte, und liegt noch vor den Informationen über die Partitionierung der Platte.
Der eingesetzte Bootloader muß natürlich das Format auf der Festplatte / Partition, auf der der zu ladende Kernel, aber auch mögliche Bootloader-eigene Konfigurationsdaten liegen, lesen können.
Beispiele für Bootloader
Der Windows-Bootloader
Jedes aktuelle Windows kommt seit Windows NT 4.0 / 2000 mit einem eigenen Bootloader, der es ermöglicht, Windows in verschiedenen Modi, aber auch andere Betriebssysteme, wie zum Beispiel Linux, zu laden.
Es ist allerdings nicht möglich, einen Linuxkernel direkt aus dem NT-Bootloader zu starten, und ebensowenig ist es möglich, eine Eingabeaufforderung für Parameterübergabe an das zu startende Betriebssystem zu erhalten. Um über den NT-Bootloader ein anderes Betriebssystem als das Windows zu starten, mit dem der Bootloader kam, sollte ein dem entsprechend anderen Betriebssystem eigener Bootloader vorhanden sein, dessen Startsektor-Abbild in Form einer Datei im "C:\"-Verzeichnis liegt. Für DOS / Windows 95/98/ME geschieht dies bei der Installation von Windows NT / 2000 / XP automatisch, solange DOS / Windows 95/98/ME vorher bereits installiert war.
Dieser Bootloader ist der sog. Windows-NT-Bootloader, wobei der Name oftmals dem jeweils aktuellen Windows angepasst wird, und leichte Modifikationen erfahren hat. Das Funktionsprinzip und die Konfiguration ist aber seit Windows NT 4.0 identisch.
"Linux" Bootloader
Linux Distributionen kommen meistens mit mehr als einem Bootloader, unter denen der Benutzer dann auswählen kann. Die wichtigsten davon werden im Folgenden vorgestellt. Die Vorstellung ist keine Bedienungsanleitung, nur ein genereller Überblick.
Lilo - Linux Loader
Der wohl am häufigsten eingesetzte Bootloader in der Linux-Welt ist wohl der lilo. Lilo ist die Abkürzung für "Linux Loader", was eigentlich auch schon die Hauptaufgabe dieses Bootloaders kennzeichnet. Natürlich lassen sich auch andere Betriebssysteme, zum Beispiel GNU/Hurd, *BSD oder auch Windows damit starten, doch zum Zeitpunkt der Namensvergabe und Entstehung von LiLo war das primäre Ziel, Linux zu starten.
Lilo bietet die Möglichkeit an, per Eingabeaufforderung oder Menü das zu startende Betriebssystem auszuwählen. Dies hat den Vorteil, mehrere Betriebssysteme, aber auch mehrere Versionen von Linux parallel betreiben zu können, und zwar sowohl verschiedene Distributionen, wie auch direkt verschiedene Kernelversionen.
Das Menü kann wahlweise im Grafik- oder auch im Textmodus sein, wobei der Textmodus weniger Aufwand darstellt und zusätzlich noch schneller ist und weniger Platz auf der Platte verbraucht, wenn man mit dem Standardtextmenü leben kann. Die Eingabeaufforderung bleibt trotzdem erhalten, damit man dem zu ladenden Betriebssystem gegebenenfalls Parameter übergeben kann.
Ein entscheidender Nachteil von Lilo ist, dass wann immer man eine Änderung im Kernel vornimmt, einen neuen Kernel kompiliert, oder auch sonst wie die Konfiguration von Lilo verändert hat, weil zum Beispiel ein weiteres Betriebssystem auf dem Rechner installiert wurde, man lilo erneut in den Bootsektor bzw. MBR installieren muß.
Vergißt man das, ist der neue Kernel oder das neue Betriebssystem vorerst über lilo nicht startbar, bis lilo eben entsprechend neu installiert wurde.
GRUB - GRand Unified Bootloader
GRUB ist der zweite große Bootloader unter den freien Betriebssystemen. Ich schreibe hier mit Absicht nicht Linux, weil sich GRUB auch bei anderen Betriebssystemen als einsatzfähig etabliert hat.
GRUB bietet, wie Lilo auch, die Möglichkeit, mehrere Betriebssysteme / Kernelversionen parallel auf dem selben Rechner zu betreiben, und per grafischem oder Textmenü auszuwählen.
Im Gegensatz zu Lilo hat GRUB allerdings den entscheidenden Vorteil, nicht mit jeder Änderung neu in den MBR installiert werden zu müssen. GRUB arbeitet an dieser Stelle etwas moderner, und ist somit deutlich einfacher zu handhaben.
Auch GRUB bietet eine Eingabeaufforderung, um dem Betriebssystem Parameter übergeben zu können, sofern diese nicht expliziert deaktiviert wurde.
syslinux
syslinux ist ein Bootloader, der sehr oft auf startfähigen Disketten und CDs zu finden ist. Dieser Bootloader ist nicht so flexibel und konfigurierbar wie LILO oder GRUB, dafür aber sehr klein. Er ist mit dem Ziel entwickelt worden, auf Rettungsdisketten und Installations-Datenträgern zum Einsatz zu kommen.
Auch syslinux kann eine Eingabeaufforderung im LILO-Stil anzeigen, allerdings ist dies nicht das Standardverhalten. Es müssen hierfür die Shift- oder Alt-Taste beim Starten gedrückt, oder aber Caps- bzw. Scroll-Lock aktiviert sein, dann erscheint die Eingabeaufforderung.
syslinux wird, ähnlich wie GRUB, nur einmal im Bootsektor des jeweiligen Datenträgers installiert, und kann danach durch Veränderung einer Konfigurationsdatei entsprechend im Verhalten und den zu startenden Betriebssystemkernels manipuliert werden.
Ein wichtige Eigenschaft von syslinux ist, dass der Datenträger FAT-formatiert sein muß. Man kann dies als Nachteil sehen, wenn man allerdings bedenkt, welche Datenträger das Einsatzziel von syslinux darstellen, so wird schnell klar, dass es eigentlich nicht wirklich als "Nachteil" zu betrachten ist, sondern vielmehr als Zweckmäßigkeit.
Bei syslinux zum Booten von CD handelt es sich um einen getrennten Entwicklungszweig, der auf das ISO9660-Dateisystem angepasst ist. Er ist auch als isolinux bekannt.
Chain-Loader
Es ist auch möglich mehrere Bootloader nacheinander aufrufen zu können. Zum Beispiel wird der Computer gerade angeschaltet, wählt sein Betriebsystem aus und kurz daraufhin startet sich der Betriebsystemspezifische Bootloader. Dadurch ist es möglich mehrere Betriebsysteme nebeneinander laufen zu lassen.

