In the first part of this series I showed you a preview of the latest Redhat Windows Virtio Drivers beginning with the network drivers. In this follow up post, I’ll demonstrate how to install and use the latest windows virtio block drivers. A few things to note here. First of all, I didn’t actually use the virtio block drivers from the rpm I found in my redhat subscription account as I had some issues getting that to work. Instead I built the drivers myself from the latest gpl source, the most recent change being September 6th 2009 which provided fixes to get it working for me. This is the version I’ll be writing about today and you’ll find a copy of it at the bottom of this post. Lastly, I’ll be using virt-manager 0.8.0 for this demonstration but you can use command line if you prefer.
So far I have not been able to get the drivers to work during an install of Windows. The only way I could get this to work is to install the virtio block drivers after attaching a non system virtio disk. Once the virtio block drivers are installed, change your system disk to use a virtio controller and reboot. Thanks to Bill McGonigle for this hint.
First attach a virtio disk to your windows guest. It doesn’t matter how big this disk is and you will not need this disk after the drivers are installed. The only reason for using this disk is to get the virtio block drivers installed.
In Virt-manager choose a virtio disk to add.
Now you should have two disks attached. Your system disk and a virtio disk. In my case my system disk was used an IDE controller and is shown as "hda"
Attach the cdrom image provided in this post to your windows guest and boot. When you boot your guest with the virtio block disk attached windows will prompt you on startup for a driver to install.
Select No when the wizard asks you to search for the driver software.
Select “install from a list of specific location” .
Select the Browse button and navigate to the driver CD.
Select the appropriate folder for your guest architecture. My test was done with a windows 2003 32 bit guest.
Click Next to begin the install.
You will get a prompt warning about the driver not being signed. Go ahead and select “Continue Anyway”.
Your driver has now successfully been installed.
When you inspect your drivers you’ll now see the redhat virtio scsi controller listed.
This last step involves rebooting your windows guest. Shut down your windows guest, detach the virtio disk you added in the previous section (unless you want to continue using it) and change your system disk to use a virtio block controller. My virt-manager guest now looked like below where my system disk is shown as “vda”.
Boot your windows guest now.
Your windows guest is now using the latest windows virtio block driver.
Admittedly this is a round about way for installing the virtio block drivers on windows. I had no luck getting it work on Windows XP and so far I’ve only gotten a chance to test with windows 2003 32 bit. You should be able to use the windows 2008 drivers with Vista. Give these drivers a test and comment on any issues you have.
Attached below is an ISO image containing windows virtio block drivers built using the most recent source code (Sep 6 2009).