- 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.
Wenn Sie GNU/Linux auf Ihrem Computer installiert haben oder mit mehreren Systemen arbeiten, haben Sie wahrscheinlich schon von GRUB gehört. Es ist dieses praktische kleine Programm, das Sie kurz vor dem Systemstart sehen und mit dem Sie auswählen können, was geladen werden soll. Obwohl es unbemerkt bleibt, Seine Rolle ist der Schlüssel zum Starten des Betriebssystems und übergeben Sie die Kontrolle ohne Drama an den Kernel.
GRUB hat sich aufgrund seiner Leistungsfähigkeit und Flexibilität zum De-facto-Standard für PC-Boot-Anwendungen entwickelt. Es entstand im Rahmen des GNU-Projekts und ist heute Es ist der am weitesten verbreitete Bootmanager in GNU/Linux, kompatibel mit einer guten Handvoll Architekturen und Dateisystemen, benutzerfreundlich für unerfahrene Benutzer und gleichzeitig ein Schweizer Taschenmesser für diejenigen, die jedes Detail des Bootvorgangs optimieren.
Was ist GNU GRUB und wozu dient es?
GNU GRUB (GNU GRand Unified Bootloader) Es handelt sich um einen Multiboot-Manager: eine Software, die die Firmware (BIOS oder UEFI) beim Einschalten des Computers ausführt, um ein Betriebssystem auszuwählen und zu laden. Sie können damit Menüeinträge auswählen, Parameter an den Kernel übergeben, vom Netzwerk booten und sogar mit einer Konsole interagieren, um bestimmte Probleme zu beheben.
Es wird hauptsächlich in GNU/Linux-Distributionen verwendet, obwohl es auch von anderen Systemen wie Solaris auf x86 verwendet wird. Auf modernen Computern mit UEFI, Die Firmware lädt direkt die ausführbare GRUB-Datei, die sich auf der EFI-Systempartition (ESP) befindet., solange es im NVRAM registriert ist; im BIOS/MBR belegt GRUB die ersten Sektoren der Festplatte und macht von dort aus weiter.
Über das typische Menü hinaus entspricht GRUB der Multiboot-Spezifikation, was bedeutet, dass es Booten Sie kompatible Kernel homogenUnd wenn der Kernel im Speicher ist, übergibt GRUB die Kontrolle und seine Arbeit ist erledigt, was keine Kleinigkeit ist.

Technisches Datenblatt und Projektdaten
GRUB ist Teil des GNU-Ökosystems und wird verteilt als freie Software, lizenziert unter der GNU GPL v3 oder höherDie Entwicklung ist offen, mit einem offiziellen Repository, einem Bugtracker, einer Website und einer sehr aktiven 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 begann als Initiative von Erich Stefan Boleyn im Kontext von GNU Hurd und dem Mach-Mikrokernel. Um die Unterschiede bei den Boot-Methoden zu beheben, wurde die Multiboot-Spezifikation entwickelt, die es Boot-Managern und Kerneln erleichterte, „dieselbe Sprache zu sprechen“. Im Jahr 1999 Gordon Matzigkeit und Yoshinori Okuji Sie drängten auf die Annahme als offizielles Paket des GNU-Projekts.
Um 2002 startete eine Gruppe japanischer Forscher PUPA (Preliminary Universal Programming Architecture) mit dem Ziel, GRUB neu zu schreiben, um es robuster und modularer zu machen. Diese Bemühungen kristallisierten sich in GRUB 2, während die vorherige Linie in „GRUB Legacy“ umbenannt wurde (deren Version 0.97 zuletzt im Jahr 2005 aktualisiert wurde). Ab 2007 migrierten mehrere Distributionen auf GRUB 2, und Ende 2009 Die überwiegende Mehrheit hat es standardmäßig eingeschlossen.
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.
In UEFI ist der Ablauf direkter: Die Firmware führt die GRUB EFI-Binärdatei von der EFI-Partition aus, sofern es ordnungsgemäß installiert und registriert ist. In beiden Fällen zeigt GRUB ein Menü oder eine Konsole an, lädt den ausgewählten Kernel und übergibt ihm die Ausführung.
Multiboot-Spezifikation und Kompatibilität
GRUB implementiert Multiboot, wodurch kompatible Kernel ohne besondere Tricks gebootet werden können. Darüber hinaus können Systeme, die dies nicht unterstützen (wie z. B. Windows oder DOS), bietet Chainloading und zielt auf den ersten Sektor der Partition ab, in dem sich seine eigenen Loader befinden.
Die Dateisystemkompatibilität ist enorm: Btrfs, ext2/3/4, FAT12/16/32, exFAT, HFS/HFS+, ISO9660, Nilfs2, NTFS, ReiserFS, ZFS, ROMFS, JFS, XFS, unter anderem. Es kann auch von LVM-Volumes und RAID-Arrays lesen, ein Plus, wenn die Speicherstruktur komplex 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 einfach das Root-Partition, aus der GRUB seine Dateien liest; sobald der Linux-Kernel die Kontrolle übernimmt, definiert er sein eigenes echtes Stammverzeichnis und der Rest von GRUB spielt keine Rolle mehr.
GRUB-Schnittstellen
GRUB bietet drei Hauptansichten. Die bekannteste ist die Menü, mit vorkonfigurierten Eingaben; Sie können sich mit den Pfeilen bewegen, mit der Eingabetaste beginnen, mit „e“ einen Eintrag bearbeiten oder mit „c“ die Konsole öffnen.
Mit dem Eintragseditor können Sie Zeilen im Handumdrehen bearbeiten (Hinzufügen mit „o/O“, Bearbeiten mit „e“, Löschen mit „d“) und, wenn alles passt, mit „b“ beginnen. Es ist ideal zum Testen von Parametern vom Kernel, ohne Dateien zu berühren.
Die Konsole ist der leistungsstärkste Modus: Sie unterstützt kontextbezogene Autovervollständigung, Bearbeitungsverknüpfungen und alle Interne GRUB-Befehle um Festplatten zu lokalisieren, Kernel/Initrd zu laden oder Chainload auszuführen. Wenn die Konfigurationsdatei fehlt oder falsch ist, verweist GRUB Sie hierher, damit Sie das Problem manuell beheben können.
Häufige Fehlermeldungen
Fehler können frühzeitig (eingeschränkter) oder beim Laden von Menüs und Modulen (ausführlicher) auftreten. Nachfolgend finden Sie eine Zusammenfassung typischer Codes, die GRUB anzeigen kann: zur Verdeutlichung umschrieben:
- 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).
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.confagrub.cfg, mit erneuerter Syntax und Befehlen und automatischer Generierung mittelsgrub-mkconfig. - Partitionsnummerierung beginnt im Jahr 1 in GRUB 2 (in Legacy begann es bei 0).
- Persistenz von Variablen mit
save_env/load_envin 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.imgund dynamische Module (*.mod).
Sicherheit und Härtung mit GRUB
Ein schlecht geschützter Bootloader ist eine Falle. Wenn jemand mit physischem Zugriff Kernel-Parameter bearbeiten oder einen anderen Eintrag starten kann, Deaktivieren Sie effektiv Ihre SicherheitsmaßnahmenAus diesem Grund ist es eine gute Idee, GRUB mit Passwörtern zu schützen und bewährte Vorgehensweisen 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/.
Ergänzen mit Festplattenverschlüsselung mit LUKS, sodass selbst bei Diebstahl des Geräts die Daten nicht gelesen werden können. Außerdem wird sichergestellt, dass die Kennwortrichtlinien des Systems streng sind, um Brute-Force-Angriffe zu reduzieren.
Verwalten Sie den Verlauf von Stämme mit KopfDiejenigen, die einem Angreifer Hinweise liefern, sollten minimiert oder mit Zugriffskontrollen zentralisiert werden; diejenigen, die bei der Überprüfung böswilliger Versuche helfen, sollten an einem sicheren Ort zusammengefasst und 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.
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 rufe ich die GRUB-Konsole über das Menü auf? Drücken Sie die Taste "c" in GRUB 2 oder Legacy. Um einen bestimmten Eintrag zu bearbeiten, drücken Sie "e". Beide Tastenkombinationen sind sehr nützlich beim Spielen Diagnose im laufenden Betrieb.
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 vorkommt, handelt es sich hierbei nicht um einen Support-Service. Wenn Ihr Problem speziell auf Windows zutrifft, wenden Sie sich am besten an Foren, die diesem System gewidmet sind um gezielte Hilfe zu erhalten.
GRUB hat sich vom "Boot-Menü" zu einer echten Vorsystemumgebung entwickelt, die mehrere Betriebssysteme booten, komplexe Festplatten verwalten und Ihnen mit nur wenigen Befehlen bei der Wiederherstellung eines Systems helfen kann. Mit einer guten Konfiguration und einige Härtung (GRUB-Passwörter, LUKS-Verschlüsselung, Schlüsselrichtlinien und gut verwaltete Protokolle) verfügen Sie über einen robusten, flexiblen und vor allem kontrollierten Bootvorgang.
Inhaltsverzeichnis
- Was ist GNU GRUB und wozu dient es?
- Technisches Datenblatt und Projektdaten
- Ein bisschen Geschichte und Entwicklung
- So booten Sie Ihren Computer mit GRUB (BIOS und UEFI)
- Multiboot-Spezifikation und Kompatibilität
- Besondere Merkmale und Funktionen
- Wichtige Terminologie: Geräte, Partitionen und Pfade
- GRUB-Schnittstellen
- Häufige Fehlermeldungen
- Grundlegende GRUB-Befehle
- Konfigurationsdateien und Anweisungen
- Wichtige Unterschiede zwischen GRUB Legacy und GRUB 2
- Sicherheit und Härtung mit GRUB
- Installation und Wartung
- Praktische Fragen und nützliche Abkürzungen
- Beispiele für gängige Optionen
