Ubuntu UEFI Booteinträge nach BIOS/Grub Update wiederherstellen

Aus Thomas-Krenn-Wiki
Wechseln zu: Navigation, Suche

Bei der Installation von Ubuntu 12.04 LTS Server von einem UEFI Installations-Medium auf einem Server mit Supermicro X9SCM-F Mainboard oder Supermicro X9DR7-LN4F Mainboard richtet der Ubuntu Installer einen UEFI Starteintrag im BIOS ein. Bei einem BIOS Update eines Supermicro X9SCM-F Mainboards (von BIOS Version 1.x auf Version 2.x) oder einem BIOS Update von X9DR7-LN4F (von BIOS Version 1.x auf Version 3.x) gehen diese Starteinträge verloren, Ubuntu startet danach nicht mehr. Das Problem kann neben einem solchen BIOS Update auch bei Grub Updates auftreten.

Dieser Artikel zeigt, wie Sie die Starteinträge wieder herstellen.

Problem bei BIOS Update

  • Es sind BIOS Updates von einer Version 1.x auf eine Version 2.x oder 3.x betroffen (z.B. 1.1a auf 2.0, 1.0 auf 3.0a).
  • BIOS Updates von einer Version 1.x auf eine höhere Version 1.y sind nicht betroffen.
  • BIOS Updates von einer Version 2.x auf eine höhere Version 2.y sind nicht betroffen.

Problem bei Grub Update

Vereinzelt sind uns auch Vorfälle bekannt, bei denen die UEFI Booteinträge nach einem Grub Update (z.B. grub-efi-amd64), d.h. unabhängig vom BIOS Update, nicht mehr korrekt erstellt werden konnten. Uns sind jeweils ein Vorfall mit X9SCM-F und X9DR7-LN4F Mainboards bekannt, bei Ubuntu Launchpad ist auch ein Fall mit anderer Hardware dokumentiert.[1] Wir empfehlen die UEFI Boot Einträge vor und nach einem Grub Update mit dem Kommando sudo efibootmgr -v zu prüfen. Sollten nach dem Kernel Update UEFI Boot Einträge fehlen, können die Einträge nach einem Neustart des Systems wie weiter unten beschrieben wiederhergestellt werden.

Die folgende Ausgabe zeigt einen solchen Problemfall, bei dem nach dem Grub Update die UEFI Boot Einträge fehlen:

adminuser@ubuntu-12-04:~$ sudo efibootmgr -v
BootCurrent: 0001
Timeout: 10 seconds
BootOrder: 0001,0000,0002,0003,0005
Boot0000* ubuntu	HD(1,800,f3800,caff37a0-8078-4b24-956e-79eb5e33631f)File(\EFI\ubuntu\grubx64.efi)
Boot0001* ubuntu2	HD(1,800,f3800,957eb480-5f2f-409e-95b8-62c38a3305c0)File(\EFI\ubuntu2\grubx64.efi)
adminuser@ubuntu-12-04:~$ sudo apt-get update; apt-get upgrade
[...]
Reading state information... Done
The following packages will be upgraded:
  apt apt-transport-https apt-utils grub-common grub-efi grub-efi-amd64 grub-efi-amd64-bin grub2-common libapt-inst1.4 libapt-pkg4.12 libcib1
  libcrmcluster1 libcrmcommon2 libpe-rules2 libpe-status3 libpengine3 libstonithd1 libtransitioner1 libudev0 mdadm pacemaker udev
22 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
[...]
Preparing to replace grub-efi 1.99-21ubuntu3.9 (using .../grub-efi_1.99-21ubuntu3.10_amd64.deb) ...
Unpacking replacement grub-efi ...
Preparing to replace grub-efi-amd64 1.99-21ubuntu3.9 (using .../grub-efi-amd64_1.99-21ubuntu3.10_amd64.deb) ...
Unpacking replacement grub-efi-amd64 ...
Preparing to replace grub-efi-amd64-bin 1.99-21ubuntu3.9 (using .../grub-efi-amd64-bin_1.99-21ubuntu3.10_amd64.deb) ...
Unpacking replacement grub-efi-amd64-bin ...
Preparing to replace grub2-common 1.99-21ubuntu3.9 (using .../grub2-common_1.99-21ubuntu3.10_amd64.deb) ...
Unpacking replacement grub2-common ...
Preparing to replace grub-common 1.99-21ubuntu3.9 (using .../grub-common_1.99-21ubuntu3.10_amd64.deb) ...
Unpacking replacement grub-common ...
[...]
Generating grub.cfg ...
Found linux image: /boot/vmlinuz-3.2.0-51-generic
Found initrd image: /boot/initrd.img-3.2.0-51-generic
[...]
Found memtest86+ image: /boot/memtest86+.bin
  No volume groups found
Adding boot menu entry for EFI firmware configuration
done
Setting up grub-efi (1.99-21ubuntu3.10) ...
adminuser@ubuntu-12-04:~$ sudo efibootmgr -v
BootCurrent: 0001
Timeout: 10 seconds
BootOrder: 0001,0000,0002,0003,0005
adminuser@ubuntu-12-04:~$ sudo grub-install --bootloader-id ubuntu /dev/sda
Installation finished. No error reported.
adminuser@ubuntu-12-04:~$ sudo efibootmgr -v
BootCurrent: 0001
Timeout: 10 seconds
BootOrder: 0001,0000,0002,0003,0005
adminuser@ubuntu-12-04:~$ 

UEFI Starteinträge für Ubuntu via BIOS wiederherstellen

Bei vereinzelten BIOS-Versionen gibt es die Möglichkeit einen UEFI Boot-Eintrag direkt im BIOS zu erstellen. Dafür gehen Sie im BIOS zum Punkt "Boot" und gehen wie folgt vor:

  • "Add boot option" -> "ubuntu"
  • "Select Filesystem" -> die korrekte EFI Partition auswählen
  • "Path for boot option" -> "\EFI\ubuntu\grubx64.efi" angeben

Screenshots für Windows EFI Wiederherstellung, die für Ubuntu bis auf den Pfad ident sind, finden Sie hier: UEFI Boot Eintrag nach Mainboardtausch oder BIOS-Update wiederherstellen

UEFI Starteinträge für Ubuntu via Rescue Medium wiederherstellen

Führen Sie folgende Schritte zur Wiederherstellung der Starteinträge aus:

  1. Starten Sie den Server mit einer Ubuntu Installations-CD oder Installations-USB Stick im UEFI Modus:
    Ubuntu-12.04-UEFI-Boot-01-UEFI-boot-Ubuntu-USB-Stick.png
  2. Wählen Sie Rescue a broken system. Es muss dabei folgender Bildschirminhalt erscheinen:
    Ubuntu-12.04-UEFI-Boot-02-Rescue-a-broken-system.png
    • Wenn stattdessen der folgende Bildschirminhalt erscheint, wurde das Installationsmedium nicht im UEFI Modus gestartet. Wechseln Sie in diesem Fall zurück ins BIOS und starten Sie das Installationsmedium im UEFI Modus:
      Ubuntu-12.04-UEFI-Boot-02-Wrong-boot-mode.png
  3. Wählen Sie die gewünschten Spracheinstellungen und weitere Einstellungen.
    Ubuntu-12.04-UEFI-Boot-03-Select-a-language.png
  4. Wählen Sie die Root-Partition Ihres Systems (in diesem Beispiel zeigen wir ein Software-RAID). Wenn Sie Ubuntu auf einem einzelnem Gerät (Festplatte oder Hardware-RAID) installiert haben, wählen Sie direkt das Gerät (z.B. /dev/sda2).
    Ubuntu-12.04-UEFI-Boot-04-Enter-rescue-mode-Example-software-raid-1.png
  5. Wählen Sie Execute a shell in ... und anschließend Continue.
    Ubuntu-12.04-UEFI-Boot-08-Enter-rescue-mode-Execute-a-shell.png Ubuntu-12.04-UEFI-Boot-09-Enter-rescue-mode-Execute-a-shell.png
  6. Führen Sie efibootmgr aus um die aktuellen Einträge anzuzeigen.
    Ubuntu-12.04-UEFI-Boot-10-efibootmgr.png
  7. Mounten Sie die EFI-Partition (meist /dev/sda1), starten Sie die Bash, und führen Sie grub-install --bootloader-id ubuntu /dev/sda aus. Sollte dies nicht funktionieren bzw. kein neuer Eintrag aufscheinen, kann es auch helfen, wenn Sie versuchen mittels "efibootmgr -b X -B" einzelne bestehende Boot-Einträge zu löschen. Für die Entfernung von Boot-Eintrag "0001" z.B. folgendes Kommando ausführen: efibootmgr -b 1 -B. Danach die Erstellung via grub-install nochmal wiederholen.
    Ubuntu-12.04-UEFI-Boot-11-grub-install.png
  8. (Optional) Bei einem Software RAID-1 mounten Sie danach die EFI-Partition auf der zweiten Festplatte und führen grub-install --bootloader-id ubuntu-hdd2 /dev/sdb aus.
    Ubuntu-12.04-UEFI-Boot-12-grub-install-hdd2.png
  9. Abschließend beenden Sie die Shell mit exit und führen einen Reboot durch.
    Ubuntu-12.04-UEFI-Boot-13-Reboot.png

Zusätzliche Schritte bei Software RAID 1

Bei Software RAID 1 sind nach dem Punkt 4 oben folgende Schritte erforderlich:

  • Auswahl der Partitionen des Software RAIDs:
    Ubuntu-12.04-UEFI-Boot-05-Enter-rescue-mode-Example-software-raid-1.png
  • Optional Überprüfung des Software RAIDs in einer zweiten Konsole (erreichbar über [Alt]-[F2], zurück in die ursprüngliche Konsole gelangt man mit [Alt]-[F1]
    Ubuntu-12.04-UEFI-Boot-06-Search-partitions-in-second-console.png
  • Auswahl des RAID Devices:
    Ubuntu-12.04-UEFI-Boot-07-Enter-rescue-mode-Example-software-raid-1.png

Einzelnachweise

  1. efibootmgr can not create new entry due to ENOSPC error (bugs.launchpad.net, 10.04.2013)


Foto Werner Fischer.jpg

Autor: Werner Fischer

Werner Fischer, tätig im Bereich Communications / Knowledge Transfer bei Thomas-Krenn, hat sein Studium zu Computer- und Mediensicherheit an der FH Hagenberg abgeschlossen. Er ist regelmäßig Autor in Fachzeitschriften und Speaker bei Konferenzen wie LinuxCon, OSDC, OSMC, LinuxTag u.v.m. Seine Freizeit gestaltet er sehr abwechslungsreich. In einem Moment absolviert er seinen Abschluss im Klavierspielen, im anderen läuft er beim Linzmarathon in der Staffel mit oder interessiert sich für OpenStreetMap.


Das könnte Sie auch interessieren

Google Suche des Firefox von Ubuntu 10.04 wieder auf google.de konfigurieren
Lautstärke eines USB-Headsets für VoIP in Ubuntu 10.04 mit Twinkle anpassen
Zugriff auf ein mit ecryptfs verschlüsseltes Home Verzeichnis unter Ubuntu wiederherstellen