Andere Sprachen Deutsch ; English ; Français |
Contents
Einleitung
Grub2-efi
ist standardmäßig installiert, wenn Mageia
5 und höher, im UEFI-Modus installiert wird. Diese Seite beschreibt, wie man nach einer Installation, mit Hilfe von Grub2-efi
, Einstellungen konfiguriert und/oder anpasst. Diese Anleitung ist nicht für die Verwendung von Grub Legacy
oder Grub2
im MBR-Modus geeignet.
Grub2-efi Struktur
Wenn Mageia
installiert wird, führt der Installer folgende Dinge durch:
- Er prüft ob bereits eine EFI-Systempartition (ESP) besteht, erstellt diese falls noch keine vorhanden ist und bindet diese unter
/boot/EFI
ein, - Er installiert
Grub2-efi
, was bedeutet: - * er schreibt die Datei
/boot/EFI/EFI/mageia/grubx64.efi
in die ESP, - * er schreibt die Konfigurationsscripts in das
/etc/grud.d
Verzeichnis der ESP, und die Konfigurationsdatei in/etc/default/grub
- * er führt die Scripts aus, um die Grundkonfigurationsdatei
/boot/grub2/grub.cfg
zu erstellen. Die Datei wird jedes Mal, wennGrub2-efi
ausgeführt wird, gelesen und kann mit dem Befehlgrub2-mkconfig
neu geschrieben werden, - er erstellt einen Eintrag in den nicht flüchtigen RAM des Mainboards. Dieser Eintrag hat den ersten Platz in der Bootreihenfolge und verweist auf
/boot/EFI/EFI/mageia/grubx64.efi
.
Im Fall von Problemen mit der /boot/EFI/EFI/mageia/grubx64.efi
Datei oder dem /boot/grub2
Verzeichnis, können diese mit dem Befehl grub2-install --target=x86_64-efi --efi-directory=/boot/EFI --bootloader-id=mageia --recheck
erneut geschrieben werden. "--efi-directory" spezifiziert den Einhängepunkt der ESP. "--bootloader-id" spezifiziert den Verzeichnisnamen in dem sich eine Kopie von grubx64.efi
befindet - dieser ist zudem der Name des neuen Eintrags, welcher der Befehl in den nicht flüchtigen RAM erstellt, in dem man schreiben kann was man wünscht.
Siehe Mit der UEFI-Firmware interagieren für weitere Informationen über das Verwalten der Einträge im nicht flüchtigen RAM.
Die ESP
ESP (für EFI-Systempartition) ist eine kleine VFAT Partition mit einer Größe zwischen 100MB bis 300MB, welche das Bootloader Programm für alle installierten Betriebssysteme enthält. Es ist Teil der UEFI-Spezifikation und betriebssystemunabhängig. Während einer UEFI-Installation erkennt das Mageia
Installationsprogramm diese automatisch (oder erstellt diese) in der Grundeinstellung unter /dev/sda und bindet dieses unter /boot/EFI
ein.
Hier sehen Sie die ESP von dem Computer, mit dem diese Seite geschrieben wurde:
Sie können sehen, dass die ESP, bzw. genauer die /boot/EFI/EFI
in drei Verzeichnisse mit /boot/EFI/EFI/mageia
, /boot/EFI/EFI/Microsoft
und /boot/EFI/EFI/ubuntu
unterteilt ist. Diese wurden jeweils von ihren eigenen Installern erstellt. Wenn Mageia
ein zweites Mal installiert wird, wird es trotzdem nur ein Verzeichnis mit dem Namen /boot/EFI/EFI/mageia
geben, welches dann für beide Installation genutzt wird.
Grub Konfiguration
Grundsätze
Jedes Mal wenn Sie Ihren Computer starten wird grub2.efi
ausgeführt und reagiert entsprechend der Konfigurationsdatei mit dem Namen grub.cfg
in /boot/grub2/
. Diese Datei ist nicht dazu gedacht per Hand bearbeitet zu werden, jedoch wenn es Ihnen möglich ist und Sie es möchten können Sie dies tun. grub.cfg
ist in einer Grub eigenen Scriptsprache geschrieben, welche eine Syntax ähnlich der GNU Bash und andere Bourne Shell Derivate aufweist.
Für alle anderen gibt es ein Werkzeug mit dem Namen grub2-mkconfig
, welches auch für Änderungen verwendet werden kann. Es bietet eine große Anzahl an Scripts, welche unter /etc/grub.d
und der Konfigurationsdatei /etc/default/grub
gespeichert sind. Diese Datei enthält die grub2.efi
Menüeinstellungen, die durch die Scripts gelesen und in grub.cfg
geschrieben werden. Es ist der Teil, den man in der grub2.efi
anpassen kann. Dies bedeutet, wenn Sie das grub2.efi
Menü ändern möchten, müssen Sie die bestehenden Scripte anpassen oder neue erstellen und anschließend das Menü aktualisieren.
Die Konfigurations-Scripts
Lass uns einen Blick auf das /etc/grub.d
Verzeichnis werfen.
- 00_header, ist das Script, welches die GRUB Einstellungen von
/etc/default/grub
lädt, inklusive Timeout, voreingestelltem Booteintrag, und weiteres. - 10_linux, lädt die Menüeinträge für die installierten Distributionen.
- 20_linux_xen,
- 20_ppc_terminfo,
- 30_os-prober, ist das Script, welches die Festplatte nach weiteren Betriebssysteme durchsucht und in das Bootmenü mit einfügt.
- 40_custom, ist eine Vorlage, welche Sie für weitere Einträge in das Bootmenü verwenden können.
- 41_custom
- 90_persistent
- 93_memtest, lädt das memtest Werkzeug.
/etc/default/grub
Haben Sie die Nummerierungen in den Scriptnamen bemerkt? Diese definieren die abzuarbeitende Priorität. Dies bedeutet, dass 10_linux vor 20_memtest86+ ausgeführt wird und aus diesem Grund höher in der Bootmenü Reihenfolge aufgelistet ist.
Wie die /boot/grub2/grub.cfg
Datei, sind diese nicht dazu gedacht bearbeitet zu werden, stattdessen ist hierfür 40_custom und 41_custom gedacht. Sie müssen sehr vorsichtig beim bearbeiten der Scripts sein. Scripts sind dazu gedacht ausgeführt zu werden. Dies bedeutet, dass das Ausführungsbit (execute bit) aktiv ist. Falls Sie ein Script deaktivieren möchten, löschen Sie dieses nicht, schalten Sie stattdessen das Ausführungsbit (execute bit) aus und es wird dann nicht ausgeführt.
Sie können so viele Dateien in das /etc/grub.d
Verzeichnis erstellen oder einfügen wie Sie möchten. Alle ausführbaren Scripts werden anhand ihrer nummerierten Reihenfolge ausgeführt.
Die Konfigurationsdateien
Die Datei für die Grundkonfiguration ist /etc/default/grub
und wird durch den 00_header
Script geparst.
- GRUB_DISABLE_OS_PROBER= erlaubt oder verbietet OS_PROBER nach vorhandenen Betriebssysteme auf der Festplatte zu suchen und ein Menü zu erstellen, welches die gefundenen Betriebssysteme auflistet.
- GRUB_CMDLINE_LINUX_DEFAULT= erlaubt das Hinzufügen von Kerneloptionen.
- GRUB_THEME= legt das Theme fest.
- GRUB_TIMEOUT= spezifiziert den in GRUB2 voreingestellten Timeout. Wenn -1 eingestellt wird, wird
grub2
so lange warten, bis manuell ein Eintrag ausgewählt wird und durch die Enter-Taste bestätigt wird.
Es gibt viele verschiedene Möglichkeiten, siehe hierzu die Liste aller möglichen Einträge
Sie können auch eine andere Konfigurationsdatei, wie /boot/grub2/custom.cfg
verwenden.
Namenskonventionen
Diese unterscheiden sich von grub-legacy
.
- es benennt Festplatten
hd
und Floppy Laufwerkefd
, und zählt diese ab 0 durch -hd0
fürsda
,hd1
fürsdb
, ... - es benennt Partition
gpt
und zählt diese ab 1 durch,gpt1
für die erste,gpt2
für die zweite, ...
Beispiel: sdb4 wird hd1,gpt4 genannt
Falls es Pfade nach dem Laufwerksnamen und der Partition gibt, verwende Klammern, Beispiel: (hd0,gpt4)/boot/grub2
Menü bearbeiten
Menü in den Standardeinstellungen
Hier sehen Sie das Menü, welches Sie standardmäßig haben, wenn Sie Windows 10
, anschließend Ubuntu
und dann Mageia 5
installiert haben. Da Mageia
zuletzt installiert wurde befindet es sich in der ersten Zeile und ist als Voreinstellung zum Start ausgewählt.
Die zweite Zeile ist ein Untermenü in dem sich von Mageia
der "Sichere Modus" und der vorherige Kernel befindet. Diese zwei Zeilen wurden durch das 10_linux
Script geschrieben.
Die dritte Zeile ist für Windows
Die vierte Zeile startet Ubuntu
und die fünfte ist auch ein Untermenü, in dem sich von Ubuntu
der "Sichere Modus" und vorherige Kernel befinden. Diese letzten drei Zeilen wurden durch das 30_os-prober
erstellt.
Einträge löschen
Wenn das 30_os-prober
Script deaktiviert ist, wird Ihnen ein minimales Menü angezeigt, welches nur Mageia
enthält. Die beste Möglichkeit dies zu tun ist es, die /etc/default/grub
Datei zu bearbeiten und in der Zeile "GRUB_DISABLE_OS_PROBER=" das angehängte "false" auf "true" zu ändern.
Sie müssen anschließend die /boot/grub2/grub.cfg
Datei neu schreiben lassen, indem Sie den Befehl grub2-mkconfig -o /boot/grub2/grub.cfg
ausführen.
Sie erhalten folgendes kleines Menü
Bitte beachten! Der update-grub Befehl ist ein alias für grub2-mkconfig -o /boot/grub2/grub.cfg
|
Eintrag hinzufügen
Um einen Eintrag hinzuzufügen ist es möglich das 40_custom
Script zu verwenden, jedoch werden wir einen neuen Script erstellen, da es in diesem Fall möglich ist die Menüreihenfolge selbst festzulegen, indem wir den Ort des Scripts im /etc/grub.d
Verzeichnis ändern.
Um ein neues Script für einen neuen Eintrag zu erstellen, in diesem Beispiel für Ubuntu
, können wir einfach den entsprechenden Abschnitt aus der /boot/grub2/grub.cfg
, welcher vom 30_os-prober
Script erstellt wurde, kopieren und einfügen.
- vergewissern Sie sich, dass
30_os-prober
in/etc/default/grub
aktiviert ist - generiere die
grub.cfg
mit dem Befehlupdate-grub
und schaue nach dem Abschnitt, der denUbuntu
Eintrag enthält. Sie finden diesen nach dem Kommentar-Eintrag: ### BEGIN /etc/grub.d/30_os-prober###. Der erste Abschnitt ist derWindows
Eintrag, dann derUbuntu
Eintrag (mit blau hinterlegtem Hintergrund, siehe Screenshot) und anschließend das Ubuntu Untermenü.
- Wähle den
Ubuntu
Eintrag (einschließlich dem Untermenü falls Sie möchten, jedoch ist dieser deutlich länger als er in dem Screenshot angezeigt wird) und füge diesen in die Scriptdatei ein, die wir in diesem Beispiel50_custom
nennen, und füge anschließend die Zeilen "#!/bin/sh", "cat <<EOF" und "EOF", wie im Screenshot unten angezeigt, ein. Speichere die Datei als50_custom
im/etc/grub.d
Verzeichnis und mache diese ausführbar.
- deaktiviere
30_os-prober
und generieregrub.cfg
erneut - hier sehen Sie das neue Menü
Es ist auch möglich einen Eintrag zu erstellen um das System herunter zu fahren und/oder neu zu starten. Erstelle einfach das Script wie unten angezeigt, und benenne es 60_custom
. Sie können die beiden Einträge im gleichen Script erstellen oder zwei einzelne Scripts hierfür erstellen.
Vergessen Sie nicht die Scripts ausführbar zu machen und die Datei grub.cfg
generieren zu lassen
Hier sehen Sie das neue Menü
Ändern der Reihenfolge der Einträge
Es ist einfach die Reihenfolge der Einträge im grub2
Menü zu ändern, Sie müssen dazu nur die Nummerierung der Scripts im /etc/grub.d
Verzeichnis ändern. Zum Beispiel, falls Sie möchten das Ubuntu
in der ersten Zeile steht, benennen Sie die Datei 50_custom
in 05_custom
um und generieren Sie danach die grub.cfg
Datei.
Ändern der Bezeichnung der Menüeinträge
Das Script, welches die Einträge generiert beginnt immer mit
menuentry 'Title' <options> { ... ... |
Der Text zwischen den einfachen Anführungszeichen ist frei wählbar und ist der Titel bzw. die Bezeichnung, welcher im grub2
Menü angezeigt wird. Zum Beispiel, für Ubuntu
, der Titel ist auf dem unteren Screenshot unterstrichen, können Sie es zu allem was Sie möchten abändern, zum Beispiel 'Neuer Titel für Ubuntu'
Bitte beachten! Sie können auch den Titel durch das bearbeiten der grub.cfg Datei abändern, jedoch wird der Titel bei einer neuen grub.cfg wieder auf den vorherigen Wert zurückgesetzt
|
Grub-customizer
Grub-customizer ist ein grafisches Werkzeug um die Haupteinstellungen in grub2
zu verwalten. Es ist in den Mageia
Repositorys verfügbar.
Im ersten Tab sehen Sie unsere vier Einträge und ein Untermenü. Es ist möglich hier die Titel der Einträge zu ändern, neue zu erstellen oder Einträge zu entfernen sowie deren Reihenfolge zu ändern.
Der zweite Tab ist eindeutig, mit außnahme der Check-Box "look for other operating systems". Wenn diese ausgewählt ist, ist das 30_os-prober
Script aktiviert. Die "advanced settings" Schaltfläche erlaubt es, zusätzliche Dinge für die /etc/default
Datei einzurichten.
Der letzte Tab ist für die Auflösung und den Themes. Die "advanced settings" Schaltfläche ist die gleiche wie oben.
Für weitere Informationen, siehe https://launchpad.net/grub-customizer
Mit der UEFI-Firmware interagieren
Verwechseln Sie nicht den Bootloader (grub2-efi
in unserem Fall), installiert durch das Betriebssystem, und den UEFI boot manager
, welcher Teil der UEFI Software ist, die mit Ihrem Mainboard ausgeliefert wird. Jedes Mal wenn Sie ein neues Betriebssystem installieren erstellt es einen Eintrag in den UEFI boot manager
, welcher den Bootloader startet. grub2-efi
ist unabhängig vom boot manager, jedoch können Sie im Falle eines Problems mit einem Bootloader den boot manager auffordern ein anderes Betriebssystem zu laden, durch das verwenden eines anderen Bootloaders.
Von Mageia
Mit dem Befehl efibootmgr -v
, können Sie Ihre UEFI Einträge sehen:
BootCurrents zeigt welcher Eintrag der aktuelle ist und Timeout zeigt wie lange gewartet wird, bevor der voreingestellte Eintrag, dies bedeutet der erste in der Bootreihenfolge, verwendet wird.
Boot0002 ist der Booteintrag, der von der mageia
Installation erstellt wurde, Boot0004 durch die ubuntu
Installation und Boot0001 durch Windows
.
Nehmen wir an Sie haben Probleme mit grub2-efi
, so das es einfriert bevor das Menü angezeigt wird. Sie können dann versuchen im fail-safe Modus zu starten und die Bootreihenfolge durch folgenden Befehl abzuändern:
# efibootmgr -o 4,2 |
und der Ubuntu
Eintrag wird als erster Eintrag verwendet, dies bedeutet es verwendet den Bootloader, welcher bei der Ubuntu
Installation installiert wurde.
Für weitere Informationen über die UEFI Bootmanager, siehe efibootmgr
Von Windows
Um einen Eintrag als voreingestellten Eintrag auszuwählen, starte Windows
und öffne eine Befehlzeile als Administrator:
Menü -> Alle Programme -> Zubehör -> Rechtsklick auf Eingabeaufforderung -> Als Administrator ausführen
Klicke anschließend auf "Ja" in der erscheinenden Box und gebe folgendes ein:
bcdedit /set {bootmgr} path \EFI\<id>\grubx64.efi |
Geben Sie statt <id> den Verzeichnisnamen an, in den grubx64.efi kopiert wurde, zum Beispiel "mageia" oder "ubuntu", siehe Die ESP.
Links
- https://www.happyassassin.net/2014/01/25/uefi-boot-how-does-that-actually-work-then/
- http://dedoimedo.com/computers/grub-2.html
- http://fedoraproject.org/wiki/GRUB_2
- http://www.rodsbooks.com/efi-bootloaders/installation.html
- https://wiki.archlinux.org/index.php/GRUB#
- http://www.dedoimedo.com/computers/grub2-efi-recovery.html