RHV - Installing drivers in a Windows VM for accessing the VirtIO system disk

Solution Verified - Updated -

Environment

  • Red Hat Enterprise Virtualization 3.0, 3.1, 3.2, 3.3, 3.4, 3.5
  • Red Hat Virtualization 4.x
  • Guest: Windows 2008, Windows 2008 R2, Windows 2012, Windows 7, Windows 8, Windows 10

Issue

  • I need to install a Windows virtual machine (VM) using virtio but Windows cannot find the device. How do I install the drivers needed?

Resolution

The resolution will vary slightly depending on what versions you are using.

Prerequisites for All Red Hat Virtualization (3.x/4.x) versions:

  1. Install the virtio-win package on the RHV-M/RHEV-M system:

    yum install virtio-win
    
  2. Create an ISO domain (if you haven't already):
    a. Documentation for configuring an NFS export
    b. Documentation for attaching NFS storage in RH(E)V

Important Notes

  • The latest versions of RHEL have built-in support for VirtIO.

Red Hat Virtualization 4.X:

Be aware that the package names and tool syntax has changed a bit from RHEV3:

  1. To set up these you'll want to make sure the ISOs/VFDs are in the ISO Domain as seen in the documentation.
  2. To upload these you can run the following command on the manager, substituting --iso-domain=ISODomain with your actual ISO domain name:

    # engine-iso-uploader --iso-domain=ISODomain upload /usr/share/virtio-win/virtio-win.iso /usr/share/virtio-win/virtio-win_x86.vfd /usr/share/virtio-win/virtio-win_amd64.vfd /usr/share/rhv-guest-tools-iso/rhv-tools-setup.iso
    

Red Hat Virtualization 3.x:

  1. Locate the virtio-win packages and upload the *.vfd and *.iso files to the ISO storage domain using the ISO uploader utility:

    rhevm-iso-uploader --iso-domain=nameOFdomain upload /usr/share/virtio-win/*.vfd
    rhevm-iso-uploader --iso-domain=nameOFdomain upload /usr/share/virtio-win/*.iso
    

Installing Windows

  1. Create a new VM with a VirtIO disk interface (instead of IDE).
  2. When the Windows VM is created, attach virtio-win-xxxx.vfd as a floppy, using the Run once menu (Remember to also boot from the Windows Installation ISO using "Attach CD"). (use "VirtIO Win amd64 VFD" for 64-bit architecture and "VirtIO Win x86 VFD" for 32-bit architecture.)

    The RHEV "Run Once" Menu: Choosing to attach virtio-win virtual floppy disk

    • NOTE: For deploying a large number of VirtIO-based VMs, a better solution would be to slipstream the VirtIO_blk driver into the Windows distribution ISO file. This is possible using nLite software or the tools Microsoft provides for driver slipstreaming.
  3. Proceed according to the version of Windows used:

    • Windows 2008:
      • When Windows prompts for the driver, click on "Load Driver", point the installer to drive A: and pick the driver that suits the OS (32-bit use x86 drivers, 64-bit use AMD64 drivers)
    • Windows 2008 R2:
      • Choose the AMD64 drivers.
      • There is a known issue where the automatic driver scanning in Windows fails to detect the correct driver. The workaround is to select the driver manually similar to the process listed below for Windows 7.
    • Windows 2012:
      • Choose the AMD64 drivers.
    • Windows 7:
      • When Windows prompts for the driver, click on "Load Driver", point the installer to drive A: and pick the SCSI controller driver for Windows 7.

    • Windows 8:
      • When Windows prompts for the driver, click on "Load Driver", point the installer to drive A: and pick the SCSI controller driver for Windows 8.

This solution is part of Red Hat’s fast-track publication program, providing a huge library of solutions that Red Hat engineers have created while supporting our customers. To give you the knowledge you need the instant it becomes available, these articles may be presented in a raw and unedited form.

21 Comments

Shouldn't this refer to virtio-drivers-1.0.0.vfd? This is the name of the file that's available on Red Hat Network, not viostor.vfd.

That is correct - the VFD file had been updated since the article was published.

what should one make of the following error while attempting to install windows 2008r2 64bit: "No new devices could be found. Make sure the driver files are correct and located on driver installation media."

The drivers are there (virtio-drivers-xxx.vfd) and I have attempted to install with all of choices presented. None of them work.

you need to actually pick the virtio block device driver and not the (also presented) virtio NIC driver, are you sure you did that?

Dan,
I have the same problem, I've selected the storage driver on R2 and it doesn't work with virtio-win-1.4.0-1.el6.noarch

Regards

I can't actually find the drivers at all since RHN changed.

This hasn't changed. They're still under Downloads/RHEL/RHEV/Virt Manager for Servers (and/or Desktops, depending on your subscription).

Where are you starting from?  I don't see that path on either of the two sites I have access to.

I'm starting from redhat.com. Click on the link at the top that says *Downloads*. Go under Red Hat Enterprise Linux and then Downloads. That should list all channels available to you -- one of them should be RHEV (Red Hat Enterprise Virtualization). Under that, there's Virt Manager for Servers/Desktops. For me the URL is:

https://rhn.redhat.com/rhn/software/channel/downloads/Download.do?cid=9470

or for Desktops:

https://rhn.redhat.com/rhn/software/channel/downloads/Download.do?cid=9471

Thanks.  I don't have RHEV listed, only RHEL.  I thought it would be available under that, with the virtualisation entitlement, but there is no link to it under RHEL as far as I can see.

Using RHEV vs. using KVM virtualization inside regular RHEL are two different things (and different subscriptions). I happen to use both, depending on what I'm aiming for. RHEV has some nice features like live migration (in a supported way) but it's also more complex and has lots of parts to it.

When running (KVM based) Windows VMs under RHEL, the virtio drivers are downloaded via yum; it's actually easier. Refer to these docs:

http://docs.redhat.com/docs/en-US/Red_Hat_Enterprise_Linux/6/html-single/Virtualization/index.html#form-Virtualization-Installing_the_KVM_Windows_para_virtualized_drivers-Installing_with_a_virtualized_floppy_disk

Thanks.  In that case I'll use that.

Where do get Intel X64 drivers as I found that virtio-win-1.5.3.vfd only has AMD64 and i386 drivers and i am currenlty running on Intel CPU architecture.

AMD64 is the official name for x86_64, it works for Intel and AMD x64 CPUs

Please, update this procedure to RHEV 3.1, I can't upload driver for virtio in Windows Server 2003 and Windows XP.

install the virtio-win package from RHN, you will have the the ISO and floppy images as:
/usr/share/virtio-win/virtio-win.iso
/usr/share/virtio-win/virtio-win.vfd

Am I missing something here because as of RHEV 3.2 release and with virtio-win-1.6.4_amd64.vfd Microsoft Windows 2008 R2 still does not see the required driver as supported?

I believe there may be an issue here actually. I saw what you have reported and, indeed, Windows doesn't automatically see the proper driver. However, a workaround for now is to uncheck the box that says "Hide drivers that are not compatible...", click Rescan, then select the Windows 2008 VirtIO scsi driver from the list. I have filed BZ # 981817 to track this issue. If you would, please open a support case and reference this BZ number so we can track it.

Under RHEV 3.2 need to use virtio-win-1.6.8_amd64.vfd to install Windows Server 2012 R2. Also select both the Network and SCSI drivers.

In step #4, it reads as follows:
"leave the "boot from CDROM" enabled as well)"
I think what the author intended to say was "leave "attach CD" checked" or similar. There's no "boot from CDROM" per se.

Daniel, thank you again!
I will update this.