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
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 wiederShell> 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