I'm trying to setup a Windows 2016 server under KVM (Virt-Manager) on Debian 9 using the WinSvr_STD_CORE_2016_64Bit_-4_DC_STD_X21-70526 flavored ISO. In the past, virtio drivers from Fedora would usually work to get a Windows VM up and running. The 2016 server edition doesn't seem to be able to use any of the latest Virtio drivers however. Selecting W2k16 (or any other directory) on the mounted Virtio ISO results in "No device drivers were found. Make sure that the installation media contains the correct drivers, and then click OK" Is there some other way to get a Windows 2016 VM up and running under KVM?

  • Eh? It works fine for me and everyone else. How did you configure the virtual disk? What version of virtio-win did you use? Apr 26, 2019 at 2:28
  • Have you tried it recently? I suspect something has changed in 2016 that made the latest virtio drivers incompatible. Virtual disk was made inside virt-manager. Using virtio 126 and 141. Screencast is here youtube.com/watch?v=jIz0w6mjDCM Apr 26, 2019 at 13:33
  • Um, don't use "IDE" disks. That won't work. Use SCSI, with a Virtio-SCSI Controller added, and SATA CDROM drives. Use Q35 for the machine type, not I440FX. Apr 26, 2019 at 16:48
  • Changed to SCSI in virt-manager. machine=pc-q35-2.5 via virsh edit I get error: internal error: PCI bus is not compatible with the device at 0000:00:1e.0. Device requires a PCI Express slot, which is not provided by bus 0000:00 Failed. Try again? [y,n,i,f,?]: Is this talking about the virt config, or the metal it's running on? Apr 26, 2019 at 18:15
  • You can't change the machine type without a large amount of trouble, so much that it's best to just recreate the VM with the correct machine type to start with. Apr 26, 2019 at 18:17

1 Answer 1


This is how I install Windows on KVM with proper virtio storage drivers for best performance.

This example uses Server 2019, but the process is virtually identical for previous versions of Windows back to 2008/Vista.

First, create the VM.
New VM step 1

Select your ISO image and your edition of Windows.
New VM step 2

Select to customize the VM before install.
New VM step 5

Select the Q35 chipset. It is the default now, but older versions of virt-manager default to I440FX.
New VM overview

You could begin the installation now with SATA drives and no virtio storage drivers, but performance will be poor.
New VM SATA Disk 1

Change the disk bus to SCSI.
New VM SCSI Disk 1

Click Add Hardware. Select Controller on the left. On current virt-manager versions, SCSI and VirtIO SCSI will be preselected. On old versions, select them yourself. Then click Finish.
New VM Add SCSI Controller

Click Add Hardware. Add the virtio-win ISO image as an SATA CDROM. Then click Finish.

Now you can click Begin installation. Windows installation starts.

There is no disk shown. Click Load Driver.
Windows select disk (empty)

Click Browse.
Windows Load Driver dialog

Select the virtio-win ISO image and expand it using the arrow.
Windows Browse for Folder 1

Select the folder named vioscsi and expand it using the arrow.
Windows Browse for Folder 2

Select the folder named for your Windows edition, then the folder named amd64 (or x86 if you are installing 32-bit Windows). Use win2k16 for both Server 2016 and Server 2019 until a future virtio-win update provides a win2k19 build. Then click OK.
Windows Browse for Folder 3

The Red Hat VirtIO SCSI pass-through controller driver appears. Click Next.
Windows driver selection

The virtual disk now appears. Click Next.
Windows disk selection

The Windows installation begins. Wait for it to finish.
Windows copying files

Installation is finished and Windows is ready to use.
Windows Server Core

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .