Entwickelt von | GNU-Projekt und Erich Boleyn ( d ) |
---|---|
Erste Version | 1995 |
Letzte Version | 2,04 (5. Juli 2019) |
Anzahlung | git.savannah.gnu.org/git/grub.git |
Geschrieben in | Assembler und C. |
Betriebssystem | Linux- und Unix-Typ |
Umgebung | IA-32 ( en ) , x86_64 und PowerPC |
Art | Bootloader |
Lizenz | GNU General Public License Version 3 |
Webseite | www.gnu.org/software/grub |
GNU GRUB ( Akronym Bedeutung in Englisch " GR und U nified B ootloader ") ist ein Boot - Programm für PC . Es wird ausgeführt, wenn der Computer eingeschaltet wird, nach den internen Kontrollsequenzen und vor dem Betriebssystem selbst , da seine Aufgabe genau darin besteht, das Laden zu organisieren. Wenn der Computer mehrere Systeme hostet (dies wird als Multi-Boot bezeichnet ), kann der Benutzer auswählen, welches System gestartet werden soll.
Es ist freie Software . Es ermöglicht das Booten von GNU / Linux- oder Windows-Systemen (sowie anderer weniger verbreiteter Systeme FreeBSD und OpenBSD , Hurd , Solaris ) und das Lesen der Konfiguration beim Start (GRUB muss nach einer Konfigurationsänderung nicht erneut im Bootsektor installiert werden). im Gegensatz zu LILO ) eine Befehlszeile, mit der die Konfiguration beim Start und insbesondere die native Erkennung verschiedener vorhandener Dateisysteme geändert werden kann . Es hat auch eine Art einfache Befehlssprache, die es ermöglicht, einen Boot "aufzuholen" , der beispielsweise nach der schlechten Adressierung einer Partition schlecht gelaufen wäre .
Grub muss in der Lage sein, alle Dateisysteme zu erkennen, auf denen es möglicherweise gestartet wird. Es ist daher viel größer als LILO.
Es ist Teil des GNU-Projekts.
Wenn der Computer eingeschaltet ist, sucht das BIOS nach dem ersten bootfähigen Gerät (normalerweise der Festplatte), lädt den Bootsektor oder Master Boot Record (MBR) , der den ersten 512 Bytes dieses Laufwerks entspricht, und überträgt dann die Kontrolle auf dieses Laufwerk codiert.
Der MBR enthält normalerweise GRUB Teil 1, kann aber auch einen anderen Bootloader enthalten, der GRUB Teil 1 von einem anderen Bootsektor aus verketten kann, z. B. den Start einer anderen Festplatte oder einer logischen Partition (DOS-Typ). Aufgrund der geringen Größe des MBR lädt Teil 1 nur den nächsten Teil von GRUB (der sich an einer beliebigen Stelle auf den ersten 1024 Zylindern der Festplatte befinden kann). Teil 1 kann direkt Teil 2 oder Teil 1.5 laden, der sich innerhalb von 30 Kilobyte vom MBR befindet . Dieser Teil 1.5 lädt dann Teil 2. Teil 1.5 kann Piloten enthalten, um auf Teil 2 zugreifen zu können.
Dies liegt in der Nähe GRäBT Version 1, boot.img im gespeichert MBR oder Volumen - Boot - Sektor wie Teil 1, aber es kann einen Sektor von jedem laden LBA48 Adresse . Dadurch wird der erste Sektor von core.img (generiert aus diskboot.img ) geladen, der dann zum Laden des Restes der generierten Datei core.img verwendet wird . Die Datei core.img wird normalerweise mit denselben Problemen am selben Speicherort wie Teil 1.5 gespeichert. Es kann jedoch innerhalb eines Dateisystems oder einer Partition mit weniger Problemen verschoben werden als das Verschieben oder Weglassen von Teil 1.5.
Nach dem Laden lädt die Datei core.img die Konfigurationsdateien und andere erforderliche Module.
Sobald GRUB geladen ist, wird eine Schnittstelle angezeigt, über die der Benutzer auswählen kann, welches Betriebssystem gestartet werden soll. Dies erfolgt normalerweise in Form eines grafischen Menüs. Wenn dies nicht verfügbar ist oder der Benutzer eine direkte Steuerung wünscht, verfügt GRUB über eine eigene Eingabeaufforderung. Der Benutzer kann dann die Startparameter manuell angeben. GRUB kann so eingestellt werden, dass ein bestimmter Kernel nach einem benutzerdefinierten Timeout automatisch geladen wird .
Sobald die Startoptionen ausgewählt wurden, lädt GRUB den ausgewählten Kernel in den Speicher und übergibt ihm die Kontrolle. Andernfalls kann GRUB die Startsteuerung mithilfe des Kettenladens an einen anderen Loader übergeben. Mit dieser Methode werden Betriebssysteme wie Windows geladen, die kein Standard-Multi-Boot unterstützen. In diesem Fall wurden Kopien der Lader der anderen Startprogramme erstellt. Anstelle eines Kernels wird das andere System wie vom MBR geladen . Es kann sich um einen anderen Bootloader handeln, z. B. das Startmenü von Microsoft, mit dem das Betriebssystem ausgewählt werden kann.
Im Gegensatz zu LILO muss GRUB nicht jedes Mal neu im MBR installiert werden, wenn die Konfigurationsdatei geändert wird.
In einem GNU / Linux-System wird der Befehl grub-install nur zum Installieren von GRUB Part 1 im MBR oder in einer Partition verwendet. Die Konfigurationsdateien von GRUB müssen sich auf einer verwendbaren Partition befinden. Andernfalls wird in Teil 1 der Befehlszeilenprozessor automatisch ausgeführt.
Der Name und der Speicherort dieser Datei variieren von System zu System. In der Debian GNU / Linux-Distribution befindet sich diese Datei beispielsweise in /boot/grub/grub.cfg, während Fedora sie ablegt/boot/grub/grub.conf (letztere verwendet einen symbolischen Link zum Speicherort /etc/grub.confund verweist /boot/grub/grub.confaus Kompatibilitätsgründen darauf).
Darüber hinaus kann GRUB auf einem Wechseldatenträger wie einer Diskette , einer CD oder einem USB-Stick installiert werden, um ein System zu laden, das nicht direkt von seiner eigenen Festplatte gestartet werden kann.
Die Konfiguration ist nicht sehr komplex, Sie müssen wissen:
Dank eines interaktiven Eingabeaufforderungssystems verwaltet GRUB die Fertigstellung . Dadurch können die Namen von disc / kernel / initrd gefunden werden, wenn das Lademenü nicht mehr funktioniert.
In der Datei /boot/grub/menu.lst befinden sich die Farb- und Zeitüberschreitungselemente für das Menü. Mit dem Standardparameter können Sie den zu ladenden Kernel vorwählen. Die Kernel , die geladen werden können, werden dann untereinander definiert .
default 0 timeout 5 # foreground = ffffff background = 000000 # splashimage=(hd0,1)/boot/grub/leaf_splash.xpm.gz # title Gentoo root (hd0,1) kernel /boot/vmlinuz root=/dev/sda2 quiet # title Windows root (hd1) chainloader +1Für den Microsoft-Teil muss kein bestimmter Kernel geladen werden. Der Trick besteht darin, die richtige Festplatte auszuwählen und dann über "chainloader +1" mit dem ersten Byte dieser Festplatte zu beginnen. Der Befehl "boot" wird verwendet, um die Ausführung zu starten.
Der Begriff „GRUB“ bezieht sich im Allgemeinen auf GRUB Legacy . Diese Version erhält weiterhin Patches , es werden jedoch keine neuen Funktionen hinzugefügt. Die Entwickler von GRUB haben beschlossen, sich auf GRUB 2 zu konzentrieren : eine vollständige Überarbeitung des Programms, um es sicherer, sauberer, leistungsfähiger und robuster zu machen.
GNU GRUB 2 ist eine echte Fortsetzung von GRUB und die neue Standardversion, die schrittweise von mehreren GNU / Linux- Distributionen übernommen wird . Die Entwickler planen daher:
Einige andere Projekte behalten ihre eigenen Verbesserungen ( Fork ) am GRUB Legacy-Code bei. Dies beinhaltet Super Grub Disk (neue Befehle beinhalten "setgrubdevice" und "usbshift") und GRUB4DOS . OpenSolaris verwendet eine modifizierte Version von GRUB Legacy, die Datenträgernamen, automatische 64-Bit-Kernelauswahl und Booten von ZFS (mit Komprimierungs- und Multi-Boot-Umgebungen) unterstützt. Das Syllable OS- Projekt hat eine modifizierte Version von GRUB erstellt, um das System aus dem AtheOS-Dateisystem zu laden.