I believe “Windows Guest Best Practices” section for OpenNebula has several contradictory instructions.
Documentation says:
On each host, you should backup the original firmware files in case you need to restore or use them as well:
cd /usr/share
mkdir backup_OVMF
mv edk2 qemu OVMF backup_OVMF/
After that you should copy the new files into their places:
cd /path/to/download/RPM/extracted/usr/share/
cp -r edk2 qemu OVMF /usr/share/.
Unfortunately when the qemu folder included in any rpm files (I used RockyLinux 9 edk2-ovmf-20240524-6.el9_5.3.noarch.rpm) contains only firmware subfolder. If original /usr/share/qemu folder is moved to backup and replaced, it’s missing all necessary files to lunch any VM.
Next instruction says:
You’ll also need to update the configuration file at /etc/one/vmm_exec/vmm_exec_kvm.conf to include these new files as well. Example:
OVMF_UEFIS = "/usr/share/OVMF/OVMF_CODE.fd /usr/share/OVMF/OVMF_CODE.secboot.fd /usr/share/AAVMF/AAVMF_CODE.fd /usr/share/backup_OVMF/OVMF/OVMF_CODE.fd /usr/share/backup_OVMF/OVMF/OVMF_CODE.secboot.fd"
downloaded OVMF folder has only following 4 symlinks:
OVMF_CODE.secboot.fd → …/edk2/ovmf/OVMF_CODE.secboot.fd
OVMF_VARS.fd → …/edk2/ovmf/OVMF_VARS.fd
OVMF_VARS.secboot.fd → …/edk2/ovmf/OVMF_VARS.secboot.fd
UefiShell.iso → …/edk2/ovmf/UefiShell.iso
Suggested entry would point to non-exist files, i.e /usr/share/OVMF/OVMF_CODE.fd
Even thought I fixed both issues by coping all files from …/usr/share/edk2/ovmf straight to /usr/share/OVMF,
and was able to boot Windows 11 ISO, the end result is till nogo.
After going through several screen: “Press any key to boot from CD or DVD…”, “Tianocore”, few minutes for the ISO to load, I eventually saw the Windows Setup window. Clicked through: chose language, time, keyboard, product key, … PC does not currently meet Windows 11 requirements.
VM logs has no errors.