Difference between revisions of "Windows VirtIO Drivers"

From Proxmox VE
Jump to navigation Jump to search
 
(33 intermediate revisions by 10 users not shown)
Line 1: Line 1:
 
==Introduction==
 
==Introduction==
VirtIO Drivers are paravirtualized drivers for [[KVM|kvm]]/Linux (see http://www.linux-kvm.org/page/Virtio).  
+
VirtIO Drivers are paravirtualized drivers for [[KVM|kvm]]/Linux (see http://www.linux-kvm.org/page/Virtio). In short, they enable direct (paravirtualized) access to devices and peripherals for virtual machines using them, instead of slower, emulated, ones. <br>
 
A quite extended explanation about VirtIO drivers can be found here http://www.ibm.com/developerworks/library/l-virtio.
 
A quite extended explanation about VirtIO drivers can be found here http://www.ibm.com/developerworks/library/l-virtio.
  
In short, they enable direct (paravirtualized) access to device and peripherals to virtual machines using them, instead of slower, emulated, ones.
+
At the moment these kind of devices are supported:
 +
* block (disks drives), see [[Paravirtualized Block Drivers for Windows]]
 +
* network (ethernet cards), see [[Paravirtualized Network Drivers for Windows|Paravirtualized Network Drivers for Windows]]
 +
* balloon (dynamic memory management), see [[Dynamic Memory Management]]
 +
 
 +
You can maximize performances by using VirtIO drivers. The availability and status of the VirtIO drivers depends on the guest OS and platform.
 +
 
 +
== Windows OS Support ==
 +
 
 +
Windows does not have native support for VirtIO devices included.
 +
But, there is excellent external support through opensource drivers, which are available compiled and signed for Windows:
 +
 
 +
https://fedorapeople.org/groups/virt/virtio-win/direct-downloads/archive-virtio/?C=M;O=D
 +
 
 +
Note that this repository provides not only the most recent, but also many older versions.
 +
Those older versions can still be useful when a Windows VM shows instability or incompatibility with a newer driver version.
 +
 
 +
The binary drivers are digitally signed by Red Hat, and will work on 32-bit and 64-bit versions of Windows
 +
 
 +
== Installation ==
 +
 
 +
=== Using the ISO ===
 +
 
 +
You can [https://fedorapeople.org/groups/virt/virtio-win/direct-downloads/stable-virtio/virtio-win.iso download the latest stable] or you can [https://fedorapeople.org/groups/virt/virtio-win/direct-downloads/latest-virtio/virtio-win.iso download the most recent] build of the ISO.
 +
Normally the drivers are pretty stable, so one should try out the most recent release first.
  
At the moment this kind of devices are supported:
+
You can access the ISO can in a VM by mounting the ISO with a virtual CD-ROM/DVD drive on that VM.
* block (disks drives), see [[Paravirtualized Block Drivers for Windows|Paravirtualized Block Drivers for Windows]]
+
 
* network (ethernet cards), see [[Paravirtualized Network Drivers for Windows|Paravirtualized Network Drivers for Windows]]
+
==== Wizard Installation ====
* baloon (dynamic memory management), see [[Dynamic Memory Management|Dynamic Memory Management]]
+
[[File:Win10-virtio-driver-wizard.png|Wizard Installation|thumb|right]]
 +
You can use an easy wizard to install all, or a selection, of VirtIO drivers.
 +
 
 +
# Open the Windows Explorer and navigate to the CD-ROM drive.
 +
# Simply execute (double-click on) '''virtio-win-gt-x64'''
 +
# Follow its instructions.
 +
# (Optional) use the '''virtio-win-guest-tools''' wizard to install the [[Qemu-guest-agent|QEMU Guest Agent]] and the [[SPICE]] agent for an improved remote-viewer experience.
 +
# Reboot VM
  
KVM Guest OS Support Status, far all OS/platforms, can be found here: http://www.linux-kvm.org/page/Guest_Support_Status
+
==== Manual Installation ====
  
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.
+
# Open the Windows Explorer and navigate to the CD-ROM drive.
 +
#: There you can see that the ISO consists of several directories, each having sub-directories for supported OS version (for example, 2k19, 2k12R2, w7, w8.1, w10, ...).
 +
#* Balloon
 +
#* guest-agent
 +
#* NetKVM
 +
#* qxl
 +
#* vioscsi
 +
#* ...
 +
#: [[File:Win10-virtio-driver-manual.png|Manual Installation|thumb|right]]
 +
# Navigate to the desired driver directories and respective Windows Version
 +
# Right-click on the file with type "Setup Information"
 +
# A context menu opens, select "Install" here.
 +
# Repeat that process for all desired drivers
 +
# Reboot VM.
  
==Windows OS support==
+
=== Downloading the Wizard in the VM ===
  
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.
+
You can also just [https://fedorapeople.org/groups/virt/virtio-win/direct-downloads/latest-virtio/virtio-win.iso download the most recent] virtio-win-gt-x64.msi or virtio-win-gt-x86.msi from inside the VM, if you have already network access.
  
See
+
Then just execute it and follow the installation process.
* http://www.linux-kvm.org/page/WindowsGuestDrivers
 
* http://www.linux-kvm.org/page/WindowsGuestDrivers/Download_Drivers
 
  
Following info on those page you can find:
+
== Troubleshooting ==
* 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
 
* a web repository http://alt.fedoraproject.org/pub/alt/virtio-win/
 
*: here you can find "packaged" sets of drivers
 
*:* in source format (.zip)
 
*:* in compiled format (.iso)
 
  
===Packaged sets of drivers===
+
Try an older version of the drivers first, if that does not helps ask in one of our support channels:
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.
+
https://pve.proxmox.com/wiki/Get_support
* Most recent set is  virtio-win-0.1-74, with updates to virtio drivers as of 16 Oct 2013.
 
* Previous versions could still be useful when, as it happens, some Windows VM shows instability or incompatibility with latest drivers set.
 
  
====folder names====
+
== Further Reading ==
In the iso file provided by Fedora Project drivers for diffrent 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):
+
https://docs.fedoraproject.org/en-US/quick-docs/creating-windows-virtual-machines-using-virtio-drivers/index.html
  
{| border="1" cellspacing="0" cellpadding="5"
+
http://www.linux-kvm.org/page/WindowsGuestDrivers
!  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)
 
|}
 
  
'''NB:'''
+
The source code of those drivers can be found here: https://github.com/virtio-win/kvm-guest-drivers-windows
* Windows XP drivers are known to work also on Windows 2003 Server
 
* Win7 drivers can be used for Windows 2008r2
 
  
 +
http://www.linux-kvm.org/page/WindowsGuestDrivers/Download_Drivers
  
==See also==
+
= See also =
* [[Windows_VirtIO_Drivers/Changelog]]
 
 
* [[Paravirtualized Block Drivers for Windows]]
 
* [[Paravirtualized Block Drivers for Windows]]
 
* [[Paravirtualized Network Drivers for Windows]]
 
* [[Paravirtualized Network Drivers for Windows]]
 
* [[Dynamic Memory Management]]
 
* [[Dynamic Memory Management]]
 +
 +
[[Category: HOWTO]]
 +
[[Category: Qemu/KVM]]

Latest revision as of 17:43, 22 August 2020

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 devices and peripherals for 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 these kind of devices are supported:

You can maximize performances by using VirtIO drivers. The availability and status of the VirtIO drivers depends on the guest OS and platform.

Windows OS Support

Windows does not have native support for VirtIO devices included. But, there is excellent external support through opensource drivers, which are available compiled and signed for Windows:

https://fedorapeople.org/groups/virt/virtio-win/direct-downloads/archive-virtio/?C=M;O=D

Note that this repository provides not only the most recent, but also many older versions. Those older versions can still be useful when a Windows VM shows instability or incompatibility with a newer driver version.

The binary drivers are digitally signed by Red Hat, and will work on 32-bit and 64-bit versions of Windows

Installation

Using the ISO

You can download the latest stable or you can download the most recent build of the ISO. Normally the drivers are pretty stable, so one should try out the most recent release first.

You can access the ISO can in a VM by mounting the ISO with a virtual CD-ROM/DVD drive on that VM.

Wizard Installation

Wizard Installation

You can use an easy wizard to install all, or a selection, of VirtIO drivers.

  1. Open the Windows Explorer and navigate to the CD-ROM drive.
  2. Simply execute (double-click on) virtio-win-gt-x64
  3. Follow its instructions.
  4. (Optional) use the virtio-win-guest-tools wizard to install the QEMU Guest Agent and the SPICE agent for an improved remote-viewer experience.
  5. Reboot VM

Manual Installation

  1. Open the Windows Explorer and navigate to the CD-ROM drive.
    There you can see that the ISO consists of several directories, each having sub-directories for supported OS version (for example, 2k19, 2k12R2, w7, w8.1, w10, ...).
    • Balloon
    • guest-agent
    • NetKVM
    • qxl
    • vioscsi
    • ...
    Manual Installation
  2. Navigate to the desired driver directories and respective Windows Version
  3. Right-click on the file with type "Setup Information"
  4. A context menu opens, select "Install" here.
  5. Repeat that process for all desired drivers
  6. Reboot VM.

Downloading the Wizard in the VM

You can also just download the most recent virtio-win-gt-x64.msi or virtio-win-gt-x86.msi from inside the VM, if you have already network access.

Then just execute it and follow the installation process.

Troubleshooting

Try an older version of the drivers first, if that does not helps ask in one of our support channels: https://pve.proxmox.com/wiki/Get_support

Further Reading

https://docs.fedoraproject.org/en-US/quick-docs/creating-windows-virtual-machines-using-virtio-drivers/index.html

http://www.linux-kvm.org/page/WindowsGuestDrivers

The source code of those drivers can be found here: https://github.com/virtio-win/kvm-guest-drivers-windows

http://www.linux-kvm.org/page/WindowsGuestDrivers/Download_Drivers

See also