I am trying to debug why a virtual machine refuses to finish booting. I believe I have narrowed down the problem to using UEFI as the firmware, though the UEFI is not the core problem.
When booting, UEFI executes properly. I see the TianoCore logo, I can get into the UEFI settings page and change settings. From there, UEFI loads GRUB from disk. GRUB displays properly and selects a boot option properly.
The problems begin when GRUB loads the initrd. The initrd has garbled output (the characters per-line are not lining up to actually form legible characters). This continues throughout the boot until the VM makes more progress, until it eventually hangs on a pink garbled screen (Screenshot included) forever.
Once the VM reaches this point, nothing happens and there is no activity. During the initrd stage, XCP-ng and XO record CPU, memory, and disk activity. Once the pink screen happens, there is no activity.
I believe I have narrowed this down to UEFI because I duplicated this VM and switched its firmware to BIOS, did a re-install, and everything worked perfectly. I never have this hanging or garbled line output happening when using BIOS firmware.
Host Details:
- Up-to-date on patches
- Build number: release/yangtze/master/58
- Version: 8.2.1 ()
Guest Details:
- Guix System from commit
hw8j6ygy3qx0ciq8v3qwl4zz6jrj3srw
- Install went fine
- UEFI Boot
- No Disk encryption
- No guest tools
I have already discussed this with the Guix community, and they see no reason why this would be happening, and I agree with them. I am using UEFI firmware on all of my physical machines (1 desktop and 2 laptops) with Guix and everything is working correctly.
I have tried replicating this setup in Proxmox as well (TianoCore UEFI). I get the same screen garbling in the initrd, and early kernel, but the initrd completes and the VM boots completely. Once I reach the login prompt (or more likely init
), the screen fixes itself, showing legible text. Proxmox's monitoring tools show signs of system activity throughout this whole process.
To be clear, I am fine using BIOS as the firmware here, but I want to understand why UEFI is causing problems with the VM.