From Mageia wiki
Jump to: navigation, search


Drakconf multiflag.png
Andere Sprachen
Deutsch ; English ; Français

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, wenn Grub2-efi ausgeführt wird, gelesen und kann mit dem Befehl grub2-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.

Grub2-14.png

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:

Grub2-15.png

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.

Grub2-1.png


  • 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.

Grub2-2.png

  • 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ägeFlag-united-kingdom02.png


Sie können auch eine andere Konfigurationsdatei, wie /boot/grub2/custom.cfg verwenden.

Grub2-3.png

Namenskonventionen

Diese unterscheiden sich von grub-legacy.

  • es benennt Festplatten hd und Floppy Laufwerke fd, und zählt diese ab 0 durch - hd0 für sda, hd1 für sdb, ...
  • 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

Grub2-sc1.png

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. Grub2-4.png

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. Grub2-5.png

Sie erhalten folgendes kleines Menü

Grub2-sc2.png

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 Befehl update-grub und schaue nach dem Abschnitt, der den Ubuntu Eintrag enthält. Sie finden diesen nach dem Kommentar-Eintrag: ### BEGIN /etc/grub.d/30_os-prober###. Der erste Abschnitt ist der Windows Eintrag, dann der Ubuntu Eintrag (mit blau hinterlegtem Hintergrund, siehe Screenshot) und anschließend das Ubuntu Untermenü.

Grub2-6.png

  • 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 Beispiel 50_custom nennen, und füge anschließend die Zeilen "#!/bin/sh", "cat <<EOF" und "EOF", wie im Screenshot unten angezeigt, ein. Speichere die Datei als 50_custom im /etc/grub.d Verzeichnis und mache diese ausführbar.

Grub2-7.png

  • deaktiviere 30_os-prober und generiere grub.cfg erneut
  • hier sehen Sie das neue Menü

Grub2-sc3.png

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.

Grub2-9.png

Vergessen Sie nicht die Scripts ausführbar zu machen und die Datei grub.cfg generieren zu lassen

Hier sehen Sie das neue Menü

Grub2-sc4.png

Ä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.

Grub2-sc5.png

Ä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'

Grub2-8.png

Grub2-sc6.png

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.

Grub2-11.png

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.

Grub2-12.png

Der letzte Tab ist für die Auflösung und den Themes. Die "advanced settings" Schaltfläche ist die gleiche wie oben.

Grub2-13.png

Für weitere Informationen, siehe https://launchpad.net/grub-customizer Flag-united-kingdom02.png

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:

Grub2-16.png

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 Flag-united-kingdom02.png

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