Windows VirtIO Drivers
Introduction
VirtIO Drivers are paravirtualized drivers for kvm/Linux (see http://www.linux-kvm.org/page/Virtio). In short, they enable direct (paravirtualized) access to device and peripherals to virtual machines using them, instead of slower, emulated, ones.
A quite extended explanation about VirtIO drivers can be found here http://www.ibm.com/developerworks/library/l-virtio.
At the moment this kind of devices are supported:
- block (disks drives), see Paravirtualized Block Drivers for Windows
- network (ethernet cards), see Paravirtualized Network Drivers for Windows
- baloon (dynamic memory management), see Dynamic Memory Management
Usually using VirtIO drivers you can maximize performances, but this depends on the availability and status of guest VirtIO drivers for your guest OS and platform.
Windows OS support
While recent Linux kernels already have those drivers so any distribution, running in a kvm VM, should recognize virtio devices exposed by the kvm hypervisor, all current Windows OS need special drivers to use virtio devices. Microsoft does not provide them, so someone kindly managed to make virtio drivers available also for windows systems.
See
- http://www.linux-kvm.org/page/WindowsGuestDrivers
- http://www.linux-kvm.org/page/WindowsGuestDrivers/Download_Drivers
Following info on those page you can find:
- a git repository: https://github.com/YanVugenfirer/kvm-guest-drivers-windows
- this is the source for the Windows drivers and is hosted in a repository on GIT hub. Anonymous users can clone the repository
Packaged sets of drivers
Each of those "packaged" sets of drivers available is labelled with a numeric release, and differs by features & bugs as it improves through the time.
- Most recent set is virtio-win-0.1.103.iso (see also changelog)
- Previous versions could still be useful when, as it happens, some Windows VM shows instability or incompatibility with latest drivers set.
- a web repository https://fedoraproject.org/wiki/Windows_Virtio_Drivers
In the iso there are several dirs, with subdir for each supported OS version (2k12, 2k12R2, 2k3, 2k8, 2k8R2, w7, w8, w8.1, xp):
- Balloon
- guest-agent
- NetKVM
- pvpanic
- qemupciserial
- qxl
- qxldod
- viorng
- vioscsi
- vioserial
- viostor
Choose the right driver (version <= 0.1-103)
In the iso file provided by Fedora Project drivers for different Windows versions are available, in several folders.
The folder names can be a bit confusing, since they refer to the Microsoft legacy naming (i.e. lh=longhorn, that is Vista): you can refer to the schema below (showing also block/baloon drivers folder names):
OS | Numeric version | dir for Storage / Balloon | dir for Network |
---|---|---|---|
W2008 R2 / Windows 7 | 6.1 | Win7 (32/64) | Win7 (32/64) |
W2008 / Vista | 6.0 | Wlh (32/64) | Vista (32/64) |
W2003 | 5.2 | Wnet (32/64) | XP (32/64) |
XP | 5.1 - 32bit, 5.2 - 64bit | WXp (32 only) | XP (32/64) |