Przywrócenie ustawień startowych UEFI w Ubuntu po przeprowadzeniu aktualizacji BIOS-u

Z Thomas-Krenn-Wiki
Przejdź do nawigacji Przejdź do wyszukiwania
Uwaga: Prosimy zwrócić uwagę, że ten artykuł / kategoria nie jest już aktualizowana, gdyż odnosi się do starszych komponentów oprogramowania / sprzętu.
Ta strona jest nadal dostępna jedynie w celach informacyjnych.

Podczas instalacji systemu Ubuntu 12.04 LTS Server w serwerze z płytą główną Supermicro X9SCM-F dodawana jest w BIOS-ie nowa opcja startowa UEFI, która w trakcie aktualizacji BIOS-u płyty Supermicro X9SCM-F (z wersji BIOS-u 1.x do 2.x) ulega utracie i system Ubuntu się nie uruchamia. Problem tego typu może również wystąpić po aktualizacji Gruba.

Ten artykuł pokazuje w jaki sposób opcja startowa może zostać odzyskana.

Problem podczas aktualizacji BIOS-u

  • Problem dotyczy wyłącznie aktualizacji BIOS-u z wersji 1.x do 2.x (np. 1.1a do 2.0 lub 1.1a do 2.0a).
  • Nie dotyczy aktualizacji BIOS-u z wersji 1.x do wyższej wersji 1.y.
  • Nie dotyczy aktualizacji BIOS-u z wersji 2.x do wyższej wersji 2.y.

Problem podczas aktualizacji Gruba

Znane są pojedyncze przypadki, gdy po aktualizacji Gruba opcja startowa UEFI (niezależnie od procesu aktualizacji BIOS-u) nie może zostać poprawnie utworzona. My spotkaliśmy się z tym problemem na płytach X9SCM-F i X9DR7-LN4F, w Launchpad Ubuntu jest opisany taki przypadek, ale na innym sprzęcie.[1] Zalecamy kontrolę opcji startowych UEFI poleceniem sudo efibootmgr -v, przed i po aktualizacji Gruba. Jeżeli po aktualizacji jądra opcja startowa Ubuntu nie występuje to może zostać ona przywrócona po restarcie systemu w poniżej opisany sposób.

Poniższy wyciąg pokazuje taki przypadek, gdy po aktualizacji Gruba brakuje opcji startowej UEFI:

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:~$ 

Przywrócenie opcji startowej UEFI dla Ubuntu

Należy przeprowadzić następujące kroki w celu przywrócenia opcji startowej:

  1. Uruchomić serwer z instalacyjnego CD Ubuntu lub klucza USB w trybie UEFI:
    Ubuntu-12.04-UEFI-Boot-01-UEFI-boot-Ubuntu-USB-Stick.png
  2. W ponizszym menu wybrać Rescue a broken system.
    Ubuntu-12.04-UEFI-Boot-02-Rescue-a-broken-system.png
    • Jeżeli nie zostanie wyświetlone powyższe menu, lecz poniższy obraz, to system nie został uruchomiony w trybie UEFI. Należy w tym przypadku przejść z powrotem do BIOS-u i uruchomić system z medium instalacyjnego w trybie UEFI:
      Ubuntu-12.04-UEFI-Boot-02-Wrong-boot-mode.png
  3. Wybór języka.
    Ubuntu-12.04-UEFI-Boot-03-Select-a-language.png
  4. Wybór partycji Root systemu (w tym przykładzie pokazany jest Software RAID). Jeżeli Ubuntu jest zainstalowany na jednym nośniku (HDD lub macież RAID) to należy go wybrać (np. /dev/sda2).
    Ubuntu-12.04-UEFI-Boot-04-Enter-rescue-mode-Example-software-raid-1.png
  5. Następnie wybrać Execute a shell in ... i 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. Wykonać polecenie efibootmgr w celu wyświetlenia aktualnych opcji.
    Ubuntu-12.04-UEFI-Boot-10-efibootmgr.png
  7. Zamontować partycję EFI (zazwyczaj /dev/sda1), uruchomić bash, i wykonać polecenie grub-install --bootloader-id ubuntu /dev/sda.
    Ubuntu-12.04-UEFI-Boot-11-grub-install.png
  8. (Opcjonalnie) z Software RAID 1 należy następnie zamontować partycję EFI na drugim HDD i wykonać polecenie grub-install --bootloader-id ubuntu-hdd2 /dev/sdb.
    Ubuntu-12.04-UEFI-Boot-12-grub-install-hdd2.png
  9. Kończąc zamknąć shell poprzez exit i restartować system.
    Ubuntu-12.04-UEFI-Boot-13-Reboot.png

Dodatkowe kroki podczas korzystania z RAID 1

Z Software RAID 1 są konieczne po punkcie 4 następujące kroki:

  • Wybór partycji RAID-u programowego:
    Ubuntu-12.04-UEFI-Boot-05-Enter-rescue-mode-Example-software-raid-1.png
  • Opcjonalna kontrola RAID-u programowego w drugiej konsoli (przez [Alt]-[F2], powrócić do wyjściowej konsoli można klawiszami [Alt]-[F1])
    Ubuntu-12.04-UEFI-Boot-06-Search-partitions-in-second-console.png
  • Wybór macierzy RAID:
    Ubuntu-12.04-UEFI-Boot-07-Enter-rescue-mode-Example-software-raid-1.png

Odnośniki


Autor: Werner Fischer