Debug VM Boot
-
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.
-
Correct. Enabling "VGA" fixed the hanging portion of the issue. I can log in and use the VM now.
I still get garbled lines during initrd and before the login prompt, but I suspect that is a Guix issue, because the same behavior happens in Proxmox and XCP-ng.
-
Do you have enough graphic memory in the VM? Or memory at all? Also, is there any vga mode in the kernel option in Grub?
-
I do have memory assigned to the VM.
- Static: 128MiB/8GiB
- Dynamic: 8GiB/8GiB
I did not see an entry for graphics memory, and that was because VGA was turned off in XO.
I do not know how to check GRUB's command-line arguments at boot-time, so I cannot answer your VGA mode question.
However, your VGA suggestion led me to the VGA option in the Advanced tab for the VM. That was previously turned off. If I turn on VGA, then I have access to a "Video RAM" dropdown that I can fill in. Once I turned on the VGA option, I was able to boot all the way.
This is a server VM, so I do not need a large amount of graphics memory.
-
Just to be sure I understand: as soon you enabled VGA on, the issue disappear, right?
-
Correct. Enabling "VGA" fixed the hanging portion of the issue. I can log in and use the VM now.
I still get garbled lines during initrd and before the login prompt, but I suspect that is a Guix issue, because the same behavior happens in Proxmox and XCP-ng.
-
great news then
-
-