Apr. 8th, 2019

victor_sudakov: (Default)
bhyve и некоторые другие гипервизоры (похоже что VirtualBox тоже) в режиме EFI не поддерживают эмуляцию NVRAM для сохранения efi variables между перезагрузками. Это может привести к проблеме: гостевая ОС установится штатно, а после перезагрузки получаем сообщение от EFI наподобие
Boot Failed. EFI DVD/CDROM
Failed to set MokListRT: Invalid Parameter
Failed to open \EFI\BOOT\grubx64.efi - Not Found
Failed to load image \EFI\BOOT\grubx64.efi: Not Found
start_image() returned Not Found
Boot Failed. EFI Misc Device
.

Это происходит оттого, что инсталлятор при установке ОС сохранил в efi variables путь к загрузчику (например "\EFI\centos\grubx64.efi"), а после перезагрузки гостевой системы настройка забылась и гипервизор начинает пытаться грузить нечто другое, что заложено в него по умолчанию или по эвристике.

Решений может быть несколько.

Первое тупое. Подмонтировать как-нибудь efi-раздел установленной гостевой ОС (например из другой виртуалки, или из LiveCD в той же виртуалке) и положить нужный загрузчик в то место, где его ищет и не может найти гипервизор: например подложить его в качестве "\EFI\BOOT\BOOTX64.EFI", или как в примере выше, скопировать из \EFI\centos\grubx64.efi в \EFI\BOOT\grubx64.efi.

Второе более интересное. После неудачной загрузки дождаться EFI interactive shell и создать файл startup.nsh, это типа такой autoexec.bat:

fs0:
edit startup.nsh


А в нем уже прописать тот загрузчик, который нужен гостевой ОС, например строчку "\EFI\centos\grubx64.efi".

Третье фантастическое. Запинать авторов UEFI-EDK2 firmware реализовать поддержку сохранения efi variables между перезагрузками.

UPDATE. Вот на ту же тему https://www.centos.org/forums/viewtopic.php?p=278745#p278745

UPDATE 2. А инсталлятор FreeBSD уже сразу создает в EFI-разделе startup.nsh c нужным загрузчиком. Молодцы!

Profile

victor_sudakov: (Default)
Виктор Судаков

December 2024

S M T W T F S
1234567
891011121314
15161718192021
22232425262728
293031    

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Aug. 16th, 2025 03:37 pm
Powered by Dreamwidth Studios