14.2 Details des Boot-Vorgangs
Sie werden sich sicherlich fragen, warum ich dem Systemstart von Ubuntu einen eigenen Abschnitt widme. Der Grund besteht darin, dass er überaus wichtig ist. Er ist nicht nur dafür verantwortlich, dass eine friedliche Koexistenz mit anderen Betriebssystemen möglich ist, sondern er startet auch lebensnotwendige Dienste. Des Weiteren werden viele Vorgänge automatisch protokolliert. Diese sogenannten Logdateien können Ihnen Aufschluss bei zahlreichen Problemen geben. Daher ist es durchaus sinnvoll, sich den Boot-Vorgang näher anzusehen.
Das sogenannte »Booten« ist der Standardausdruck für das Hochfahren des Computers. Während dieses Vorgangs ist das System sehr sensibel. Etwaige Fehler in Konfigurationsdateien oder beschädigte Dateisysteme können an dieser Stelle fatale Auswirkungen haben und das Booten verhindern. Wenn Sie Ubuntu starten, treten drei Komponenten in Erscheinung:
- GRUB
GRUB ist die Abkürzung für Grand Unified Bootloader. Es ist ein kleines Programm, das sich auf der Festplatte befindet und beim Systemstart als Erstes geladen wird. - Kernel
Der Kernel führt eine erste Systeminitialisierung durch und kann durch Boot-Optionen beeinflusst werden. - Upstart
Upstart wird vom Kernel gestartet und kümmert sich um die Einbindung von Dateisystemen, das Starten von Netzwerkdiensten usw. Upstart greift überwiegend noch auf die bewährten init-Skripte zurück. Ich werde hierauf später zurückkommen.
Diese drei Komponenten stellen allerdings noch nicht den gesamten Boot-Prozess dar. Der Vollständigkeit halber möchte ich kurz den eigentlichen Vorgang des Systemstarts umreißen.
Mit dem BIOS fängt alles an
Wenn Sie Ihren PC einschalten, starten Sie eine Befehlskette, die bei dem BIOS beginnt. Das BIOS ist eine Abkürzung für Basic Input/Output System und ist wie ein kleines Betriebssystem, d. h., es verwaltet grundlegende Eigenschaften Ihres PCs. Das BIOS ist fest einprogrammiert und befindet sich in einem kleinen Speicherbaustein (ROM, Read-only Memory) auf dem Mainboard Ihres PCs. Auf dieses (kleine) Betriebssystem haben Sie nur einen geringen Einfluss. Allerdings können Sie es bei Problemen aktualisieren, wenn der Hersteller eine Aktualisierung zur Verfügung stellt. Des Weiteren haben Sie die Möglichkeit, in Ihrem BIOS umfangreiche Einstellungen vorzunehmen. Diese Einstellungen müssen sogar ab und zu verändert werden, wenn beispielsweise die Boot-Reihenfolge nicht stimmt oder Sie bestimmte Funktionen (de-)aktivieren möchten.
Oftmals können Sie die ersten Aktionen des BIOS direkt auf dem Bildschirm sehen, wenn Sie auf einmal Informationen über den eingebauten Prozessor oder die Menge des verfügbaren Arbeitsspeichers usw. sehen. Das BIOS ist in erster Linie dazu da, die verfügbare Hardware Ihres PCs zu erkennen und entweder ganz oder teilweise zu aktivieren. Dementsprechend ist es nachvollziehbar, dass Sie durch Änderungen am BIOS einzelne Funktionalitäten (beispielsweise die USB-Unterstützung) an- und abschalten können.
Eine wichtige Funktion des BIOS ist die Suche nach geeigneten bootfähigen Medien, beispielsweise einer Festplatte oder einem USB-Stick. Findet es ein solches, wird der darin enthaltene Boot-Code ausgeführt.
Ein Boot-Code hat primär zwei Aufgaben:
- Start eines Betriebssystems
Das Betriebssystem befindet sich auf einer als aktiv markierten Partition. - Auswahl eines Betriebssystems
Wenn sich mehrere Betriebssysteme oder Kernel-Versionen auf der Festplatte befinden, wird dem Benutzer die Möglichkeit geboten, zwischen diesen auszuwählen.
Platzproblem
Der Boot-Code muss sich den ersten Sektor der Festplatte mit der Partitionstabelle teilen (siehe nächsten Abschnitt). Da ein Sektor eine feste Größe von 512 Bytes besitzt und die Partitionstabelle 64 Bytes davon beansprucht, stehen für den Boot-Code effektiv nur 446 Bytes zur Verfügung. Die letzten beiden Bytes dienen zur Identifizierung des Master Boot Records. Diese 446 Bytes reichen nicht aus, um einen vernünftigen Bootloader zu integrieren. Daher dient der Boot-Code in diesem Segment meistens nur dazu, den sogenannten Secondary Bootloader zu laden. Typische Vertreter dieser Secondary Bootloader sind LILO oder GRUB. Letzterer ist der Standard-Bootloader von Ubuntu. Der Boot-Code befindet sich im ersten Sektor der Festplatte. Daher wird dieser auch als Master Boot Record (MBR) bezeichnet.
Partitionstabelle
Wie bereits erwähnt wurde, findet innerhalb des ersten Sektors (im MBR) auch die Partitionstabelle ihren Platz. Die Partitionstabelle listet sämtliche Partitionen auf, die sich auf der betreffenden Festplatte befinden. Diese Datensätze sind in vier jeweils 16 Byte langen Einträgen sortiert. Das ist auch der Grund dafür, dass Sie pro Festplatte nur maximal vier primäre Partitionen erstellen können. In den einzelnen Datensätzen wird auch für jede Partition der jeweilige Typ festgelegt. Zur Identifikation verwendet man eine zweistellige Nummer (ID). Wenn Sie sudo fdisk -l aufrufen, finden Sie diese ID in der vorletzten Spalte.
Tipp 210: Hardware-ID der Festplatten herausfinden |
In den Konfigurationsdateien von beispielsweise GRUB oder Fstab sind statt absoluter Pfade die Hardware-IDs der angeschlossenen Geräte aufgeführt. Um diese Hardware-IDs herauszufinden, eignet sich sehr gut der Befehl blkid: |
sudo blkid /dev/sd* |
Statt sd* müssen Sie hier die Adressen der jeweiligen Geräte angeben. Am einfachsten finden Sie diese über dmesg heraus. |
Ihr Kommentar
Wie hat Ihnen das <openbook> gefallen? Wir freuen uns immer über Ihre freundlichen und kritischen Rückmeldungen.