Linux – Windows 10 in KVM: change boot disk to Virtio

linux-kvmwindows 10

I have installed a Windows 10 virtual machine using an IDE disk and would now like to change the disk to use the Virtio driver.

For other versions of Windows, the approach in this question seems to be sufficient – How to migrate an IDE VM to a virtio VM?

However with Windows 10, this leads to an INACCESSIBLE_BOOT_DEVICE issue.

I am aware that the preferred approach is the use the Virtio device from the start and install the appropriate virtio driver when prompted. Unfortunately I was having some separate issues with changing the CD in KVM (I couldn't get 2 CDROM devices to work either).

Is there any way to correct this issue without reinstalling?

Similar issue here – https://me.m01.eu/blog/2015/03/windows-10-kvm-and-iscsi/#comment-36090

Best Answer

All the answers are correct but you may need to perform few additional steps after you have installed virtio drivers. Here are the steps I followed:

  1. Open an elevated command prompt and set the VM to boot into safe mode by typing

    bcdedit /set {current} safeboot minimal

  2. shut-down the VM and change the boot device type to virtio.

  3. boot the VM. It will enter in safe mode.

    Note: In Safe mode all boot-start drivers will be enabled and loaded, including the virtio driver. Since there is now a miniport installed to use it, the kernel will now make it part of the drivers that are to be loaded on boot and not disable it again.

  4. in the booted VM reset the bcdedit settings to allow the machine to boot into the Normal mode by typing (in elevated command prompt again):

    bcdedit /deletevalue {current} safeboot

  5. Done.