Website-Suche

Eine grundlegende Anleitung zu den verschiedenen Phasen des Linux-Boot-Prozesses


Jedes Mal, wenn Sie Ihren Linux-PC einschalten, durchläuft er eine Reihe von Phasen, bevor schließlich ein Anmeldebildschirm angezeigt wird, der Sie zur Eingabe Ihres Benutzernamens oder Passworts auffordert. Es gibt vier verschiedene Phasen, die jede Linux-Distribution in einem typischen Bootvorgang durchläuft.

In dieser Anleitung beleuchten wir die verschiedenen Schritte, die das Linux-Betriebssystem vom Einschalten bis zur Anmeldung durchführt. Bitte beachten Sie, dass in dieser Anleitung nur der GRUB2-Bootloader und < berücksichtigt werdensystemd init, wie sie derzeit von der überwiegenden Mehrheit der modernen Linux-Distributionen verwendet werden.

Der Bootvorgang umfasst die folgenden 4 Schritte, die wir ausführlicher besprechen werden:

  • BIOS-Integritätsprüfung (POST)
  • Laden des Bootloaders (GRUB2)
  • Kernel-Initialisierung
  • Starten von systemd, dem übergeordneten Element aller Prozesse

1. Der BIOS-Integritätscheck (POST)

Der Startvorgang wird normalerweise initialisiert, wenn ein Benutzer die Einschalttaste drückt – wenn der PC bereits heruntergefahren war – oder das System über die GUI oder die Befehlszeile neu startet.

Wenn das Linux-System hochfährt, schaltet sich das BIOS (Basic Input Output System) ein und führt einen Power On Self Test (POST) durch ). Hierbei handelt es sich um eine Integritätsprüfung, die eine Vielzahl diagnostischer Prüfungen durchführt.

Der POST prüft die Hardware-Funktionsfähigkeit von Komponenten wie HDD oder SSD, Tastatur, RAM<, USB-Anschlüsse und jede andere Hardware. Wenn ein Hardwaregerät nicht erkannt wird oder bei einem der Geräte eine Fehlfunktion vorliegt, beispielsweise eine beschädigte Festplatte oder SSD, wird eine Fehlermeldung auf dem Bildschirm angezeigt, die Sie zum Eingreifen auffordert.

In manchen Fällen ertönt ein Piepton, insbesondere bei fehlendem RAM-Modul. Wenn jedoch die erwartete Hardware vorhanden ist und wie erwartet funktioniert, geht der Bootvorgang zur nächsten Stufe über.

2. Der Bootloader (GRUB2)

Sobald der POST abgeschlossen ist und alles klar ist, prüft das BIOS den MBR (Master Boot Record). Informationen zum Bootloader und zur Festplattenpartitionierung.

Der MBR ist ein 512-Byte-Code, der sich im ersten Sektor der Festplatte befindet, normalerweise /dev/sda oder /dev/hda abhängig von Ihrer Festplattenarchitektur. Beachten Sie jedoch, dass sich der MBR manchmal auf einer Live USB- oder DVD-Installation von Linux befinden kann.

Es gibt drei Haupttypen von Bootloadern unter Linux: LILO, GRUB und GRUB2. Der GRUB2-Bootloader ist der neueste und wichtigste Bootloader in modernen Linux-Distributionen und begründet unsere Entscheidung, die beiden anderen, die im Laufe der Zeit veraltet sind, wegzulassen.

GRUB2 steht für GRand Unified Bootloader Version 2. Sobald das BIOS den Grub2-Bootloader findet, führt es ihn aus und lädt ihn in den Hauptspeicher (RAM).

Im grub2-Menü können Sie einige Dinge tun. Hier können Sie die Linux-Kernelversion auswählen, die Sie verwenden möchten. Wenn Sie Ihr System mehrmals aktualisiert haben, werden möglicherweise verschiedene Kernelversionen aufgelistet. Darüber hinaus haben Sie die Möglichkeit, einige Kernel-Parameter durch Drücken einer Tastenkombination auf der Tastatur zu bearbeiten.

Außerdem können Sie in einem Dual-Boot-Setup, bei dem Sie über mehrere Betriebssysteminstallationen verfügen, über das Grub-Menü auswählen, in welches Betriebssystem gebootet werden soll. Die Grub2-Konfigurationsdatei ist die Datei /boot/grub2/grub2.cfg. Das Hauptziel von GRUB besteht darin, den Linux-Kernel in den Hauptspeicher zu laden.

3. Kernel-Initialisierung

Der Kernel ist der Kern jedes Linux-Systems. Es verbindet die Hardware des PCs mit den zugrunde liegenden Prozessen. Der Kernel steuert alle Prozesse auf Ihrem Linux-System. Sobald der ausgewählte Linux-Kernel vom Bootloader geladen wurde, muss er sich selbst aus seiner komprimierten Version extrahieren, bevor er eine Aufgabe ausführen kann. Beim Selbstextrahieren mountet der ausgewählte Kernel das Root-Dateisystem und initialisiert das Programm /sbin/init, das allgemein als init bezeichnet wird.

Init ist immer das erste Programm, das ausgeführt wird, und erhält die Prozess-ID oder PID von 1. Es ist der Init-Prozess, der verschiedene Daemons erzeugt und alle Partitionen bereitstellt, die in /etc/ angegeben sind. fstab-Datei.

Der Kernel mountet dann die anfängliche RAM-Disk (initrd), die ein temporäres Root-Dateisystem ist, bis das echte Root-Dateisystem gemountet wird. Alle Kernel befinden sich zusammen mit dem anfänglichen RAM-Disk-Image im Verzeichnis /boot.

4. Systemd starten

Der Kernel lädt schließlich Systemd, das den alten SysV-Init ersetzt. Systemd ist die Mutter aller Linux-Prozesse und verwaltet unter anderem das Mounten von Dateisystemen sowie das Starten und Stoppen von Diensten, um nur einige zu nennen.

Systemd verwendet die Datei /etc/systemd/system/default.target, um den Status oder das Ziel zu bestimmen, in dem das Linux-System gestartet werden soll.

  • Für eine Desktop-Workstation (mit GUI) ist der Standardzielwert 5, was der Ausführungsebene 5 für die alte SystemV-Init entspricht.
  • Für einen Server ist das Standardziel multi-user.target, was der Ausführungsebene 3 in SysV-Init entspricht.

Hier ist eine Aufschlüsselung der systemd-Ziele:

  • poweroff.target (Runlevel 0): System ausschalten oder herunterfahren.
  • rescue.target (runlevel 1): startet eine Rescue-Shell-Sitzung.
  • multi-user.target (Runlevel 2,3,4): Konfiguriert das System als nicht-grafisches (Konsolen-)Mehrbenutzersystem.
  • graphical.target (Runlevel 5): Stellen Sie das System so ein, dass es eine grafische Mehrbenutzeroberfläche mit Netzwerkdiensten verwendet.
  • reboot.target (runlevel 6): startet das System neu.

Um das aktuelle Ziel auf Ihrem System zu überprüfen, führen Sie den folgenden Befehl aus:

systemctl get-default

Sie können von einem Ziel zum anderen wechseln, indem Sie den folgenden Befehl auf dem Terminal ausführen:

init runlevel-value

Beispielsweise konfiguriert Init 3 das System in einen nichtgrafischen Zustand.

Der Befehl init 6 startet Ihr System neu und init 0 schaltet das System aus. Rufen Sie unbedingt den sudo-Befehl auf, wenn Sie zu diesen beiden Zielen wechseln möchten.

Der Bootvorgang endet, sobald systemd alle Daemons lädt und den Ziel- oder Runlevel-Wert festlegt. An dieser Stelle werden Sie zur Eingabe Ihres Benutzernamens und Passworts aufgefordert, mit denen Sie Zugriff auf Ihr Linux-System erhalten.