Applicable to:
- SolusVM 2
Symptoms
After installation, a guest OS in VM shows one of the following:
PRODUCT_ERROR: No bootable device
PRODUCT_ERROR: There is nothing to satisfy “efi”
Cause
Three cases are possible:
- VM is created with BIOS instead of EFI despite the configuration. Most probably the
OVMFpackage is missing on the Compute Resource (CR). VM is created with EFI, but libvirt cannot detect the EFI firmware files on the CR and returns an error during creation. This occurs on the latest AlmaLinux (see the workaround below). RHEL-based distributions have dropped i440fx support, so the firmware configuration required for i440fx + UEFI is not present out of the box on the host.
The issue is recognised and considered as a product issue with the internal ID SVM2-6401
- AMD CPUs are not supported. No fix is available.
Debian-based systems are not affected at the moment. The issue occurs on AlmaLinux 9 and later.
Resolution
Note: SolusVM 2 generates this configuration itself after the fix - update SolusVM 2 installation to 2.0.0-36494 Stable.
-
Collect diagnostic information from the CR and share it with SolusVM Support for a faster permanent fix:
# ls -la /usr/share/qemu/firmware
# grep -n . /usr/share/qemu/firmware/*
# grep -w nvram -A10 /etc/libvirt/qemu.conf
# rpm -V edk2-ovmf-20230524-4.el9_3.noarch -
Check whether the
OVMFpackage is installed (the package is required if not present):RPM-based systems:
# rpm -qa | grep -i ovmf
DEB-based systems:
# dpkg -l | grep -i ovmf
-
Provide the full XML definition of the VM
# [root@something ~]# virsh dumpxml UUID > /root/name.xml
Note: The UUID is shown in the SolusVM 2 Admin panel: Virtual Machines > open the VPS in question > Machine UUID below the VPS name.
Note: Ensure the VM uses VIRTIO and EFI in the UI settings.
- Apply the fix on the CR (AlmaLinux):
-
Create a copy of the firmware descriptor:
# cp /usr/share/qemu/firmware/50-edk2-ovmf-x64-nosb.json /usr/share/qemu/firmware/90-edk2-ovmf-x64-nosb.json
-
Edit the new file with
nanoorvimand replacepc-q35-*withpc-i440fx-*. - Reboot or reinstall the VM
As a result, the VM boots as expected.
Comments
Please sign in to leave a comment.