Bootvorgang: Kernel
100%

System booten · Lektion 4

Bootvorgang: Kernel

Lerne, wie der Kernel Hardware initialisiert, den frühen initramfs-Userspace ausführt, das eigentliche Root-Dateisystem erreicht und PID 1 startet.

Nachdem die Kontrolle den Linux-Kernel erreicht hat, initialisiert er Speicherverwaltung, Ablaufplanung, Interrupts, integrierte Treiber, Sicherheitsframeworks und weitere zentrale Subsysteme. Er wertet die Befehlszeile aus und bereitet den Start des ersten Userspace-Prozesses vor.

Warum es einen frühen Userspace gibt

Ein einfaches Root-Dateisystem lässt sich manchmal mit fest in den Kernel eingebauten Treibern einhängen. Komplexere Systeme benötigen Module und Werkzeuge, bevor das eigentliche Root-Dateisystem erreichbar ist. Beispiele sind:

  • Module für Speichercontroller oder Dateisysteme
  • Entsperren eines verschlüsselten Root-Dateisystems
  • Zusammensetzen von LVM oder RAID
  • Netzwerkkonfiguration für ein Root-Dateisystem im Netzwerk
  • Geräteerkennung und Auflösung dauerhafter Kennungen

Eine initramfs bündelt diese Komponenten in einer frühen Userspace-Umgebung, die zusammen mit dem Kernel bereitgestellt wird.

Welches Problem löst eine initramfs häufig?

Initramfs und ältere Initrd

Eine moderne initramfs besteht üblicherweise aus einem oder mehreren, oft komprimierten cpio-Archiven, die der Kernel in sein anfängliches Root-Dateisystem entpackt. Aus dieser Umgebung führt der Kernel ein frühes /init-Programm aus.

Eine ältere initrd ist konzeptionell ein Dateisystemabbild, das in ein RAM-gestütztes Blockgerät geladen und eingehängt wird. In Dateinamen und Bootloader-Befehlen werden die Begriffe häufig unscharf verwendet. Prüfe deshalb die tatsächlich eingesetzten Werkzeuge, statt das Format allein aus der Bezeichnung abzuleiten.

Die initramfs muss zum Kernel und zum Bootdesign passen. Fehlende Module, veraltete Gerätekennungen oder nicht enthaltene Kryptografie- und LVM-Werkzeuge können einen neu installierten Kernel unbootbar machen, obwohl sein Abbild selbst gültig ist.

In welcher Form wird dem Kernel eine moderne initramfs häufig bereitgestellt?

Das eigentliche Root-Dateisystem erreichen

Der frühe Userspace wertet Parameter wie root= aus, wartet auf die erforderlichen Geräte, aktiviert Speicherebenen und hängt das vorgesehene Root-Dateisystem ein. Anschließend macht er dieses Dateisystem mit einem Root-Wechsel zum neuen / und gibt die temporäre frühe Umgebung soweit möglich frei.

Die anfängliche Befehlszeilenanforderung ro kann Konsistenzprüfungen und einen kontrollierten Start unterstützen, doch die genaue Abfolge hängt von der Distribution ab. Dateisystemprüfungen sind Userspace-Vorgänge. Die initramfs oder das spätere Init-System kann das Root-Dateisystem mit Schreibzugriff neu einhängen, sofern die Richtlinie dies erlaubt.

Was geschieht, nachdem der frühe Userspace das vorgesehene eigentliche Root-Dateisystem erfolgreich eingehängt hat?

PID 1 starten

Der Kernel führt das konfigurierte Init-Programm aus, das normalerweise über einen Pfad wie /sbin/init erreicht oder mit init= ausgewählt wird. Dieser Prozess erhält PID 1 und übernimmt die hauptsächliche Userspace-Dienstumgebung.

Kann kein verwendbares Init-Programm ausgeführt werden, erreicht der Kernel kein normales Userspace-System und meldet üblicherweise einen Bootfehler oder eine Kernel Panic. Untersuche die früheste fehlerhafte Ebene: Kernel und Befehlszeile, initramfs-Inhalt, Root-Erkennung, Root-Einhängung oder Ausführung von PID 1.

Was ist in dieser vereinfachten Bootstufe die letzte große Übergabe des Kernels?

Lektion abgeschlossen

Sie haben Bootvorgang: Kernel abgeschlossen

Du kannst den Kernel-Start nun durch den frühen Userspace bis zu PID 1 verfolgen.

  • Trenne die integrierte Kernel-Initialisierung von früh ladbaren Modulen.

  • Ordne die initramfs einem cpio-basierten temporären Root-Dateisystem und /init zu.

  • Verfolge das Zusammensetzen des Speichers und den Wechsel zum eigentlichen Root-Dateisystem.

  • Erkenne die Ausführung von PID 1 als Übergabe an den Userspace.

Lernfortschritt speichern

Erstellen Sie ein kostenloses Konto, um diese Lektion zu speichern und auf jedem Gerät weiterzulernen.

Kostenloses Konto erstellen
Nächste Lektion
Zurück zu System booten