Ein Bootloader überbrückt die Ermittlung des Bootpfads durch die Firmware und die Ausführung des Kernels. GRUB ist auf Linux-PCs verbreitet, doch systemd-boot, U-Boot, das Laden eines EFI-Stub-Kernels durch die Firmware und andere Entwürfe übernehmen unterschiedliche Teile dieser Aufgabe.
System booten · Lektion 3
Bootvorgang: Bootloader
Lerne, wie ein Bootloader Linux-Artefakte auswählt, die Kernel-Befehlszeile zusammenstellt und die Kontrolle übergibt.
Bootartefakte auswählen
Ein Bootloader-Eintrag kann Folgendes angeben:
- ein Linux-Kernel-Abbild
- ein optionales initramfs- oder älteres initrd-Abbild
- eine Kernel-Befehlszeile
- plattformspezifische Metadaten oder den Bootloader eines anderen Betriebssystems
GRUB kann mehrere Kernel und Wiederherstellungseinträge anbieten. Ein Ersatzkernel ist nur dann nützlich, wenn seine passenden Module und seine initramfs weiterhin verfügbar und erprobt sind. Der Bootloader liest Dateien mithilfe seiner unterstützten Speicher- und Dateisystemmodule; er stützt sich nicht auf das noch nicht laufende Linux-VFS.
An was übergibt ein Linux-Bootloader normalerweise die Kontrolle?
Parameter der Kernel-Befehlszeile
Der Bootloader übergibt eine Textbefehlszeile, die der Kernel und der frühe Userspace auswerten. Häufige Beispiele sind:
root=..., um das vorgesehene Root-Dateisystem oder eine Quellspezifikation für den frühen Userspace anzugebenrooderrw, um einen anfänglichen Einhängemodus für das Root-Dateisystem anzufordernquiet, um die Anzahl der Kernelmeldungen auf der Konsole zu verringerninit=..., um für eine besondere Wiederherstellung ein anderes erstes Userspace-Programm anzufordern- distributionsspezifische
rd.*-Parameter, die von initramfs-Werkzeugen ausgewertet werden
initrd ist normalerweise eine Bootloader-Anweisung, die ein Abbild bezeichnet, und kein allgemeiner Kernel-Parameter. BOOT_IMAGE= kann in einer von manchen GRUB-Konfigurationen erzeugten Befehlszeile auftauchen, ist aber nicht der Mechanismus, der den Kernel lädt.
So siehst du die beim aktuellen Start verwendete Befehlszeile:
$ cat /proc/cmdline
Welchen Zweck hat der Kernel-Befehlszeilenparameter root=?
Was fordert der Parameter quiet normalerweise an?
Vorübergehende Bearbeitung und Wiederherstellung
GRUB erlaubt einem autorisierten Konsolenbenutzer häufig, einen Eintrag für einen einzigen Start zu bearbeiten, meist über eine im Menü angezeigte Bearbeitungstaste. Dies eignet sich, um quiet zu entfernen, Wiederherstellungsparameter auszuwählen oder eine falsche Root-Kennung zu korrigieren. Oberfläche und Autorisierung unterscheiden sich, besonders bei Secure Boot und passwortgeschützten GRUB-Konfigurationen.
Befehlszeilenparameter können vertraulichen Text über /proc/cmdline, Bootprotokolle und Absturzberichte offenlegen. Sie können außerdem die Sicherheit schwächen oder das System unbootbar machen. Hinterlege dort niemals Geheimnisse und bewahre einen bekanntermaßen funktionierenden Eintrag sowie einen Wiederherstellungsweg über die Konsole auf.
Was ist eine typische Eigenschaft der interaktiven Bearbeitung eines GRUB-Menüeintrags für einen einzelnen Start?
Dauerhafte GRUB-Konfiguration
Distributionen erzeugen die endgültige GRUB-Konfiguration meist aus Vorlagen, Standardwerten, Skripten und gefundenen Kerneln. Bearbeite die erzeugte grub.cfg nicht direkt, sofern die Distribution diesen Ablauf nicht ausdrücklich dokumentiert; eine Neuerzeugung kann die Änderung überschreiben.
Nimm eine begrenzte Änderung an der Konfigurationsquelle vor, führe den von der Distribution dokumentierten Befehl zur Neuerzeugung aus, prüfe seine Ausgabe und teste mit einem weiterhin vorhandenen älteren, bekanntermaßen funktionierenden Eintrag sowie einem bootfähigen Wiederherstellungsmedium. Befehl und Ausgabepfad unterscheiden sich zwischen Debian, Fedora sowie UEFI- und BIOS-Installationen.
Warum ist die direkte Bearbeitung einer erzeugten grub.cfg normalerweise unzuverlässig?
Verwende das Lab GRUB2-Bootmenü anpassen nur in seiner wiederherstellbaren Lab-Umgebung.
Lektion abgeschlossen
Sie haben Bootvorgang: Bootloader abgeschlossen
Du kannst nun Bootloader-Anweisungen von Parametern der Kernel-Befehlszeile unterscheiden.
Erkenne Kernel, initramfs, Befehlszeile und alternative Einträge.
Verwende
root=,roundquietentsprechend ihren tatsächlichen Aufgaben.Prüfe die Parameter des laufenden Systems über
/proc/cmdline.Behandle interaktive Änderungen als vorübergehend und sicherheitsrelevant.
Ändere eine dauerhaft erzeugte Konfiguration über den Arbeitsablauf der Distribution.
Lernfortschritt speichern
Erstellen Sie ein kostenloses Konto, um diese Lektion zu speichern und auf jedem Gerät weiterzulernen.
Kostenloses Konto erstellen