GNU/Linux >> LINUX-Kenntnisse >  >> Ubuntu

Eine grundlegende Anleitung zum Linux-Boot-Prozess

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

In diesem Leitfaden werden wir die verschiedenen Schritte hervorheben, die das Linux-Betriebssystem vom Zeitpunkt des Einschaltens bis zum Zeitpunkt Ihrer Anmeldung durchführt. Bitte beachten Sie, dass dieser Leitfaden nur GRUB2 berücksichtigt Bootloader und systemd init, da sie derzeit von einer großen Mehrheit moderner Linux-Distributionen verwendet werden.

Der Bootvorgang umfasst die folgenden 4 Schritte, auf die wir näher eingehen werden:

  • BIOS Integritätsprüfung (POST )
  • Laden des Bootloaders (GRUB2 )
  • Kernel-Initialisierung
  • Starte systemd , das übergeordnete Element aller Prozesse

1. Die BIOS-Integritätsprüfung (POST)

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

Wenn das Linux-System hochfährt, wird das BIOS (Basic Input Output System ) aktiviert und führt einen Selbsttest beim Einschalten durch (POSTEN ). Dies ist eine Integritätsprüfung, die eine Fülle von Diagnoseprüfungen durchführt.

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

In einigen Fällen ertönt ein Piepton, insbesondere bei einem fehlenden RAM-Modul. Wenn jedoch die erwartete Hardware vorhanden ist und wie erwartet funktioniert, fährt der Bootvorgang mit der nächsten Stufe fort.

2. Der Bootloader (GRUB2)

Einmal der POST Fertig ist und die Küste frei ist, das BIOS untersucht den MBR (Master Boot Record ) für den Bootloader und Informationen 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 manchmal der MBR kann sich auf einem Live USB befinden oder DVD Installation von Linux.

Es gibt 3 Haupttypen von Bootloadern in Linux:LILO , GRUB und GRUB2 . Der GRUB2 Bootloader ist der neueste und primäre Bootloader in modernen Linux-Distributionen und informiert unsere Entscheidung, die anderen beiden wegzulassen, die im Laufe der Zeit veraltet sind.

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

Die grub2 Im Menü können Sie einige Dinge tun. Hier können Sie die Linux-Kernel-Version auswählen, die Sie verwenden möchten. Wenn Sie Ihr System ein paar Mal aktualisiert haben, werden möglicherweise verschiedene Kernelversionen aufgelistet. Zusätzlich gibt es Ihnen die Möglichkeit, einige Kernel-Parameter zu bearbeiten, indem Sie eine Kombination von Tastaturtasten drücken.

Außerdem können Sie in einem Dual-Boot-Setup, in dem Sie mehrere Betriebssysteminstallationen haben, im Grub-Menü auswählen, in welches Betriebssystem gebootet werden soll. Die grub2-Konfigurationsdatei ist /boot/grub2/grub2.cfg Datei. Das Hauptziel von GRUB ist es, den Linux-Kernel in den Hauptspeicher zu laden.

3. Kernel-Initialisierung

Der Kernel ist das Herzstück eines jeden 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 irgendeine Aufgabe durchführt. Beim Selbstextrahieren hängt der ausgewählte Kernel das Root-Dateisystem ein und initialisiert /sbin/init Programm, das allgemein als init bezeichnet wird .

Initiieren ist immer das erste Programm, das ausgeführt wird, und ihm wird die Prozess-ID oder PID von 1 zugewiesen. Es ist der Init-Prozess, der verschiedene Daemons hervorbringt und alle Partitionen einhängt, die in /etc/fstab angegeben sind Datei.

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

4.Systemd starten

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

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

  • Für eine Desktop-Workstation (mit einer GUI) ist der Standardzielwert 5, was dem Runlevel 5 für die alte SystemV-Initialisierung entspricht.
  • Für einen Server ist das Standardziel multi-user.target was Runlevel 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 zu einem nicht-grafischen (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.

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

$ systemctl get-default

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

$ init runlevel-value

Beispielsweise konfiguriert init 3 das System in einen nicht-grafischen Zustand.

Die init 6 Befehl startet Ihr System neu und init 0 schaltet das System aus. Achten Sie darauf, den sudo-Befehl aufzurufen wenn Sie zu diesen beiden Zielen wechseln möchten.

Der Bootvorgang endet einmal systemd lädt alle Daemons und setzt den Ziel- oder Runlevel-Wert. An dieser Stelle werden Sie zur Eingabe Ihres Benutzernamens und Kennworts aufgefordert, mit denen Sie Zugang zu Ihrem Linux-System erhalten.


Ubuntu
  1. Linux-Startvorgang:Ein Leitfaden für den Einstieg

  2. Linux – Init-Prozess:Urahn aller Prozesse?

  3. Linux-Kernel wird nicht auf 2.35.25 aktualisiert?

  4. Was ist die aktuelle Linux-Kernelquelle?

  5. Sind Linux-Kernel-Threads wirklich Kernel-Prozesse?

sysctl-Befehl unter Linux

Linux, AMD GPU, schwarzer Bildschirm beim Booten

Vollständiges Handbuch zur Linux-Protokollierung

So beenden oder beenden Sie einen Linux-Prozess:Der ultimative Leitfaden

Eine Anleitung zum Dateisystem „/proc“ unter Linux

6 Phasen des Linux-Startvorgangs (Startsequenz)