I ran into an issue after migrating a Windows VM to Qubes OS.
Symptoms:
- Windows VM was imported from VMware / converted disk image.
- UEFI boot worked.
- The VM sometimes reached the Windows login screen.
- At or shortly after login, the VM froze, reset, or the window closed.
- It looked like a Windows boot/driver/storage issue at first.
Relevant Xen log:
p2m_pod_demand_populate: DomXX out of PoD memory!
domain_crash called from arch/x86/mm/p2m-pod.c
The VM had a very high memory setting, around 20 GB, on a system with about 31 GB RAM.
Fix/workaround:
qvm-shutdown --wait <VMNAME>
qvm-prefs <VMNAME> memory 8192
qvm-prefs <VMNAME> maxmem 8192
qvm-prefs <VMNAME> vcpus 4
qvm-prefs <VMNAME> debug true
qvm-start <VMNAME>
After setting memory and maxmem to the same smaller fixed value, the Windows VM booted and reached the desktop normally.
So if a migrated Windows HVM appears to hang/crash around login, check hypervisor.log for:
out of PoD memory
It may not be a broken Windows installation or bad migration, but Xen/Qubes memory overcommit / PoD behavior caused by too high maxmem.
By the way: I run the VM from a external SSD.