I can reproduce with qemu-kvm 0.12.4 like the original reporter. I cannot reproduce with qemu-kvm upstream, qemu stable, or qemu upstream. So boot=on could be the culprit. Libvirt generated command line:
Markus has a patch internally against an older qemu-kvm release that apparently fixes the issue, however the upstream code is different so it doesn't cleanly apply. Maybe this will give someone a hint for a proper upstream solution:
I can reproduce with qemu-kvm 0.12.4 like the original reporter. I cannot reproduce with qemu-kvm upstream, qemu stable, or qemu upstream. So boot=on could be the culprit. Libvirt generated command line:
LC_ALL=C PATH=/sbin: /usr/sbin: /bin:/usr/ bin QEMU_AUDIO_DRV=none /usr/bin/ qemu-system- x86_64 -S -M pc-0.12 -no-kvm -m 512 -smp 1,sockets= 1,cores= 1,threads= 1 -name winxp_test -uuid 634dff56- 8c5a-fdbb- b5fc-091bcf78e5 86 -nodefaults -chardev socket, id=monitor, path=/var/ lib/libvirt/ qemu/winxp_ test.monitor, server, nowait -mon chardev= monitor, mode=readline -rtc base=localtime -boot c -drive file=/var/ lib/libvirt/ images/ winxp_test. img,if= none,id= drive-ide0- 0-0,boot= on,format= raw -device ide-drive, bus=ide. 0,unit= 0,drive= drive-ide0- 0-0,id= ide0-0- 0 -drive file=/mnt/ data/media/ win_xp_ sp3_32. iso,if= none,media= cdrom,id= drive-ide0- 1-0,readonly= on,format= raw -device ide-drive, bus=ide. 1,unit= 0,drive= drive-ide0- 1-0,id= ide0-1- 0 -device rtl8139, vlan=0, id=net0, mac=52: 54:00:ac: e8:ca,bus= pci.0,addr= 0x4 -net tap,fd= 20,vlan= 0,name= hostnet0 -chardev pty,id=serial0 -device isa-serial, chardev= serial0 -usb -device usb-tablet, id=input0 -vnc 127.0.0.1:1 -k en-us -vga std -device virtio- balloon- pci,id= balloon0, bus=pci. 0,addr= 0x3
Markus has a patch internally against an older qemu-kvm release that apparently fixes the issue, however the upstream code is different so it doesn't cleanly apply. Maybe this will give someone a hint for a proper upstream solution:
hw/pc.c | 4 ++++
1 files changed, 4 insertions(+), 0 deletions(-)
diff --git a/hw/pc.c b/hw/pc.c ram_addr_ t ram_size, ram_addr_t above_4g_mem_size,
index d142282..c60a79a 100644
--- a/hw/pc.c
+++ b/hw/pc.c
@@ -271,12 +271,16 @@ static void cmos_init(
*/
for (i = 0; i < 4; i++) {
char id[32];
+ int cylinders, heads, secs;
if (hd_table[i])
continue;
snprintf( id, sizeof(id), "drive-ide0-%d-%d",
hd_table[ i] = drive_get_ by_id(id) ; geometry( hd_table[ i]->bdrv, &cylinders, &heads, &secs);
i / MAX_IDE_DEVS, i % MAX_IDE_DEVS);
+ if (hd_table[i]) {
+ bdrv_guess_
+ }
}
/* various important CMOS locations needed by PC/Bochs bios */