Windows XP and 2003 are not installing on current kvm via libvirt, due to an issue with the drive geometry presented via the BIOS. They do not reboot, after the first portion of the install.
libvirt version 0.7.6 is utilizing the -drive ... / -device ... command line arguments to qemu-kvm, which are not correctly interacting with the bios causing incorrect geometry to be provided in the bios calls. If you use the -hda <file> ... command line parameter to specify the disk (or the implicit version), then Windows will install correctly. I was able to change the code to artificially indicate that the bios should provide a translated geometry (as it does for -file), which resulted in the correct geometry being written to the master boot record (or at least the same as I get with old style way of providing a file to -hda. So far in debugging this, I've been able to determine that there is a CMOS byte which indicates to the BIOS what IDE drives should use translation. This gets handled correctly for the old way of specifying drives, but the same isn't done in the qdev storage device code. Any tips on how this should be resolved? Bruce