bhyve и некоторые другие гипервизоры (похоже что VirtualBox тоже) в режиме EFI не поддерживают эмуляцию NVRAM для сохранения efi variables между перезагрузками. Это может привести к проблеме: гостевая ОС установится штатно, а после перезагрузки получаем сообщение от EFI наподобие
Это происходит оттого, что инсталлятор при установке ОС сохранил в 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:
А в нем уже прописать тот загрузчик, который нужен гостевой ОС, например строчку "\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 нужным загрузчиком. Молодцы!
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 нужным загрузчиком. Молодцы!