Grub2 Bios Systemstart: Unterschied zwischen den Versionen

Aus Xinux Wiki
Zur Navigation springen Zur Suche springen
Formulierung geglättet
 
(Eine dazwischenliegende Version desselben Benutzers wird nicht angezeigt)
Zeile 5: Zeile 5:
* Grün: core.img lädt grub.cfg aus /boot/grub.
* Grün: core.img lädt grub.cfg aus /boot/grub.
* Magenta: GRUB lädt Kernel und initrd.
* Magenta: GRUB lädt Kernel und initrd.
* Blau: Kernel mountet Root-Dateisystem (/dev/sda1).
* Blau: Das Root-Dateisystem wird gemountet (/dev/sda1): mit initrd durch deren Programm /init, ohne initrd durch den Kernel.
* Cyan: Kernel startet init/systemd.
* Cyan: Auf dem Root-Dateisystem startet init/systemd.
* '''Hinweis zum Blau:''' Mit initrd mountet das Programm <code>/init</code> in der initrd das Root-Dateisystem, danach wechselt es dorthin und startet init/systemd. Nur ohne initrd mountet der Kernel selbst. Die Bilder zeigen den Pfeil vereinfacht vom Kernel aus.
* Animation: [https://xinux.org/grub2-boot.html GRUB2 Bootvorgang] ([https://xinux.org/grub2-boot-einfach.html einfach])
=post-MBR gap =
=post-MBR gap =
{{#drawio:Grub-systemstart}}
{{#drawio:Grub-systemstart}}
Zeile 39: Zeile 41:


=Mounten des Root-Dateisystems=
=Mounten des Root-Dateisystems=
* Nach der Initialisierung des Kernels wird das endgültige Root-Dateisystem von der festgelegten Partition (z.B. /dev/sda1) gemountet.
* Nach der Initialisierung des Kernels wird das endgültige Root-Dateisystem von der festgelegten Partition (z.B. /dev/sda1) gemountet. Mit initrd macht das das Programm <code>/init</code> in der initrd, ohne initrd der Kernel selbst.
* Die Initial Ramdisk (initrd) übergibt die Kontrolle an das tatsächliche Root-Dateisystem.
* Die Initial Ramdisk (initrd) übergibt die Kontrolle an das tatsächliche Root-Dateisystem.



Aktuelle Version vom 28. Oktober 2026, 15:42 Uhr

Schaubild

Farbige Pfeile im Diagramm

  • Rot: BIOS lädt den MBR.
  • Violett: MBR lädt core.img (Stage 1.5).
  • Grün: core.img lädt grub.cfg aus /boot/grub.
  • Magenta: GRUB lädt Kernel und initrd.
  • Blau: Das Root-Dateisystem wird gemountet (/dev/sda1): mit initrd durch deren Programm /init, ohne initrd durch den Kernel.
  • Cyan: Auf dem Root-Dateisystem startet init/systemd.
  • Hinweis zum Blau: Mit initrd mountet das Programm /init in der initrd das Root-Dateisystem, danach wechselt es dorthin und startet init/systemd. Nur ohne initrd mountet der Kernel selbst. Die Bilder zeigen den Pfeil vereinfacht vom Kernel aus.
  • Animation: GRUB2 Bootvorgang (einfach)

post-MBR gap

Grub-systemstart

BIOS Boot Partition mit GPT

Grub-systemstart-gpt

BIOS

  • Das BIOS führt den Power-On Self-Test (POST) durch und sucht nach einem bootfähigen Gerät.
  • Sobald ein bootfähiges Gerät gefunden wird, lädt das BIOS den Master Boot Record (MBR) vom ersten Sektor der Festplatte (LBA 0).

Master Boot Record (MBR)

  • Der MBR ist 512 Bytes groß und enthält den Bootloader-Code (Stage 1).
  • Der Bootloader-Code im MBR lädt Stage 1.5.

GRUB Stage 1.5 (core.img)

  • Stage 1.5 wird im post-MBR gap oder BIOS Boot Partition geladen und ermöglicht es GRUB, das Dateisystem zu lesen.
  • Stage 1.5 lädt Stage 2, das sich im Verzeichnis /boot/grub befindet.

GRUB Stage 2

  • Stage 2 besteht aus mehreren Dateien und Modulen im Verzeichnis /boot/grub.
  • Die Datei grub.cfg enthält Boot-Einträge und Optionen.
  • Ein Boot-Menü wird angezeigt, aus dem der Benutzer das zu startende Betriebssystem auswählen kann, oder der Standard-Kernel wird automatisch gestartet.

Kernel und Initial Ramdisk (initrd)

  • GRUB lädt den Kernel und die Initial Ramdisk (initrd) in den Speicher.
  • Der Kernel wird gestartet und initrd enthält die benötigten Treiber und Dateien, die für den Start des Kernels erforderlich sind.
  • GRUB übergibt die Kontrolle an den Kernel, der im Speicher geladen ist.

Kernel-Initialisierung

  • Der Kernel wird ausgeführt und initialisiert die Hardware.
  • Der Kernel verwendet die Dateien und Treiber in der initrd, um das Root-Dateisystem zu laden.

Mounten des Root-Dateisystems

  • Nach der Initialisierung des Kernels wird das endgültige Root-Dateisystem von der festgelegten Partition (z.B. /dev/sda1) gemountet. Mit initrd macht das das Programm /init in der initrd, ohne initrd der Kernel selbst.
  • Die Initial Ramdisk (initrd) übergibt die Kontrolle an das tatsächliche Root-Dateisystem.

Starten von init/systemd

  • Der Kernel startet den ersten Userspace-Prozess, traditionell init, in modernen Linux-Systemen jedoch oft systemd.
  • systemd liest seine Konfigurationsdateien und startet die notwendigen Systemdienste und Prozesse, um das Betriebssystem vollständig hochzufahren.