Return to

Windows VM will not boot when AMD Driver is enabled in Guest

I have a PCIE Pass through that has worked solidly for over a year. Recently, while doing an AMD Driver update to the Windows guest VM, my guest system crashed. Unable to bring it back i hard reset it. This unfortunately caused Windows to go haywire, requiring me to system restore it. Ever since this change, I have been unable to boot Windows as a VM. My setup uses a dedicated SSD on its own SATA controller passed through to the guest, so i have tested by booting directly to the guest as a standalone system using the Windows Boot Manager. In this config, the system boots fine. Booting from within linux causes the system to freeze on the circle of dots boot sequence of windows. If I boot the system either in safe mode or with the GPU not passed, the windows VM boots fine within the Arch host.
Does anyone have any idea of what could possibly be causing this behavior?

Ive since made a number of attepts. Ive:
Re-installed windows
Attempted adding the reset patch to my Kernel
Rolled back my AMD driver to a version I know worked
Used a different storage device for Windows (More out of desire to swap over as I installed windows again than hope it would resolve it)

can you check if iommu is enabled, type

dmesg | grep IOMMU 
~> dmesg | grep IOMMU 
[    1.152522] pci 0000:00:00.2: AMD-Vi: IOMMU performance counters supported
[    1.155502] pci 0000:00:00.2: AMD-Vi: Found IOMMU cap 0x40
[    1.156070] perf/amd_iommu: Detected AMD IOMMU #0 (2 banks, 4 counters/bank).
[    1.175556] AMD-Vi: AMD IOMMUv2 driver by Joerg Roedel <[email protected]>

Not sure if this will help as you seem to have tried a lot of different things already.

But, i had a similar issue while trying to update my radeon driver on my windows 10 vm (running fedora as host).
Trying to update my RX480 to the latest driver resulted in a crash mid-install, and then my VM would not boot, getting stuck at the circle. My VM is qcow image so i wasn’t able to test it booting up other ways, and i was trying to avoid having to reinstall everything yet again. (first time i tried updating the drivers, and it crashed i just deleted the VM and created a new one and reinstalled windows from scratch).
But, i was able to fix my VM by going in windows startup repair, and thru the command line, I used DISM to manually remove the radeon drivers. Then, my vm actually started up again normally.

And then after some research and testing i found that most of the 19.x.x radeon drivers caused the same issue. I finally found 18.9.3 drivers installed fine and my system has been working ever since. Obviously, this driver version probably won’t work if you have a much newer card which requires those 19.x.x drivers.
Also, i should note, that the windows version i installed was the 1903 version.

Again, im not sure if any of this will help you, but thought i would share, just in case it does.

I appreciate you sharing the information. What is a qcow image?
Il try an even earlier driver version. The one I have installed now I know worked previously, but as long as an earlier version will support my card I can keep pushing earlier. Really cannot hurt.

I attempted to manually unbind and rebind the devices using echo "0000:30:00.0" >/sys/bus/pci/drivers/vfio-pci/bind . Still no luck.

Okay, weirdly enough, while reverting to 18.9.3 did not fix the issue, it did result in a 1 time change in response. The first time I booted the VM after reverting to 18.9.3, the VM got past the inital circle and went into a “Preparing devices” circle. After this, it went into a black screen and locked (stuck > 10 min). Every restart after has done the same old circle of dots, even after rebooting the host.
This issue only gets more confusing.

any way to boot into windows with no drivers installed?

Can and have. Is there something i should test for?

QCOW image = Instead of passing thru a SATA controller and bare drive, you create an image file and that serves as the VM’s “hard drive”. In my case, 400GB file for use on my windows 10 vm.

What are the boot parameters that arch linux is booting up with?
and also, can you list your IOMMU groups

can you boot the vm with the gpu attached with no amd driver