Was ist GRUB: Eine vollständige Anleitung zum GNU-Bootmanager

Letzte Aktualisierung: 14 Oktober 2025
  • GRUB ist der GNU-Bootmanager, der das Betriebssystem auswählt und lädt und BIOS/UEFI und Multiboot unterstützt.
  • GRUB 2 fügt Module, verbesserte Dateisystemunterstützung, UUID-Suche und ein grafisches Menü/Terminal hinzu.
  • Die Konfiguration wird über /etc/default/grub und 40_custom verwaltet und mit update-grub oder grub2-mkconfig neu generiert.
  • Sicherheit: Schützen Sie GRUB mit einem Kennwort, verwenden Sie die LUKS-Verschlüsselung und legen Sie strenge Kennwortrichtlinien fest.

Allgemeine Darstellung zu GRUB

Wenn Sie GNU/Linux auf Ihrem Computer installiert haben oder mehrere Betriebssysteme nutzen, ist Ihnen GRUB wahrscheinlich ein Begriff. Es handelt sich um das kleine, aber leistungsstarke Programm, das kurz vor dem Systemstart angezeigt wird und mit dem Sie auswählen können, welche Programme geladen werden sollen. Obwohl es oft unbemerkt bleibt, ist seine Rolle entscheidend für den Start des Betriebssystems und die reibungslose Übergabe der Kontrolle an den Kernel.

Im Bereich des PC-Bootens hat sich GRUB aufgrund seiner Leistungsfähigkeit und Flexibilität zum De-facto-Standard entwickelt. Entstanden im Rahmen des GNU-Projekts, ist er heute der am weitesten verbreitete Bootmanager unter GNU/Linux . Er ist mit einer Vielzahl von Architekturen und Dateisystemen kompatibel, benutzerfreundlich für Einsteiger und gleichzeitig ein wahres Multitalent für alle, die jedes Detail des Bootvorgangs optimieren möchten.

Was ist GNU GRUB und wozu dient es?

GNU GRUB (GNU Grand Unified Bootloader) ist ein Multi-Boot-Manager: Eine Software, die vom Betriebssystem (BIOS oder UEFI) beim Einschalten des Computers ausgeführt wird, um ein Betriebssystem auszuwählen und zu laden. Sie ermöglicht es Benutzern, Menüpunkte auszuwählen, Parameter an den Kernel zu übergeben, vom Netzwerk zu booten und sogar über eine Konsole spezifische Probleme zu beheben.

Es wird hauptsächlich in GNU/Linux-Distributionen verwendet, kam aber auch in anderen Systemen wie Solaris auf x86 zum Einsatz. Auf modernen UEFI- Systemen lädt die Firmware die GRUB-Datei direkt aus der EFI-Systempartition (ESP) , sofern diese im NVRAM registriert ist; im BIOS/MBR belegt GRUB die Anfangssektoren der Festplatte und arbeitet von dort aus weiter.

Über das übliche Menü hinaus erfüllt GRUB die Multiboot-Spezifikation, was bedeutet, dass es kompatible Kernel nahtlos starten kann . Sobald der Kernel im Speicher ist, übergibt GRUB die Kontrolle und seine Aufgabe ist erledigt – eine beachtliche Leistung.

GRUB-Startoptionen-Bildschirm

Technisches Datenblatt und Projektdaten

GRUB ist Teil des GNU-Ökosystems und wird als freie Software unter der GNU GPL v3 oder einer späteren Lizenz vertrieben . Die Entwicklung erfolgt unter Open-Source-Bedingungen; es gibt ein offizielles Repository, einen Bugtracker, eine Website und eine sehr aktive Community.

Es ist hauptsächlich in C und Assembler geschrieben und läuft auf mehreren Plattformen: IA-32, x86-64 und PowerPC, unter anderem. Der aktuelle Zweig ist GRUB 2 (eine Neuimplementierung des historischen „GRUB Legacy“). Die neueste stabile Version ist 2.12 (20. Dezember 2023). Wenn Sie Ihre lokale Version überprüfen möchten, können Sie Folgendes ausführen: grub-install --version und Sie sehen die entsprechende Kette.

Ein bisschen Geschichte und Entwicklung

GRUB entstand als Initiative von Erich Stefan Boleyn im Kontext von GNU Hurd und dem Mach-Mikrokernel. Um die unterschiedlichen Bootmethoden zu beheben, wurde die Multiboot-Spezifikation entwickelt, die dafür sorgte, dass Bootloader und Kernel „dieselbe Sprache sprechen“. 1999 trieben Gordon Matzigkeit und Yoshinori Okuji die Aufnahme von GRUB als offizielles Paket des GNU-Projekts voran.

Um das Jahr 2002 startete eine Gruppe japanischer Forscher das Projekt PUPA (Preliminary Universal Programming Architecture) mit dem Ziel, GRUB robuster und modularer zu gestalten. Aus diesem Projekt entstand GRUB 2 , während die Vorgängerversion als „GRUB Legacy“ bekannt wurde (deren Version 0.97 zuletzt 2005 aktualisiert wurde). Ab 2007 migrierten zahlreiche Distributionen zu GRUB 2, und Ende 2009 war es bei der überwiegenden Mehrheit standardmäßig enthalten.

Diagramm des GRUB-Bootvorgangs

So booten Sie Ihren Computer mit GRUB (BIOS und UEFI)

Wenn Sie Ihren PC einschalten, führt die Firmware ihre Prüfungen durch (RAM, Uhr, Geräte, Bootreihenfolge) und sucht nach einem Bootloader. Auf Systemen mit BIOS/MBR wird die Kontrolle an den Master Boot Record (MBR), die ersten 512 Bytes der FestplatteGRUB war in Stufen unterteilt: Stufe 1 (minimaler Code im MBR), Stufe 1.5 (in späteren Sektoren, Brücken zum Verständnis von Dateisystemen) und Stufe 2 (Menüs und erweiterte Funktionen). In GRUB 2 gibt es diese "1.5" nicht mehr; jetzt gibt es spezielle Images wie boot.img, core.img und Module (*.mod), die je nach Installation kombiniert werden.

  Liquorix-Kernel unter Linux: Optimierter Kernel für Desktop und Gaming

Bei UEFI ist der Prozess direkter: Die Firmware führt die GRUB-EFI-Binärdatei von der EFI-Partition aus , sofern diese korrekt installiert und registriert ist. In beiden Fällen stellt GRUB ein Menü oder eine Konsole bereit, lädt den ausgewählten Kernel und übergibt anschließend die Ausführung an diesen.

Multiboot-Spezifikation und Kompatibilität

GRUB implementiert Multiboot, wodurch kompatible Kernel ohne spezielle „Tricks“ gestartet werden können. Darüber hinaus bietet es für Systeme, die dies nicht unterstützen (wie Windows oder DOS ), Chainloading an, wobei der erste Sektor der Partition, in der sich die Bootloader befinden, anvisiert wird.

Die Dateisystemkompatibilität ist umfassend: Btrfs, ext2/3/4, FAT12/16/32, exFAT, HFS/HFS+, ISO9660, Nilfs2, NTFS, ReiserFS, ZFS, ROMFS, JFS, XFS und viele mehr. Es kann auch von LVM-Volumes und RAID-Arrays lesen, was bei komplexen Speicherstrukturen ein erheblicher Vorteil ist.

Besondere Merkmale und Funktionen

  • Menüoberfläche Konfigurierbares und hochflexibles interaktives Terminal mit automatischer Tab-Vervollständigung und Tastenkombinationen im Bash-Stil.
  • Unterstützung von LBA (Logische Blockadressierung) um klassische BIOS-Grenzen zu überwinden und über 1024 Zylinder hinaus zu lesen.
  • Kapazität für Netzwerk-Boot (PXE/TFTP) und Remote-Terminals, nützlich in zentralisierten Verwaltungsszenarien.
  • Automatische Dekomprimierung und Erkennung mehrerer ausführbarer Formate.
  • Persistente Speicherung von Variablen mit save_env/load_env y grub-editenv (wenn die Plattform es zulässt).
  • Alle RAM-Erkennung, Festplattengeometrie-Unabhängigkeit und Suchmechanismen nach Labels und UUID.
  • Grafische Unterstützung für Menüs und Hintergründe und ein modulares Design, das core.img klein und lädt Module nach Bedarf.

Wichtige Terminologie: Geräte, Partitionen und Pfade

GRUB benennt Festplatten und Partitionen auf seine eigene Art und Weise. Die erste Festplatte ist normalerweise (hd0), die erste Partition (hd0,1) In GRUB 2 (zur Erinnerung: In GRUB 2 beginnt die Nummerierung bei 1; in Legacy begann sie bei 0). Um auf eine ganze Festplatte zu verweisen, wird die Partition weggelassen: (hd0).

Zur Angabe von Dateien wird das Gerät mit dem Pfad kombiniert: (hd0,1)/ruta/al/archivo. Es unterstützt auch Blocklisten (Blocklisten), wenn es notwendig ist, den genauen Speicherort einer Datei auf der Festplatte anzugeben, die im Dateisystem nicht als solche sichtbar ist, zum Beispiel (hd0,1)+1 für den ersten Sektor einer Partition, nützlich mit chainloader +1.

Das „Root-Dateisystem“ in GRUB ist nicht dasselbe wie das „/“ in Linux. Es ist lediglich die Root-Partition, von der GRUB seine Dateien liest ; sobald der Linux-Kernel die Kontrolle übernimmt, definiert er sein eigenes tatsächliches Root-Verzeichnis, und alles andere in GRUB wird irrelevant.

GRUB-Schnittstellen

GRUB bietet drei Hauptansichten. Die bekannteste ist das Menü mit vorkonfigurierten Einträgen; Sie können mit den Pfeiltasten navigieren, mit Enter starten, einen Eintrag mit „e“ bearbeiten oder die Konsole mit „c“ öffnen.

Mit dem Eingabeeditor können Sie Zeilen direkt bearbeiten (hinzufügen mit „o/O“, bearbeiten mit „e“, löschen mit „d“) und, falls alles korrekt aussieht, mit „b“ starten. Er eignet sich ideal zum Testen von Kernelparametern , ohne Dateien verändern zu müssen.

Die Konsole ist der leistungsstärkste Modus: Sie unterstützt kontextbezogene Autovervollständigung, das Bearbeiten von Tastenkombinationen und alle internen GRUB-Befehle zum Auffinden von Datenträgern, Laden von Kernel/initrd oder Chainloading. Falls die Konfigurationsdatei fehlt oder beschädigt ist, gelangen Sie mit GRUB hierher, um das Problem manuell zu beheben.

Häufige Fehlermeldungen

Fehler können in der Anfangsphase (eher eingeschränkt) oder beim Laden von Menüs und Modulen (ausführlicher) auftreten. Nachfolgend finden Sie eine Zusammenstellung beispielhafter Fehlercodes, die GRUB anzeigen kann, zur besseren Verständlichkeit vereinfacht dargestellt :

  • 1: Ungültiger oder nicht absoluter Pfad; 2: Ungültiger Dateityp (keine normale Datei); 3–4: Beschädigte Daten/Header während der Dekomprimierung; 5: beschädigte Partitionstabelle oder ungültig.
  • 6: Stage1/Stage2-Inkompatibilität; 7: Laden unter 1 MB wird nicht unterstützt; 8: Versuch, ohne Laden eines Kernels zu booten; 9: Unbekannter Bootfehler.
  • 10: Multiboot-Funktionen werden nicht unterstützt; 11: Gerät nicht erkannt; 12: Ungültiges Gerät; 13: Nicht unterstütztes ausführbares Format.
  • 14: Das Dateisystem verhindert das Lesen der gesamten Datei; 15: Datei nicht gefunden; 16: Inkonsistente Dateisystemstruktur.
  • 17: Die ausgewählte Partition kann nicht gemountet werden; 18: Zylinder außerhalb des vom BIOS unterstützten Bereichs (typisch für ältere Laufwerke); 19: Initrd vor dem Kernel.
  • 20: Module vor einem Multiboot-Kernel; 21: Ausgewählte Festplatte existiert nicht; 22: Nicht vorhandene Partition; 23: Fehler beim Interpretieren einer Zahl.
  • 24: Zugriff auf einen Block außerhalb der Partition; 25: Festplattenlesefehler; 26: Zu viele symbolische Links; 27: Unbekannter Befehl.
  • 28: Element passt nicht in den Speicher; 29: Schreibfehler auf der Festplatte; 30: Ungültiges Argument; 31: Datei nicht sektorausgerichtet (ReiserFS, verwenden notail).
  • 32: Authentifizierung erforderlich; 33: Serielles Gerät nicht konfiguriert; 34: Keine freien Sektoren für Stufe 1.5 nach dem MBR (Konflikt mit EZ-BIOS oder Partition startet zu früh).
  Speicher-Debugging unter Linux: Wichtige Werkzeuge und Techniken

Grundlegende GRUB-Befehle

In der Konsole können Sie sehr nützliche interaktive Befehle ausführen. Zum Beispiel: boot startet den zuletzt geladenen (Kernel- oder Chainloader) und chainloader <archivo> lädt einen Sektor oder eine Datei aus einer Kette; die typische Verknüpfung für Windows ist chainloader +1.

displaymem zeigt die Speichernutzung gemäß BIOS an, was praktisch ist, wenn Sie sich über den erkannten RAM nicht sicher sind. Mit initrd <archivo> Sie geben das anfängliche RAM-Disk-Image an, das der Kernel benötigt.

Um von der GRUB Legacy-Konsole aus in den MBR zu installieren, haben Sie install mit den Routen nach stage1, stage2 und optional in die Konfigurationsdatei. Heutzutage ist es in GRUB 2 üblich, vom System aus grub-install und regenerieren Sie das Menü mit update-grub/grub2-mkconfig.

Der Befehl kernel gibt die Kernel-Binärdatei und ihre Parameter an, zum Beispiel: kernel /vmlinuz root=/dev/sda5Dem geht normalerweise voraus root (hdX,Y) o rootnoverify um die Partition festzulegen, von der GRUB lesen soll.

Konfigurationsdateien und Anweisungen

In GRUB Legacy befand sich das Menü in /boot/grub/menu.lst o grub.conf, mit Richtlinien wie color, default, fallback, hiddenmenu, password, timeout, splashimage und Blöcke title mit den Bestellungen für jedes System.

Ein klassisches Beispiel (paraphrasiert) wäre ein Linux-Abschnitt mit root (hd0,2), kernel mit Root-Parameter=/…und boot; und ein weiteres für Windows mit rootnoverify (hd0,1) y chainloader +1.

In GRUB 2 lautet die automatisch generierte Datei /boot/grub/grub.cfg. Es wird nicht empfohlen, es von Hand zu bearbeiten; stattdessen wird es angepasst /etc/default/grub (Werte wie GRUB_TIMEOUT, GRUB_DEFAULT, etc.) und benutzerdefinierte Einträge werden hinzugefügt in /etc/grub.d/40_custom. Dann wird es ausgeführt update-grub o grub2-mkconfig um das Menü neu zu generieren.

Wichtige Unterschiede zwischen GRUB Legacy und GRUB 2

  • Die Konfigurationsdatei lautete menu.lst/grub.conf a grub.cfg, mit erneuerter Syntax und Befehlen und automatischer Generierung mittels grub-mkconfig.
  • Partitionsnummerierung beginnt im Jahr 1 in GRUB 2 (in Legacy begann es bei 0).
  • Persistenz von Variablen mit save_env/load_env in einigen Konfigurationen.
  • Bessere Routenerkennung und Suche nach UUID/Tags; mehr Dateisysteme werden unterstützt.
  • Direktes Lesen von LVM und RAID.
  • Terminal- und Menügrafiken und neu organisierte Bilder: Stufe 1.5 ist weg; boot.img, core.img und dynamische Module (*.mod).

Sicherheit und Härtung mit GRUB

Ein schlecht gesicherter Bootmanager ist wie ein Sieb. Wenn jemand mit physischem Zugriff Kernelparameter bearbeiten oder einen anderen Eintrag starten kann, werden Ihre Sicherheitsmaßnahmen effektiv außer Kraft gesetzt . Deshalb ist es ratsam, GRUB mit Passwörtern zu schützen und bewährte Sicherheitspraktiken anzuwenden.

Stellen Sie ein Sicheres Passwort um Eintragsänderungen oder den Konsolenzugriff einzuschränken. Verwenden Sie in GRUB 2 Benutzernamen und Passwörter mit grub-mkpasswd-pbkdf2 und konfigurieren Sie die entsprechenden Regeln in den Skripten von /etc/grub.d/.

Es beinhaltet außerdem eine Festplattenverschlüsselung mit LUKS , sodass selbst bei Diebstahl des Computers die Daten nicht lesbar sind. Darüber hinaus gewährleistet es strenge Passwortrichtlinien, um Brute-Force-Angriffe zu reduzieren.

Verwalten Sie Ihre Protokollhistorie mit Bedacht : Protokolle, die einem Angreifer Hinweise liefern, sollten minimiert oder mit Zugriffskontrollen zentralisiert werden; Protokolle, die bei der Überprüfung böswilliger Angriffe helfen, sollten gesammelt und an einem sicheren Ort analysiert werden.

Um andere installierte Systeme zu erkennen und Einträge automatisch zu generieren, installieren Sie os-proberDadurch sparen Sie Zeit und vermeiden Fehler beim erneuten Erstellen des Menüs.

  So aktivieren Sie Secure Boot nach einem BIOS-Update

Installation und Wartung

Wenn Sie GRUB nicht während der Installation Ihrer Distribution installiert haben, können Sie dies später tun. Führen Sie in GRUB 2 vom System aus Folgendes aus: sudo grub-install /dev/sdX (ersetzen Sie es durch Ihre Festplatte) und dann sudo update-grub o sudo grub2-mkconfig -o /boot/grub/grub.cfgBeim nächsten Start wird das Menü angezeigt.

Von einer GRUB Legacy-Konsole aus besteht das klassische Verfahren darin, den Root anzugeben und die Installation auszuführen: root (hd1,0) gefolgt von setup (hd1,0) für die erste Partition der zweiten Festplatte oder setup (hd1) wenn Sie auf den MBR dieser zweiten Festplatte zeigen.

Direkt bearbeiten /boot/grub/grub.cfg Dies ist in GRUB 2 keine gute Idee, auch wenn es technisch möglich ist. Die empfohlene Route ist zu ändern /etc/default/grubverwenden /etc/grub.d/40_custom zur eigenen Befriedigung und Regeneration.

Praktische Fragen und nützliche Abkürzungen

Wie kann ich herausfinden, welche die Bootpartition auf /dev/sda ist? Auf BIOS/MBR-Systemen: sudo fdisk -l /dev/sda (siehe das Sternchen für „Boot“). In GPT/UEFI: lsblk -o NAME,FSTYPE,PARTTYPE,PARTFLAGS,MOUNTPOINT und suchen Sie nach der EFI-Partition (FAT32, Typ EF00/flags esp). Auch sudo efibootmgr -v zeigt die aufgezeichneten Booteinträge an.

Wie erhalte ich die UUID einer Partition? Mit blkid o lsblk -f. Zum Beispiel: sudo blkid /dev/sda2 gibt seine UUID und andere Metadaten.

Wie bringe ich GRUB 2 dazu, 10 Sekunden zu warten, bevor der Standardeintrag eingegeben wird? Passt sich an /etc/default/grub mit GRUB_TIMEOUT=10 (und gegebenenfalls GRUB_TIMEOUT_STYLE=menu) und führt aus sudo update-grub o grub2-mkconfig.

GRUB Legacy-Befehle zur Installation auf der ersten Partition der zweiten Festplatte? Öffnen Sie die Konsole und führen Sie Folgendes aus: root (hd1,0) und dann setup (hd1,0). Wenn Sie den MBR wollten, wäre es setup (hd1).

Schritte zum Ändern der GRUB 2-Konfiguration? 1) Bearbeiten /etc/default/grub (z.B., GRUB_DEFAULT, GRUB_TIMEOUT), 2) Einträge hinzufügen in /etc/grub.d/40_custom wenn Sie sie brauchen, 3) regenerieren mit update-grub/grub2-mkconfig, 4) neu starten und testen.

Wo kann ich benutzerdefinierte Menüs in GRUB 2 platzieren? En /etc/grub.d/40_custom (oder eigene Dateien in /etc/grub.d/ mit den entsprechenden Berechtigungen). Bearbeiten Sie niemals von Hand /boot/grub/grub.cfg außer im Notfall.

Wo wurden die Einträge in GRUB Legacy gespeichert? En /boot/grub/menu.lst o grub.conf, je nach Verteilung.

Wie greife ich über das Menü auf die GRUB-Konsole zu? Drücken Sie in GRUB 2 oder Legacy die Taste „c“. Um einen bestimmten Eintrag zu bearbeiten, drücken Sie „e“. Beide Tastenkombinationen sind sehr nützlich, wenn Sie Probleme schnell diagnostizieren müssen.

Beispiele für gängige Optionen

Standard-Boot-Auswahl: GRUB_DEFAULT=0 das erste Inning beginnt; mit GRUB_DEFAULT=saved merkt sich die zuletzt verwendete Konfiguration. Nach der Änderung muss die Konfiguration neu generiert werden.

Wartezeit: GRUB_TIMEOUT=4 passt die Menüverzögerung an; mit 0 startet ohne Pause; in einigen Szenarien können Sie das Menü mit ausblenden GRUB_TIMEOUT_STYLE=hidden für einen saubereren Start.

Menü-Update: auf Debian/Ubuntu und Derivaten, sudo update-grub; in anderen, sudo grub2-mkconfig -o /boot/grub/grub.cfg. Stell sicher dass du hast os-prober installiert, wenn Sie andere Systeme automatisch erkennen möchten.

Obwohl GRUB auch außerhalb von GNU/Linux Verwendung findet, handelt es sich nicht um einen Support-Service. Bei Windows-spezifischen Problemen empfiehlt es sich, gezielte Hilfe in Windows-Foren zu suchen.

GRUB hat sich von einem einfachen Bootmenü zu einer vollwertigen Vorinstallationsumgebung entwickelt, die mehrere Betriebssysteme starten, komplexe Festplatten verwalten und die Systemwiederherstellung mit wenigen Befehlen ermöglichen kann. Mit der richtigen Konfiguration und einigen Sicherheitsmaßnahmen (GRUB-Passwörter, LUKS-Verschlüsselung, gut verwaltete Schlüsselrichtlinien und Protokolle) erhalten Sie einen robusten, flexiblen und vor allem kontrollierten Bootvorgang.

UEFI-Bootkit
In Verbindung stehender Artikel:
UEFI-Bootkit: Bootkitty unter Linux und das Erbe von BlackLotus