Installing VirtIO drivers in Windows Server 2008

11,305

Solution 1

The process is described in the article Converting a Windows Vista KVM Virtual Machine to Redhat VirtIO Drivers.

You should first download from linux-kvm.com the Windows Guest Drivers in cdrom image (iso). The current version is at this link.

Here is an excerpt from the article (read "Windows 2008" for "Vista") :

  • Make sure Vista VM is up to date on patches and the disk is error free.
  • Mount the .iso file as a CD-ROM device.

Now you might think you can use the ‘Add Hardware Wizard’ here and add the drivers, add the hardware, and be good. I did. I wound up with an unbootable disk. Apparently Vista’s autodetection is required in this process. So…

  1. Add a new network device of type ‘virtio’. Vista will do its “you’ve got hardware” routine and run you through all of its wizards. When it asks you for drivers, point it at the i386/2008 directory on the driver disc image. Yes, Yes, OK, Yes, Really, Continue, etc.
  2. Shutdown the VM and remove the old ethernet controller. Boot up Vista and make sure the network works. You can conceivably skip this step for now if you want to make troubleshooting harder.
  3. Add a new Storage controller. Leave the existing one as-is for now. You’ll have to pick a disk image you’re not using right now, or make a new one. Anything is fine, we’re not going to ever use it inside Vista. Do the driver dance again.
  4. Shutdown Windows. Remove the storage controllers, and add a new one, type ‘virtio’, with your normal hard drive image. Take care of the old ethernet controller here too, if you ignored my previous advice.
  5. Boot Windows normally. It should now be coming up on VirtIO disk and network drivers. If you get a bluescreen or a plea to use the RepairCD, something went wrong. Use the repair CD to restore to a previous restore-point and try again.

Solution 2

I can't go into details, as I haven't done it myself... But, here is what a colleague actually did:

You can actually install the drivers under a running system. Before that the devices must be changed in the configuration XML for "virtio" devices when powered down. You can't install the drivers without the devices already present. This is especially problematic for the hard drive... as windows won't startup, when just configuring it for virtio. The solution is to put a "dummy" virtio-harddrive into the config (or just the same harddrive twice as virtio and normal harddrive; make sure not to write access both of them!) and then install the driver and then switch the config for the primary hard drive.

He told me there was a "redhat driver pack for windows" or something like that... this is probably working without signing (is already signed)? I actually didn't ask for details... Just note that there may exist different sources for the drivers.

Hope that helps others...

Regards, Stefan

PS: Comments and questions are welcome...

Share:
11,305

Related videos on Youtube

SDwarfs
Author by

SDwarfs

Updated on September 18, 2022

Comments

  • SDwarfs
    SDwarfs almost 2 years

    We are running a Windows Server 2008 system as a "guest" on a Linux-KVM virtual server (SLES11, with VirtIO support). We have trouble with the system performance and this is possibly due to not using the VirtIO drivers. I don't have much experience with neither KVM nor VirtIO. Just heard it this could be the reason for our problem.

    Questions:

    • The install examples I just found are describing how to install the drivers during Windows setup. Is it possible to install the VirtIO drivers later? We have running software on that system and would like to avoid reinstalling/setup of all these.

    • I already found a page describing how to sign the drivers, which seems to be needed. A good tutorial page (step by step instructions) would be nice. Is there anything like that out there?

  • Michael Hampton
    Michael Hampton over 11 years
    This is the way I do it. Works perfectly.
  • SDwarfs
    SDwarfs over 11 years
    Thanks for supplying the right links to the redhat driver and redhat-tutorial, that completes my rough explanation. We used the Win7 drivers of these drivers for Win2008 Server R2, which work fine.