I'm doing a project with openstack and the one thing that gave me headaches was trying to build a Windows 2008 R2 image. It seemed I couldn't get Virtio working properly. I suffered from malfunctioning drivers, bugs in kvm and blue screens of death. The biggest problem was KVM refusing to install to my virtio disk because it supposedely was not bootable. So if this sounds familiar, this is a step by step guide on how I got things working.
First of all we will need to create an image to install the virtual machine into. Microsoft says 10 GB is the minimum, but I used 15 GB. Remember that this is not the final size of your virtual machine,once it is introduced into Nova Compute. Create a raw image called windows.virtio:
kvm-img create -f raw windows.virtio 15G
Now open virt-manager and create a new virtual machine:
kvm-img create -f raw dirtyhack.virtio 1G