Zum Inhalt springen

Grand Unified Bootloader: Unterschied zwischen den Versionen

Aus Foxwiki
Keine Bearbeitungszusammenfassung
Zeile 99: Zeile 99:
  | Deutsch = ja
  | Deutsch = ja
  | Website = [https://www.gnu.org/software/grub/ gnu.org/software/grub]
  | Website = [https://www.gnu.org/software/grub/ gnu.org/software/grub]
'''Grand Unified Bootloader''' (kurz '''GRUB''', {{enS}} für ''Großer vereinheitlichter [[Bootloader]]'') ist ein [[Freie Software|freies]] Bootloader-Programm, das oft zum Starten von [[Unixoides System|unixoiden Betriebssystemen]] wie z. B
* Linux eingesetzt wird
GRUB wurde innerhalb des [[GNU Hurd|GNU-Hurd]]-Projektes als Bootloader entwickelt und wird unter der [[GNU General Public License|GPL]] bereitgestellt
* Aufgrund seiner höheren Flexibilität verdrängte GRUB in vielen [[Linux-Distribution]]en den traditionellen Bootloader [[Linux Loader]] (LILO)
* GRUB wird auch in Solaris 10 x86 benutzt
Die aktuelle Version, '''GRUB 2''', welche erstmals im Juni 2012 veröffentlicht wurde<ref>{{Internetquelle |url=https://www.phoronix.com/scan.php?page=news_item&px=MTEyODc |titel=GRUB 2.00 Boot-Loader Officially Released |zugriff=2017-11-25}}</ref>, stellt eine komplette Überarbeitung der 0.9x-Reihe dar
* Diese wird daher als '''GRUB Legacy''' bezeichnet (englisch {{lang|en|''legacy''}} ‚Altlast‘, ‚Erbe‘, ‚Hinterlassenschaft‘)
== Leistungsmerkmale ==
* Liest verschiedene [[Dateisystem]]e:
** GRUB Legacy (bis GRUB 0.9x): [[ext2]], [[ext3]], [[Unix File System|UFS]], [[Unix File System|UFS2]], [[Reiser File System|ReiserFS]], [[File Allocation Table|FAT]], [[Journaled File System|JFS]], [[Minix-Dateisystem|Minix]], [[Berkeley Fast File System|FFS]], [[XFS (Dateisystem)|XFS]], mit distributionsspezifischen Erweiterungen auch weitere;
** GRUB2 (ab GRUB 1.9x) zusätzlich [[ext4]], [[ZFS (Dateisystem)|ZFS]] und [[btrfs]]
* Bootet verschiedene Betriebssysteme per Auswahlmenü und automatischem Zeitablauf (Linux und Windows als [[Multi-Boot-System]])
* Bootet Betriebssysteme von Festplatten, Disketten, CD- und DVD-Laufwerken sowie Flash-Disks
* Verfügt über einen eingebauten [[Kommandozeileninterpreter]] (Shell)
* Ist relativ einfach konfigurierbar (Farben, Hintergrundbild, Struktur usw.)
* Kann mit einem [[Passwort]] gesichert werden
* Kann über [[Trivial File Transfer Protocol|TFTP]] bereitgestellte [[Linux (Kernel)|Linux-Kernel]] booten
== Funktionsweise ==
[[Datei:GRUB customizer.png|mini|GRUB Customizer, ein Konfigurationstool für GRUB 2]]
[[Datei:GNU GRUB on MBR partitioned hard disk drives.svg|mini|GNU GRUB auf [[Master Boot Record|MBR]]-partitionierter Festplatte]]
[[Datei:GNU GRUB on GPT partitioned hard disk drives.svg|mini|GNU GRUB auf [[GUID Partition Table|GPT]]-partitionierter Festplatte]]
[[Datei:GNU GRUB components.svg|mini|500px|<code>boot.img</code> ist exakt 446&nbsp;Bytes groß und befindet sich zusammen mit der Partitionstabelle im [[Master Boot Record|MBR]] (Sektor 0). <code>core.img</code> wird in die leeren Sektoren zwischen MBR und erster Partition geschrieben, falls verfügbar (die erste Partition beginnt üblicherweise bei Sektor 63 oder 4096 anstatt Sektor 1, das muss aber nicht vorliegen)
* Das Verzeichnis <code>/boot/grub</code> kann auf einer eigenen Partition liegen oder auf der /-Partition.]]
=== GRUB allgemein und GRUB Legacy ===
Normalerweise wird der [[Bootloader]] von GRUB, die sogenannte Stage 1, in den [[Master Boot Record]] (MBR) geschrieben, welcher sich in den ersten 512 Bytes des primären Laufwerkes befindet
* Aufgrund des durch die [[Partitionstabelle]] zusätzlich beschränkten Platzes kann die Stage 1 nur den ersten Sektor der sogenannten Stage 2 laden
* In diesem Sektor befinden sich der Programmcode und eine Blockliste zum Lesen der restlichen Sektoren von Stage 2
Die Stage 2 kann sich auf einer beliebigen [[Partition (Datenträger)|Partition]] befinden
* Unter Unix-Systemen befindet sie sich meistens unter /boot/grub/stage2
* Stage 2 enthält die [[Dateisystem]]treiber, den Programmcode für das Auswahlmenü und die GRUB-Kommandozeile sowie die Laderoutine für die [[Kernel (Betriebssystem)|Kernel]]
Nach dem Laden von Stage 2 wird, sofern vorhanden, die Konfigurationsdatei /boot/grub/menu.lst eingelesen und verarbeitet
* In dieser Datei sind die Einträge des [[Menü (Computer)|Auswahlmenüs]] definiert, welche nun in der [[Terminal (Computer)|Konsole]] angezeigt werden
* Aus dem Menü können nun das zu bootende [[Betriebssystem]] ausgewählt oder Befehle über die Kommandozeile direkt an GRUB gesendet werden
* Stage 2 stellt somit den eigentlichen Bootloader dar, welcher einen Kernel oder den Bootsektor einer Partition lädt
Diese zweistufige Aufteilung des Bootloaders hatte den Nachteil, dass der Bootloader nach Verschieben oder Änderungen von Stage 2 nicht mehr bootfähig war
* Deswegen wurde zwischen Stage 1 und 2 eine Zwischenstufe, Stage 1.5, eingeführt
* Diese liegt auf den [[Datenblock|Datenblöcken]] zwischen MBR bzw
* Stage 1 und dem ersten Block der ersten Partition und ist in der Lage, genau ein Dateisystem zu lesen
* Dabei wird die Variante installiert, welche das Dateisystem jener Partition unterstützt, auf welcher Stage 2 liegt
* Zurzeit gibt es Stage 1.5 für die Dateisysteme [[File Allocation Table|FAT]], [[Minix-Dateisystem|Minix]], [[ext2]], [[ext3]], [[Journaled File System|JFS]], [[Reiser File System|ReiserFS]], [[Unix File System|UFS2]], [[XFS (Dateisystem)|XFS]]<ref>[http://alpha.gnu.org/gnu/grub/grub-0.97.tar.gz Sourcecode von Grub 0.97] ([[Gzip]]; 972&nbsp;kB)</ref> sowie Joliet<ref>[https://lists.gnu.org/archive/html/grub-devel/2008-02/msg00040.html &#x5B;PATCH&#x5D; – support joliet extension in iso9660 filesystem]</ref>
* Unterstützung für [[ReiserFS#Reiser4|Reiser4]]<ref>[https://reiser4.wiki.kernel.org/index.php/Reiser4_Howto/GRUB Reiser4 Howto/GRUB]</ref> und [[ext4]]<ref>[https://bugzilla.redhat.com/show_bug.cgi?id=486284 &#x5B;PATCH&#x5D; RFE: ext4 support in grub]</ref> gibt es durch Patches von Drittanbietern
=== GRUB 2 ===
Für den Nachfolger GRUB 2 wurde ein vollständiges Redesign durchgeführt und auf Rückwärtskompatibilität zu GRUB Legacy verzichtet
* Die Stage 2 wurde in einen Kernel (kernel.img) und viele ladbare Module (*.mod) aufgeteilt
* Der Kernel enthält nur essentiellen Code mit Dekompression, [[Executable and Linking Format|ELF]]-Lader für Module, Festplattenzugriff und eine Rettungs-Shell
* Bei der Installation werden die Module für das Dateisystem, das die restlichen Komponenten enthält, an den Kernel angehängt und als Datei core.img abgelegt
* Hierbei kommt eines der Kompressionsverfahren [[Lempel-Ziv-Markow-Algorithmus|LZMA]] oder [[Lempel-Ziv-Oberhumer|LZO]] zum Einsatz, so dass die komprimierte Datei z.&nbsp;B
* noch im Bootbereich hinter dem MBR abgelegt werden kann (Bei der Nutzung einer [[GUID Partition Table|GPT]] erfolgt diese Ablage in eine eigens dafür vorgesehene BIOS Boot-Partition)
* Nach dem Laden wird der Code entpackt und die Konfigurationsdatei /boot/grub/grub.cfg geladen
* Bei Bedarf werden Module für weitere Dateisysteme, [[Bootmenü]], Bootroutinen für verschiedene Betriebssysteme und GRUB Shell vom Dateisystem nachgeladen
* Neben der [[Unix-Shell|Shell]]-ähnlichen [[Skriptsprache]] bietet GRUB 2 auch Unterstützung für die Sprache [[Lua]]
Des Weiteren lässt sich GRUB 2 auch als [[Nutzdaten|Payload]] für die [[Freie Software|freie]] [[BIOS]]-Alternative [[coreboot]] verwenden.<ref>[http://www.coreboot.org/Payloads#GRUB_2 GRUB 2 als coreboot Payload]</ref> Dabei muss GRUB nicht wie üblich in den MBR geschrieben werden, sondern wird zusammen mit coreboot direkt in den [[Flash-Speicher]]-Baustein („BIOS Chip“) des Systems geschrieben
* Beim [[Booten|Bootvorgang]] übergibt coreboot, nachdem es die Hardware initialisiert hat, die Kontrolle an GRUB, welches anschließend wie üblich ein Menü anzeigt und das Laden eines Kernels erlaubt
Die unterstützten [[Plattform (Computer)|Plattformen]] und [[Rechnerarchitektur|Architekturen]] sind neben [[IA-32]], also sowohl 32-Bit-[[x86-Prozessor|x86]] als auch [[x64]] (Linux-üblich „amd64“, aber auch oft als x86-64, also x86 64-Bit, bezeichnet), nun auch [[Open Firmware|Open-Firmware]]-basierte [[PowerPC]]-Rechner ([[Power Macintosh|Power Mac]] und [[Pegasos (Computer)|Pegasos]]) und ab GRUB 2.02 auch [[ARM-Architektur|ARM]] und ARM64 (64-Bit, ab [[ARM-Architektur#ARMv8 (2011)|ARMv8]]).<ref>{{Webarchiv|text=GRUB on ARM |url=https://wiki.linaro.org/LEG/Engineering/Kernel/GRUB |wayback=20160128222849 }} (englisch), abgerufen am 18
* Oktober 2015;<br />„{{lang|en|Both ARM and ARM64 are now supported in upstream GRUB – both are available in the grub 2.02 betas, and included in several Linux distributions
* The ARM port supports U-Boot (but should shortly support also UEFI), and the ARM64 port supports UEFI.}}“</ref>
* An der Unterstützung von [[SPARC-Architektur|UltraSparc]] wird gearbeitet.<ref name="grub-faq_current-release">[http://www.gnu.org/software/grub/grub-faq.html GNU GRUB FAQ] (englisch), abgerufen am 18
* Oktober 2015;<br />„{{lang|en|The current release is working on Intel/AMD PCs, OpenFirmware-based PowerPC machines (PowerMac and Pegasos), EFI-based PC (IntelMac) and coreboot (formerly, LinuxBIOS), and is being ported to UltraSparc.}}“</ref><ref>Wordpress [[Blog]]: [https://robertmh.wordpress.com/2009/07/18/grub-on-sparc/ GRUB on Sparc] (englisch), abgerufen am 18
* Oktober 2015</ref>
=== Besonderheiten von GRUB ===
GRUB kann über das Dateisystem auf die als normale Dateien gespeicherten Betriebssystemkerne zugreifen
* Andere Bootloader wie zum Beispiel LILO waren lange Zeit auf Konfigurationsdaten angewiesen, die angeben, in welchen Datenblöcken der Kernel liegt
* Diese Angaben können sich nach einem Kernel-Update ändern, und die entsprechenden Konfigurationsdaten müssen neu geschrieben werden
* Dieser Schritt ist bei GRUB dagegen nicht notwendig
== Erweiterungen ==
Der Standard-GRUB stellt, wie oben beschrieben, einen eigenen Bootblock zur Verfügung
* Das führt dazu, dass man GRUB normalerweise nicht von einem bestehenden Betriebssystem aus starten kann
* Die GRUB-Shell ist unter [[Linux]] zugänglich, eine Alternative stellt das Projekt GRUB4DOS bereit, welches GRUB Legacy so erweitert, dass es als Programm unter [[Disk Operating System|DOS]] bzw
* als GRLDR aus dem [[Microsoft Windows|Windows]]-XP-/-NT-Bootmenü, oder per ntldr von Grub2 aus startbar ist
* Letzteres erspart das umständliche Extrahieren des Linux-Bootblocks mittels [[Dd (Unix)|<code>dd</code>]] in eine Datei
* Jedoch ist Grub4dos nur für DOS und 32-bit Windows-Systeme, die dazu kompatibel sind, verfügbar
* Auf 64-Bit-Systemen können keine DOS-Programme ausgeführt werden, allerdings wird an einer Version für UEFI gearbeitet.<ref>[https://github.com/chenall/grub4dos/tree/efi Projektseite von grub4dos-for_UEFI] auf GitHub.com</ref>
Mit TrustedGRUB wird derzeit eine Erweiterung von GRUB entwickelt, die [[Trusted Platform Module]] (TPM) unterstützt.<ref>[http://sourceforge.net/projects/trustedgrub Projektseite von TrustedGRUB] auf SourceForge.net</ref>


== Siehe auch ==
== Siehe auch ==

Version vom 26. April 2025, 12:59 Uhr

Grand Unified Bootloader - Beschreibung

Beschreibung

Installation

Aufruf

Optionen

Unix GNU Parameter Beschreibung

Parameter

Umgebungsvariablen

Exit-Status

Wert Beschreibung
0 Erfolg
>0 Fehler

Anwendung

Problembehebung

Konfiguration

Dateien

Datei Beschreibung


Anhang

Siehe auch



Dokumentation

Man-Page
  1. prep(1)
Info-Pages

Links

Projekt

Weblinks

  1. https://de.wikipedia.org/wiki/Grand_Unified_Bootloader
  2. https://wiki.debian.org/Grub
  3. https://wiki.ubuntuusers.de/GRUB_2/


TMP

| Name = GRUB
| Logo = Vorlage:Nowrap
| Screenshot = Screenshot
| Beschreibung = Bildschirmfoto des GRUB-Menüs von Debian
| Hersteller = Das GRUB-Team
| AktuelleVersion = 
| AktuelleVersionFreigabeDatum = 
| AktuelleVorabVersion =
| AktuelleVorabVersionFreigabeDatum =
| Betriebssystem = Installation: Unix-Derivate; Laufzeit: plattformübergreifend
| Sprache = C; Assembler
| Kategorie = Bootloader
| Lizenz = GPL 3+ (Freie Software)
| Deutsch = ja
| Website = gnu.org/software/grub

Siehe auch

Weblinks

Vorlage:Commonscat