Wie würde ich den grub-efi-Bootloader unter Fedora Linux neu installieren?


12

Ich habe Fedora 18 kürzlich mit EFI-Boot installiert. Wie die anderen aktuellen Linux-Distributionen richtet es GRUB2 für mich ein.

Ich habe Erfahrung mit der Neuinstallation der BIOS- Version von GRUB, wenn etwas schief geht. Ich weiß zB, wie man eine Rettungsdisk bootet, in das installierte System chroot, ausführt grub-installund möglicherweise update-grub/ grubby/ grub-mkconfig.

Wie würde ich die EFI- Version von GRUB neu installieren, wenn etwas schief geht? (Ich weiß, dass etwas schief gehen wird: Ich breche sie).


Warum haben Sie eine vage Frage gestellt und diese dann sofort beantwortet? Obwohl die Antwort nützliche Informationen enthält, muss die Frage wirklich geklärt werden: Zu wissen, dass Sie etwas geändert haben , reicht nicht aus. Um eine gute Antwort auf die Frage zu erhalten, ist es wirklich notwendig, genau zu verstehen, was geändert wurde.
Rod Smith

@ RodSmith, danke, dass du früher auf meine E-Mail über EFI geantwortet hast :). Und um Ihren Kommentar zu den Downvotes hinzuzufügen. Die Frage, mit der ich angefangen habe, war buchstäblich diese. Ich habe Erfahrung mit der Neuinstallation von grub-pc. Ich möchte das gleiche Maß an Vertrauen haben, dass ich weiß, wie man ein EFI-System wiederherstellt. Ich habe die Frage einmal bearbeitet, um zu betonen, dass es um die Neuinstallation von grub ging ... Ich denke, ich sollte es noch einmal versuchen und mein Motiv genauer erläutern.
Sourcejedi

Warum verwenden Sie Grub, wenn Sie UEFI haben? Welchen Vorteil bietet die Verkettung der beiden Bootloader?
Marco

@Marco UEFI ist nicht der Bootloader, der von einer mir bekannten Linux-Distribution unterstützt wird! Fedora aktualisiert GRUB automatisch, wenn ein neuer Kernel installiert wird, und installiert die erforderlichen Startoptionen wie root =. Für EFI ist das nicht der Fall. Ich könnte die Distributionsunterstützung aufgeben und die automatischen Scan- / Kernel-Optionen von REFIND in refind.conf verwenden , aber das würde immer noch Bootloader / Manager verketten! Und Microsoft nicht GPL - Treiber unterschreiben, so Secure Boot hat gehen SHIM-> boot loader-> Linux sowieso, und Sie wirklich wollen , ein Boot - Menü nach dem UEFI-> Unterlegscheibenteils.
Sourcejedi

Nach der Installation eines neuen Kernels reicht ein einziger Aufruf efibootmgraus, um den Eintrag im UEFI-Menü zu aktualisieren. Ich weiß nicht über rEFInd oder SHIM. Ich persönlich kette nicht mehrere Bootloader. Alle Betriebssysteme werden dem UEFI-Startmenü hinzugefügt und es funktioniert einwandfrei.
Marco

Antworten:


9

Zunächst benötigen Sie ein Linux-System mit EFI- Boot. Wenn Sie noch über Ihr Originalinstallationsmedium (CD / DVD / USB-Stick) verfügen, sollte dieses normalerweise ein geeignetes Rettungssystem enthalten. Möglicherweise gibt es sogar eine Reparaturoption mit einem Klick :).

Alternativ bietet die Ubuntu-Community ein automatisches Boot-Repair- Image. Es behauptet, Fedora zu unterstützen. Wenn Sie wissen möchten, was es tatsächlich tut, empfehlen wir Ihnen, diese Erklärung von Drittanbietern im Voraus zu lesen .

Ich habe jedoch ein Allzweck-Rettungssystem mit Konsolentools verwendet. Ich habe nicht efibootmgrnur den EFI-Start unterstützt, sondern auch sichergestellt, dass er in der Liste der Pakete enthalten ist . Es hieß zufällig GRML und basierte auf Debian. Hier sind die Informationen zu Konsolentools und grub-efi, die ich bei der Rettung meines Fedora-Systems entdeckt habe:

  1. Führen Sie ein von EFI gebootetes Fedora 18-System nicht ausgrub2-install . Es wird Erfolg beanspruchen, aber es bricht das Fedora grub-efi-Boot-System.

    • Die Datei /boot/EFI/fedora/grub.efiwird vom Paket grub-efi installiert. Wenn Sie es neu installieren möchten, verwenden Sie yum reinstall grub-efi. (Um dies von einem generischen Rettungssystem aus zu tun, können Sie dies tun, nachdem mountSie chrootIhr installiertes Fedora-System installiert haben). Fedora grub-efi verwendet die Konfigurationsdatei /boot/EFI/fedora/grub.cfg(vermutlich von grubby generiert). Fedora auf EFI generiert bei keine Datei /boot/grub2/grub.cfg. Durch Ausführen grub2-installwird grub.efi durch ein Bild ersetzt, das versucht zu lesen /boot/grub2/grub.cfg, und schlägt daher fehl.

    • grub2-installInstalliert einen EFI-Starteintrag für grub.efi. Wenn Sie jedoch Secure Boot in Ihrer Windows 8-zertifizierten Firmware nicht deaktiviert haben, kann dieser Eintrag nicht gestartet werden. Sie müssen shim.efistattdessen booten (ignorieren shim-fedora.efi, ich bin mir nicht sicher, was das genau ist). Siehe unten.

  2. Sie können Ihren EFI-Starteintrag für Fedora verlieren, wenn Ihre Firmware-Einstellungen zurückgesetzt werden. (Manuell oder durch Firmware-Aktualisierung oder weil die Firmware fehlerhaft ist - letztere wurde in freier Wildbahn gemeldet). So erstellen Sie manuell einen EFI-Starteintrag für Fedora mit sicherem Start:

    $ sudo efibootmgr -c -L Fedora -d /dev/sda -p 100 -l \\EFI\\fedora\\shim.efi
    

    In diesem Beispiel wird die Partitionsnummer 100 auf der ersten von Linux erkannten Standardfestplatte verwendet. Sie sollten die Optionen anpassen -d /dev/sdaund -p 100das Dateisystem identifizieren, in dem Fedora bereitgestellt wird /boot/efi. Dies ist eine EFI-Systempartition. Das Fedora-Installationsprogramm hat ein dediziertes ESP für Ihre Fedora-Installation erstellt, das von den ESPs getrennt ist, die von anderen Betriebssystemen verwendet werden. ( Dies unterscheidet sich von Ubuntu und OpenSUSE ).

    Beachten Sie, dass der efibootmgrBefehl erfordert, dass Sie ihn von einem EFI-gestarteten System ausführen.


"Beachten Sie, dass der Befehl efibootmgr erfordert, dass Sie ihn von einem EFI-gebooteten System ausführen." - Wie "booten" Sie in diesem Fall ein EFI-gebootetes System? (Mein aktueller USB-Stick
bootet

1
Das Installieren von Medien ist die unterstützte Methode zum Booten Ihres Systems. Ich denke, Sie sollten auch in der Lage sein, ein EFI-System zu starten, ohne EFI-Firmware-Variablen zu installieren. Dazu gehört das Erstellen /EFI/boot/bootx64.efi(unter der Annahme von 64-Bit-UEFI). Genau so funktionieren USB-Installationsmedien (alles andere als CDs / DVDs). Es könnte ausreichen, shim.efi dort zu kopieren, aber ich bin mir nicht sicher, ob das für die Arbeit eingerichtet ist oder nicht.
Sourcejedi

5

Wenn Sie mit UEFI Windows doppelt booten, gibt es eine andere Möglichkeit. für die keine Wiederherstellungsdiskette erforderlich ist.

Sie können Windows starten, eine Befehlszeile mit Administratorrechten öffnen und den folgenden Befehl ausführen:

bcdedit /set {bootmgr} path \EFI\fedora\shim.efi

Dadurch wird der Windows-Starteintrag in UEFI durch einen ersetzt, der in GRUB gestartet wird. Angenommen, Ihr GRUB-Menü enthält dann einen funktionierenden Eintrag für Windows, dann haben Sie jetzt einen funktionierenden Dual-Boot :-). Hoffentlich sollte dies alles funktionieren, ohne Secure Boot zu deaktivieren.

Ich musste dies nach einem Windows-Update selbst tun und es scheint den Trick getan zu haben.

Quelle und weitere Informationen: http://nwrickert2.wordpress.com/2013/05/13/notes-on-uefi-windows-and-linux/ .


Alternativ finden Sie die beiden unter askubuntu.com/a/799734/462004 beschriebenen Lösungen (mit EasyUEFI oder wie Sie die Startreihenfolge bcdedit.exeanstelle des Windows-Eintrags ändern, wie es Ihr Befehl tut).
Phk

1

https://fedoraproject.org/wiki/GRUB_2?rd=Grub2#Updating_GRUB_2_configuration_on_UEFI_systems :

dnf reinstall grub2-efi grub2-efi-modules shim

(vorausgesetzt, Sie haben diese Pakete bereits installiert und eine vorherige Konfiguration ist vorhanden)


Vielen Dank! "Erstellen Sie einen Startmenüeintrag: TL; DR: Dies sollte automatisch geschehen" - yay.
Sourcejedi

Oh ja, das tut es: grub2-mkconfig -o /boot/grub2/grub.cfg(oder auf einem (U) EFI-System wäre es so etwas wie grub2-mkconfig -o /boot/efi/EFI/fedora/grub.cfg. Hat nicht funktioniert?

Entschuldigung, ich meinte, das Wiki impliziert, dass durch die Neuinstallation des Grub-Pakets die EFI-Variablen neu erstellt werden, die zum Starten von GRUB erforderlich sind (die möglicherweise neu erstellt werden müssen, z. B. wenn Sie die "BIOS" -Einstellungen aus irgendeinem Grund zurücksetzen). Ich glaube nicht, dass ich es versucht habe dnf reinstall, und wenn es stimmt, klingt es ziemlich gut.
Sourcejedi

0

Nur um es hier einfach zu halten, ist alles, was Sie tun:

yum reinstall grub2-efi

Führen Sie NICHT grub2-install aus, da dies Ihr System beschädigt, indem Ihnen ein leeres Grub-Startmenü angezeigt wird (dies liegt daran, dass bei grub2-install eine fehlerhafte / generische .efi-Datei angezeigt wird, die versucht, grub.cfg vom falschen Speicherort zu laden.

Außerdem möchten Sie möglicherweise Ihre grub-config aktualisieren, wenn Sie auf neue Festplatten migriert sind oder sich Ihre Partition / Ihr Layout geändert hat mit:

grub2-mkconfig -o /boot/EFI/fedora/grub.cfg

Schön, eine Bestätigung zu lesen :). Ich habe eine Bearbeitung vorgeschlagen, die zeigt, wie mit grub2-mkconfig gearbeitet werden muss -o. Ich bin mir nicht sicher, wie nützlich die einfache Antwort ist - nicht, dass meine streng nützlicher ist, aber dies setzt voraus, dass Sie das Fedora-System noch irgendwie starten können oder dass Sie bemerkt haben, dass Sie vor dem Herunterfahren einen Fehler gemacht haben. (Meine Antwort lautet: Handwaves zu generischen Rettungsdisketten, aber AFAIK, Sie müssen sich in die Installation einarbeiten und sicherstellen, dass alle benötigten Dateisysteme bereitgestellt werden. Das ist das Schöne an einem speziellen Rettungssystem wie dem Debian-Installationsprogramm, das Mount + Chroot ausführt für dich).
Sourcejedi
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.