KVM virtio disk drivers for Windows SVR 2016?

Server Fault asked:

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?

My answer:

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

View the full question and any other answers on Server Fault.

Creative Commons License
This work is licensed under a Creative Commons Attribution-ShareAlike 3.0 Unported License.