Broken boot for VMs for many distros due to incompatibility with patched GRUB
Description:
After upgrading to edk2-ovmf 202505-1, qemu virtual machines that were previously working perfectly fail to boot. In my case the distributions affected were Fedora Workstation 42 (both existing VM and original install/live ISO) as well as existing and up-to-date NixOS VMs. I didn't test any other distributions, but similar problems have been reported for Debian, Rocky Linux, Alma Linux.
The environment used is virt-manager on the desktop, although the issue can be replicated running the VM from the console using virsh without a GUI. In the virt-manager UI, the issue manifests itself as a failure of the VM to complete boot after leaving the GRUB menu. After selecting the menu entry in GRUB, the viewing window remains completely black with a single unblinking underscore at top left. The VM CPU graph increases to about 60-70% and stays there for as long as I was willing to wait (20 mins max). The VM is unresponsive to shutdown or reboot commands, as well as key combinations like CTRL-ALT-DEL. The only thing that works is forced shutdown or reboot (which just returns the VM to the state already described). The logs for the VM yield no useful information - just the normal messages until boot hangs, then messages describing shutdown when the VM is forced to do so.
Creating a new VM in virt-manager using default settings and just ISO images for Fedora and NixOS yields the same result. They just won't boot in any mode, including rescue mode.
Downgrading to edk2-ovmf 202411-1 restores full functionality and everything described above works as expected.
Additional info:
- package version(s): edk2-ovmf 202505-1 (doesnt' work), edk2-ovmf 202411-1 (works)
- config and/or log files: None
- link to upstream bug report, if any:
- A possible fix was posted to the tianocore github, but apparently not merged yet: https://github.com/tianocore/edk2/pull/10667
Steps to reproduce:
- Upgrade to edk2-ovmf 202505-1
- Start VM using virt-manager or virsh
- VM fails to complete boot.
Expected result: VM boots normally