UEFI Eintrag wiederherstellen (Grub)

Windows 7/8/10 Updates und der Biosbatteriewechsel löschen machmal ungefragt den UEFI-Eintrag von meinem Linux (Dualboot) aus dem BIOS. Bisher hab ich dass immer über ein Rettungslinux auf dem USB-Stick repariert, aber es gibt eine elegantere Methode, die ich nicht mehr vergessen will, also wird gebloggt.

Man muss wissen, dass es nicht langt, .EFI-Dateien auf der EFI-Partition zu haben, um diese booten zu können. Die UEFI-Firmware hat eine eigene Liste, in der die bootbaren Betriebssysteme stehen müssen. (Ich meine die Liste, die beim Drücken der -Taste (bei mir F11) während dem Booten erscheint.

Schritt 1: Linux (bei mir Fedora) über die UEFI-Shell starten:

  • F11
  • UEFI-Shell wählen
  • EFI-Partition auswählen: Anzeige aller Partitionen mit mm oder map. Die Partitionen heißen bei mir fs0 bis fs4 bzw blk0 bis blk4. Wechseln auf die Partition mit:
  • Shell> fs0:
  • (der Doppelpunkt liegt im englischen Tastaturlayout auf SHIFT-Ö)
  • Testen ob es die richtige Partition war, denn auf der EFI-Partition gibt es ein Verzeichnis namens EFI
  • Shell> cd EFI
  • Wenn das fehlschlägt, eine andere Partition verwenden, z.B. mit Shell> fs1:, dann wieder Shell> cd EFI ausprobieren.
  • Die richtige .EFI-Datei suchen
  • fs0> cd <tabtaste mehrfach drücken, bis FEDORA oder UBUNTU oder der Name deines Linux erscheint>
  • fs0> <tabtaste mehrfach drücken und sich alle *.EFI Dateien merken>
  • (tab completion funktioniert hier, auch wenn man noch keine Buchstaben eingegeben hat)
  • Die Efi-Dateien durchprobieren, bei mir klappen sowohl GRUBX64.EFI als auch SHIM.EFI
  • fs0> GRUBX64.EFI
  • Das genutzte Verzeichnis und die genutzte Datei merken!

Jetzt einen Booteintrag in UEFI hinterlegen (auf der Konsole des gestarteten Linux)

  • Evtl efibootmgr installieren:
  • sudo apt-get install efibootmgr…
  • sudo dnf install efibootmgr-…
  • Booteinträge und Bootreihenfolge anschauen:
  • $ sudo efibootmgr
    BootCurrent: 0003
    Timeout: 1 seconds
    BootOrder: 0001,0002,0003
    Boot0001* WINDOWS BOOT MANAGER
    Boot0002* Hard Drive
    Boot0003* UEFI: Built-in EFI Shell
  • Partition und Laufwerk der EFI-Partition herausfinden
  • $ mount | grep efi
    efivarfs on /sys/firmware/efi/efivars type efivarfs (rw,......)
    /dev/sdb1 on /boot/efi type vfat (rw,......)

  • Laufwerk ist hier /dev/sdb (ohne Zahl) und die Partition ist 1 (die Zahl)
  • Eintrag für Linux wiederherstellen
  • sudo efibootmgr -c -L "Mein Linux" -l /EFI/FEDORA/GRUBX64.EFI -d <Laufwerk> -p <Partitionsnummer>

Bootreihenfolge anpassen

  • sudo efibootmgr
  • Die Zeile „BootOrder: 0004, 0001, …“ gibt die aktuelle Bootreihenfolge an, die erste Nummer wird als erstes gestartet. Die Nummern beziehen sich auf die BootXXXX Zeilen.
  • Jetzt eine neue Reihenfolge überlegen und aktivieren
  • sudo efibootmgr -o 1,0,2,3

So läuft es zumindest für mein ASRock Mainboard.
Funktioniert das nicht? Ab in die Kommentare.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.