VirtIO drivers for Windows Server 2012 R2, 2016, 2019, 2022 and 2025
Windows Server does not include drivers for the paravirtualized devices KVM offers. Until you install them, a VM on Proxmox VE, oVirt / OLVM or HPE VM Essentials has no fast disk controller, no VirtIO network card and no guest agent. The drivers come on the virtio-win ISO, published by the Fedora project, with one folder per driver and one subfolder per Windows version.
What each driver does
Storage. vioscsi drives the VirtIO SCSI controller, the one Proxmox recommends for Windows, and viostor drives VirtIO Block. Without the one that matches the controller of the system disk, Windows stops with INACCESSIBLE_BOOT_DEVICE.
Network. NetKVM drives the VirtIO network card. Without it the VM has no network unless you give it an emulated Intel E1000 card.
Guest agent. vioserial provides the channel the QEMU guest agent talks through, and the agent itself is a separate installer on the same ISO, under guest-agent. Balloon handles memory ballooning. The rest, such as viorng and viogpudo, are optional.
Every driver folder on the ISO has a subfolder per Windows version: 2k16 for Windows Server 2016, 2k19 for 2019, 2k22 for 2022 and 2k25 for 2025, plus w10 and w11 for the desktop editions. Inside each one, amd64 is the 64-bit build. For Windows Server 2012 and 2012 R2 the folders are 2k12 and 2k12R2, and the ISO to use is 0.1.215, the last one with a valid signature for those versions.
Install the VirtIO drivers by hand
On a Windows that already boots, the installer does everything. The command line is for servers without a desktop and for automation, and the Load driver step is for a fresh installation.
- 01Download the virtio-win ISO
Get virtio-win.iso from the Fedora project direct downloads. The stable build is the conservative choice. For Oracle Linux Virtualization Manager, Oracle publishes its own Oracle VirtIO Drivers for Windows.
- 02Attach the ISO to the VM
Mount it as a CD-ROM on a SATA or IDE bus, which Windows can read without any extra driver.
- 03Run the installer
virtio-win-guest-tools.exe installs every driver and the QEMU guest agent in one pass. virtio-win-gt-x64.msi installs the drivers only.
- 04Or install from the command line
From an elevated prompt, add each driver from the folder of your Windows version. The example is Windows Server 2022.
pnputil /add-driver E:\vioscsi\2k22\amd64\*.inf /install pnputil /add-driver E:\NetKVM\2k22\amd64\*.inf /install pnputil /add-driver E:\vioserial\2k22\amd64\*.inf /install pnputil /add-driver E:\Balloon\2k22\amd64\*.inf /install - 05On a fresh Windows Server installation
When Setup shows no disks, choose Load driver and browse to vioscsi, then the folder of your version, then amd64 on the virtio-win ISO. The disk appears and the installation continues.
- 06Check the result
No device should be left with a yellow mark in Device Manager, and the hypervisor should show the IP address of the VM, which proves the guest agent answers.
How Moov handles the drivers
In a migration with Moov you install nothing by hand inside Windows. Moov injects five drivers: the two storage ones with the VM powered off, because Windows cannot boot without them, and the other three on the first boot on the target.
Download the appliance
- Storage: vioscsi and viostor are injected with the VM powered off, as files and in the registry, so Windows finds its disk on the very first boot.
- Network, memory and serial: NetKVM, Balloon and vioserial are copied to the disk with the VM powered off, and Windows installs them on its first boot on the target.
- The QEMU guest agent is installed on that same first boot.
- virtio-win 0.1.271 is the default. The appliance also carries 0.1.302, 0.1.285 and 0.1.215, which Moov uses on its own for Windows Server 2012 and 2012 R2, and you can upload other virtio-win ISOs under Settings › Driver packages.
- For OLVM targets you can upload and use the Oracle VirtIO Drivers for Windows.
- The driver package is chosen per target connection or per VM, under Advanced.
- Windows Server 2016 gets its own VirtIO drivers, and static IPs are kept on guests with several network cards, matched by MAC.
Frequently asked questions
- Which virtio-win version should I use?
- The stable build from the Fedora project is the safe default. Moov uses 0.1.271 by default and also ships 0.1.302 and 0.1.285, the latter marked in the console with its known bug.
- Do the VirtIO drivers work on Windows Server 2025?
- Yes. Recent virtio-win ISOs carry a 2k25 folder for each driver. In Moov, VirtIO injection covers Windows Server 2012 and later, Windows Server 2025 included.
- What about Windows Server 2012 R2 or 2008 R2?
- For Windows Server 2012 and 2012 R2, Moov brings virtio-win 0.1.215, the last one with a valid signature for those versions, and uses it on its own when needed. If you install by hand, or for 2008 R2, check that the ISO you download still has a folder for that version, 2k12R2 or 2k8R2: recent builds dropped the oldest systems, and the Fedora archive keeps the older ISOs.
- Can I install the VirtIO drivers before leaving VMware?
- You can run the installer on VMware, but it only stages the drivers. With no VirtIO device present, Windows does not set the storage driver to load at boot, so the first boot on VirtIO SCSI can still fail with INACCESSIBLE_BOOT_DEVICE.
- Do I need them on HPE VM Essentials and OLVM too?
- Yes. Both run on KVM, so Windows guests use the same VirtIO devices. On OLVM, Oracle recommends its own Oracle VirtIO Drivers for Windows.