Proxmox – BSODs after importing Hyper-V guest(s) during boot

Proxmox – BSODs after importing Hyper-V guest(s) during boot

So after migrating from Hyper-V to Proxmox I’ve encountered some issues for getting my Windows guests (server 2016/2019 and 2022) to boot properly. It seems that installing the VirtIO drivers prior exporting is not a workable solution. At least not for me.

Similar issues were experienced with XCP-NG before I made the switch to Proxmox (due to performance issues that were not related to this).

Errors encountered

Boot error 1 “UEFI boot shell” loop

Proxmox UEFI boot shell loop

Boot error 2 “System thread exception not handled”

Proxmox BSOD “System thread exception not handled”

Boot error 3 “Page fault in nonpaged area”

Proxmox BSOD “Page fault in nonpaged area

Solutions

Solving error 1

When you keep looping in the “UEFI boot shell“, it’s very easy to resolve as you simply need to select the correct UEFI and boot settings for your guest.

VM hardware settings
VM Options

Solving error 2

The “System thread exception not handled” is caused by the missing VirtIO drivers in Windows.

Do the following;

  1. Download the VirtIO driver ISO from the Fedora Project site.
  2. Boot your Windows into safe mode.
  3. Click on Advanced Options.
  4. Open the Command prompt option.
  5. If you run “wmic logicaldisk get caption” you will get a list of the currently available drives that are loaded. You’ll notice that the C:\ drive is missing from this list!
  6. Install the correct driver for the disk controller you are using!
    • ATA/SATA use the “VIOSTOR” version
      • drvload D:\viostor\2k22\amd64\viostor.inf
    • SCSCI use the “VIOSCSCI” version
      • drvload D:\vioscsi\2k22\amd64\vioscsi.inf
  7. Then run the “wmic logicaldisk get caption” command again, if you see the C-drive listed and it’s accessible, you can then proceed with injecting the driver into the C-drive using DISM command.
  8. Injecting the driver “dism /image:c:\ /add-driver /driver:d:\vioscsi\2k22\amd64\vioscsi.inf“, make again sure you are using the correct driver version for your disk controller.
  9. Reboot and check Windows is now loading correctly.

Solving error 3

Unfortunately, the “Page fault in nonpaged area” is the most trickiest of all 3 to resolve.

Either do this from the original hypervisor followed by a new export and import or from Proxmox with a working and stable boot that’s solved in error 2.

You will need to be able to boot into repair mode and doing the following steps;

  1. Boot your Windows into safe mode.
  2. Click on Advanced Options.
  3. Open the Command prompt option.
  4. Run the following commands and let them do their magic
    • sfc /scannow
    • chkdsk OS-DRIVELETTER /f /r /x
  5. Reboot and check Windows is now loading correctly.

Finally

Make sure to install the full VirtIO driver package once you are booted succesfully into Windows!

This includes the Qemu guest agent to allow (memory) ballooning to properly work and report back your client’s resource usage!

In case it’s still isn’t working for you, then you will need to troubleshoot it further and might test it on the original hypervisor.

For me the steps in all 3 errors resolved my issues with Proxmox/ XCP-NG

Comments

No comments yet. Why don’t you start the discussion?

Leave a Reply

Your email address will not be published. Required fields are marked *