Imported VM Starts but Does Not Initialize the Display
-
Good-day Folks,
MY ENVIRONMENT (At Home):
- XCP-ng v8.3 running as a VM inside VMware Workstation Pro v17 (based on guidance from https://docs.xcp-ng.org/guides/xcpng-in-a-vm/)
- XOC built last night using @ronivay script.
My Proof-of-Concept for an Air-Gapped environment is going well. I'm testing the VM Export and Import feature, so I exported a VM from my air-gapped lab environment and imported into a test lab I spun up at home. The import appears to have completed successfully - at least I don't see any obvious errors. However, when I start the VM, this is what I'm seeing on the console:
The host console shows that the VM is running but strangely doesn't show any memory usage and I'm unable to modify the dynamic memory allocation from the Advanced tab of the VM either - it's almost as if the field is in read-only mode. I can click into it, but it doesn't accept any input. Additionally, I haven't see the VM grab a DHCP lease yet, so I'm not convince it has booted up to the OS.
Anybody run into this before?
-
Quick update, I created a fresh VM and attached the same VDI to it - still getting the same error message.
-
Quick update to the situation.
I imported the VM to another XCP-ng host I run at my church (rebuilt with v8.3) and the VM started up without any issues. So looks like the issue in my home lab may be related to nested-virtualization (although not sure exactly what).
If someone has any ideas that would be awesome, cos I'd love to be able to experiment in a virtualized environment.
-
Are you sure you are booting in the same mode than the original platform? (BIOS or UEFI)
-
@olivierlambert Yes sir, both are configured to boot UEFI. I didn't make any changes.
I did notice, however, that in my virtualized environment (the one where I'm having the problem), the VM doesn't show the button to copy the secure boot certificates to the VM. See screenshots below.
PHYSICAL ENVIRONMENT (Where the VM boots successfully
VIRTUALIZED ENVIRONMENT (Where the VM fails to boot
-
@stormi does this ring a bell?
-
-
Regarding the "Copy the pool's default UEFI certificates to the VM" button, I believe it is only displayed if the pool was setup for Secure Boot first. However, an imported VM comes with its own certificates, so if it was booting up correctly with Secure Boot enforced before the export, it should still do so after an import, regardless of the pool state.
Does it boot if you set Secure Boot to not enforced? I don't think it will, be let's try anyway.
-
@stormi I turned off
Secure Boot
and it's the same result. VM starts (according to the log) but doesn't proceed to POST. -
@kagbasi-ngc So I believe this has more to do with nested virtualization. Does the XCP-ng VM have all the required virtualization capabilities?
-
@stormi Sorry for the delayed response. Yes, the XCP-ng VM has all the virtualization capabilities (as recommended in this guide- https://docs.xcp-ng.org/guides/xcpng-in-a-vm/). See screenshot below.
-
-
@Danp Well, that certainly puts a nail in this coffin...lol. Thanks for sharing, I'll stop testing then.
@olivierlambert should we leave this thread as unsolved until such time as nested virtualization is functional again within the codebase?
-
Can you try with XCP-ng 8.2?
-
@Danp This is about hypervisors nested inside XCP-ng 8.3, but here as I understood it it was XCP-ng nested inside another hypervisor, so in theory it should not be related.
-
@olivierlambert So I managed to whip up a v8.2.1 instance and attempted to import the VM, but the import wouldn't start. I simply get the message in the top-right - "Starting import" - then it would go away.
I couldn't find any errors on the host logs, but I found this error within XO itself (i.e., Settings > Logs) :
My takeaway from this is that I cannot export a VM from a newer host and import it into an older one.
-
Note: you cannot import a VM from a more recent XCP-ng to an older one (the opposite works though)
-
@olivierlambert Hmm, so why would you encourage me to try it, if you knew it wouldn't work....lol.
-
I encouraged you to test if nested XCP-ng 8.2 worked better than 8.3, that's it.
-
@olivierlambert Okay, so I'm at fault for reading too much into your guidance, eh? Okay.
In that case then, I think we'd already established that nested virtualization works - because I have been able to add an SR, create VMs, add VDIs, etc., in the nested virtualization environment on 8.3. The only thing that was failing for me, which is the primary reason for standing it up, is the import of a VM.
So is it safe to say this is not likely an issue with nested virtualization but with something else in the codebase that's preventing the imported VM from successfully initializing the display when in UEFI mode?
-
@kagbasi-ngc I'd check the output of
xl dmesg
and the contents of/var/log/daemon.log
and/var/log/xensource.log
after trying to start the VM.