16.2 Details des Boot-Vorgangs 

Sie werden sich sicherlich fragen, warum ich dem Systemstart von Ubuntu ein eigenes Unterkapitel widme. Der Grund besteht darin darin, dass dieser überaus wichtig ist. Er ist nicht nur verantwortlich dafür, dass eine friedliche Koexistenz mit anderen Betriebssystemen möglich ist, sondern startet auch lebensnotwendige Dienste.
Des Weiteren werden viele Vorgänge automatisch protokolliert. Diese sogenannten Log-Dateien können Ihnen Aufschluss bei zahlreichen Problemen geben. Daher macht es durchaus Sinn, 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:
| 1. | 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. |
| 2. | Kernel Der Kernel führt eine erste Systeminitialisierung durch und kann durch Boot-Optionen beeinflusst werden. |
| 3. | 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.
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- bzw. abschalten können.
Eine wichtige Funktion des BIOS ist die Suche nach geeigneten boot-fä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:
| 1. | Start eines Betriebssystems Das Betriebssystem befindet sich auf einer als aktiv markierten Partition. |
| 2. | 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 mit der Partitionstabelle teilen (s. u.). 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 reicht nicht aus, um einen vernünftigen Boot-Loader 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-Boot-Loader von Ubuntu. Der Boot-Code befindet sich im ersten Sektor der Festplatte. Daher wird dieser meistens auch als Master-Boot-Record bezeichnet.
Partitionstabelle
Wie bereits erwähnt, 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. Dadurch ist auch verständlich, dass Sie pro Festplatte nur maximal vier primäre Partitionen erstellen können.
| 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. |
In den jeweiligen Datensätzen wird auch für jede Partition der jeweilige Typ festgelegt. Zur Identifikation verwendet man eine zweistellige Nummer, die sogenannte ID. Wenn Sie fdisk aufrufen, finden Sie diese ID in der vorletzten Spalte:
sudo fdisk -l
| ID | Bedeutung |
|
04 |
FAT16-Dateisystem |
|
05 |
Erweiterte DOS-Partition |
|
07 |
NTFS (Windows 2000, XP, Vista) |
|
82 |
Linux Swap |
|
83 |
Linux 2nd / 3rd extended |
|
85 |
Linux extended |




Jetzt bestellen







