VirtIO drivers are paravirtualized device drivers for KVM. Instead of emulating a real disk controller or network card, which is slow, the guest uses a simple interface designed for virtual machines. The result is much better disk and network performance with less CPU use.
Before you start
- A KVM host or a KVM VPS. Linux guests already include the drivers; Windows guests need them installed.
- For Windows: the
virtio-winISO published by the Fedora project.
VirtIO device types
| Device | Purpose | Linux module |
|---|---|---|
| virtio-blk | Simple fast block disk | virtio_blk |
| virtio-scsi | SCSI controller, supports TRIM/discard and many disks | virtio_scsi |
| virtio-net | Network card | virtio_net |
| virtio-balloon | Lets the host reclaim unused guest RAM | virtio_balloon |
| virtio-rng | Entropy from the host | virtio_rng |
Check VirtIO drivers on Linux
lsmod | grep virtioAlso check device names: virtio-blk disks show as /dev/vda, virtio-scsi as /dev/sda with a QEMU model in lsblk -o NAME,MODEL. For the NIC:
ethtool -i eth0 | grep driverIt should say virtio_net. If you see e1000 or an IDE disk, ask your provider or change the VM's device model on the host.
Enable VirtIO on a KVM host
- virt-install: use
bus=virtioon disks andmodel=virtioon networks. - libvirt XML:
<target dev='vda' bus='virtio'/>and<model type='virtio'/>. - Proxmox VE: choose VirtIO SCSI single controller and VirtIO (paravirtualized) network.
Install VirtIO drivers on Windows
- Attach the
virtio-winISO as a second CD-ROM alongside the Windows ISO. - During Windows setup, when no disk appears, click Load driver, browse to the ISO and pick
viostor(virtio-blk) orvioscsi(virtio-scsi) for your Windows version. - After installation, run
virtio-win-guest-tools.exefrom the ISO to install network, balloon and other drivers plus the QEMU guest agent. - Check Device Manager for any remaining unknown devices.
See mounting a custom ISO in Virtualizor if your VPS panel supports it.
Troubleshooting
- Windows installer shows no disks: load the virtio storage driver as above.
- Windows boots to blue screen after switching to VirtIO: add a small temporary virtio disk first so Windows installs the driver, then switch the boot disk.
- Slow network on Linux: confirm
virtio_netand enable multiqueue on the host for busy VMs.
Frequently asked questions
Is VirtIO paravirtualization?
Yes. The guest knows it is virtualized and uses an optimized interface, while the CPU itself still uses hardware-assisted virtualization.
virtio-blk or virtio-scsi?
virtio-scsi is usually preferred today for discard support and scaling; virtio-blk is simpler with very low latency.
Do I need the QEMU guest agent?
It is optional but recommended: it enables clean shutdowns, consistent snapshots and IP reporting.
