Paravirtualized driver for Windows: block and NIC

Le Thanh Trung

New Member
Aug 31, 2009
6
0
1
Hi guys,

I have the driver available at http://aye.comp.nus.edu.sg/~trunglt/virtio-setup.iso. The steps you can follow to use the drivers are:

1. Create a virtual machine with hard disk and nic's drivers set to "virtio"
2. The virtual machine should have a CDROM that points to the file virtio-setup.iso
3. When you run the windows installation, you would not be able to see the hard disk. At this moment, you need to load the driver. You should browse to the specific folder in the CDROM drive (ie amd64...). Then you would see a list of drivers to load.
4. After you load the drivers probably, you can now see the hard disk.
5. Finish the installation

I hope someone can host the ISO somewhere else as I will remove the file in a few weeks.
 
May I ask where did you get these drivers, and why do you have to host it?

I would assume that someone who developed these would already have a web site with installation instructions and a download link...
 
It's from RHEL 5.4 so you can get the original package if you want to. I created this iso because proxmox has not supported mounting virtual floppy disk yet.
 
Who stable are these virtio drivers?
For use in production?

As they are fairly new there is no experience. But as Redhat announced to fully support windows 2003 and 2008 on KVM with these drivers in 5.4 I would assume they are quite stable already.

I just installed two windows 2008 (64-bit, also with R2) to do some basic tests - drivers installed as expected.

Just test and give feedback here.
 
I believe it is production ready as the driver has been tested by RH for quite some time. On my setup, I see great performance improvement. On my vista virtual machine I see disk IO up to 100MB/s (proxmox runs on software raid 0)
 
Any idea how I can switch easily from ide to virtio?

I just did the following to move an existing win2003 from IDE to VIRTIO storage driver:


  • Poweroff the VM and add a new harddisk with virtio using the hardware tab on the web interface
  • Poweron and follow the new hardware wizard using the virtio storage drivers from the ISO - Now windows got the drivers and is ready for the switch
  • Poweroff again and remove the IDE boot harddrive and add the unused disk again but now using virtio
  • Go to the option tab and configure this virtio disk as the first boot device and start again, done.
 
Hi guys,

I have the driver available at http://aye.comp.nus.edu.sg/~trunglt/virtio-setup.iso. The steps you can follow to use the drivers are:

1. Create a virtual machine with hard disk and nic's drivers set to "virtio"
2. The virtual machine should have a CDROM that points to the file virtio-setup.iso
3. When you run the windows installation, you would not be able to see the hard disk. At this moment, you need to load the driver. You should browse to the specific folder in the CDROM drive (ie amd64...). Then you would see a list of drivers to load.
4. After you load the drivers probably, you can now see the hard disk.
5. Finish the installation

I hope someone can host the ISO somewhere else as I will remove the file in a few weeks.

Im confused by this.

I uploaded the virto ISO using the proxmox web control panel.

If I go to create a new windows 2003 VM, I set the nic and hard drive to virto as it says, but I need to point the CD ROM drive to the windows2003 ISO, so that I can boot and install. If I point the CD ROM srive at the virto ISO, well of course it does not boot.

How do I then make the virto ISO available to the Windows that is installing?

Thanks...
 
Im confused by this.

I uploaded the virto ISO using the proxmox web control panel.

If I go to create a new windows 2003 VM, I set the nic and hard drive to virto as it says, but I need to point the CD ROM drive to the windows2003 ISO, so that I can boot and install. If I point the CD ROM srive at the virto ISO, well of course it does not boot.

How do I then make the virto ISO available to the Windows that is installing?

Thanks...

As far as I know you cannot point the win2003 installer to an ISO for drivers. (win2008/vista have no problems with that).

so just install on IDE and then change:
http://www.proxmox.com/forum/showpost.php?p=10563&postcount=10
 
I tried this driver in 32 bit windows xp with sp3 and it's not working.
As there are no drivers for winxp inside this driver iso I tried with 32bit win2003 and win2008 drivers. Although winxp installed the driver without any problem the scsi virtuo device is marked with a yellow mark and refused to work.
 
I tried this driver in 32 bit windows xp with sp3 and it's not working.
As there are no drivers for winxp inside this driver iso I tried with 32bit win2003 and win2008 drivers. Although winxp installed the driver without any problem the scsi virtuo device is marked with a yellow mark and refused to work.

got the same problem. on winxp only the virtio network works (from 2003). virtio block refuses to work like you described.

on win2003 and win2008 everything is fine.
 
I was able to convert an existing Windoes 2003 server installation to use these drivers using the procedure Tom described. But I can't figure out how to use them during the initial installation.
 
I was able to convert an existing Windoes 2003 server installation to use these drivers using the procedure Tom described. But I can't figure out how to use them during the initial installation.


You can use the virtio disk drivers in the initial install, I tested this with 2003 server 64bit. The net driver can easily be installed after machine has booted.

Login to the proxmox server via ssh.

First create a floppy image containing the drivers using the standard linux dd & loop mount tools.

Create the floppy image
Code:
# dd bs=512 count=2880 if=/dev/zero of=virtiodrivers.img
# mkfs.msdos virtiodrivers.img
# mkdir /media/floppy1/
# mount -o loop  virtiodrivers.img /media/floppy1/
Assuming the virtio drivers cdrom is mounted at /cdrom, copy the contents of the driver cd to the floppy.
Code:
# cp -r /cdrom/ /media/floppy1/
Unmount the disk image
Code:
# umount /media/floppy1/
Copy the image file somewhere handy e.g. /tmp.

Code:
# cp virtiodrivers.img /tmp
From the proxmox web interface:
Perform a normal KVM install but select virtio for both disk type and network card. Installation media was set to OS cd1 (previously uploaded).

The output of the create command looks like this
:
Code:
/usr/sbin/qm create 106 --ostype w2k3 --memory 512 --onboot no --cdrom ms2003std64-1.iso --name virtiotest --vlan0 virtio=1A:5D:EE:B8:D4:AB --smp 1 --virtio0 8 --bootdisk virtio0
Formatting '/var/lib/vz/images/106/vm-106-disk.qcow2', fmt=qcow2, size=8388608 kB
VM 106 created
Now start the vm, but don't do anything else - we need to grab the output of 'ps' and modify it so that the virtual floppy is also mounted.

Back at the ssh prompt, search for the kvm command associated with the above vm (vmid106), e.g.
Code:
# ps auxwww | grep kvm
root      2415 75.3  0.3 630008 30468 ?        Sl   15:38   0:12 /usr/bin/kvm -monitor unix:/var/run/qemu-server/106.mon,server,nowait -vnc unix:/var/run/qemu-server/106.vnc,password -pidfile /var/run/qemu-server/106.pid -daemonize -usbdevice tablet -name virtiotest -smp 1 -id 106 -cpuunits 1000 -vga cirrus -tdf -localtime -k en-us -drive file=/var/lib/vz/template/iso/ms2003std64-1.iso,if=ide,index=2,media=cdrom -drive file=/var/lib/vz/images/106/vm-106-disk.qcow2,if=virtio,index=0,boot=on -m 512 -net tap,vlan=0,ifname=vmtab106i0,script=/var/lib/qemu-server/bridge-vlan0 -net nic,vlan=0,model=virtio,macaddr=1A:5D:EE:B8:D4:AB
Now copy the output to the clipboard, then kill the process.

Code:
# kill 2415
# kill 2415
-bash: kill: (2415) - No such process
Finally (this is the fun part!) restart this process with the addition of the virtual floppy drive. e.g. (the following should be all on one line)
Code:
# /usr/bin/kvm -monitor unix:/var/run/qemu-server/106.mon,server,nowait -vnc unix:/var/run/qemu-server/106.vnc,password -pidfile /var/run/qemu-server/106.pid -daemonize -usbdevice tablet -name virtiotest -smp 1 -id 106 -cpuunits 1000 -vga cirrus -tdf -localtime -k en-us -drive file=/var/lib/vz/template/iso/ms2003std64-1.iso,if=ide,index=2,media=cdrom -drive file=/var/lib/vz/images/106/vm-106-disk.qcow2,if=virtio,index=0,boot=on -drive file=/tmp/virtiodrivers.img,index=0,if=floppy -m 512 -net tap,vlan=0,ifname=vmtab106i0,script=/var/lib/qemu-server/bridge-vlan0 -net nic,vlan=0,model=virtio,macaddr=1A:5D:EE:B8:D4:AB
Note the added "-drive file=/tmp/virtiodrivers.img,index=0,if=floppy"

You have to now quickly open the vnc console to the machine so you can hit "F6", you should then be able to load the virtio driver for the hard drive and continue with the install.
 

About

The Proxmox community has been around for many years and offers help and support for Proxmox VE, Proxmox Backup Server, and Proxmox Mail Gateway.
We think our community is one of the best thanks to people like you!

Get your subscription!

The Proxmox team works very hard to make sure you are running the best software and getting stable updates and security enhancements, as well as quick enterprise support. Tens of thousands of happy customers have a Proxmox subscription. Get yours easily in our online shop.

Buy now!