'libvirt: how to prevent "accel=kvm"

First, some background:

I suppose I've found a bug with KVM, at least on my system.

When I try to install Windows XP via virt-manager, the installer aborts/reboots.

But if I run a raw qemu-system-i386 command (see below), it succeeds.

From looking at the logs in /var/log/libvirt/qemu/..., the key difference is the "accel=kvm" argument (equivalent to -enable-kvm).

So, narrowing it down, this command succeeds:

qemu-system-i386 \
    -m 512 \
    -usb \
    -cdrom path/to/WinXP_CD.iso \
    -boot d \
    "$image"

But this next command results in an infinite series of reboots. The XP installer starts, but after scanning the system, just reboots rather than proceeding:

qemu-system-i386 \
    -enable-kvm \
    -m 512 \
    -usb \
    -cdrom path/to/WinXP_CD.iso \
    -boot d \
    "$image"

Perhaps you don't believe I have KVM working properly on my system. But, I can install other OSes (eg: FreeBSD) using KVM just fine. This seems to be XP-specific.

So now, my questions:

  1. How do I force libvirt to NOT use KVM for a chosen VM? Ideally via virt-manager, but I'm fine with virsh too. I imagine somewhere in the mess of XML is some setting, but I'm not terribly familiar.

  2. aside: any idea where I should log this bug? Against KVM? Libvirt? QEMU?



Solution 1:[1]

Well, I managed to hack around this, but I'm sure there's a more pretty way.

Basically, that -enable-kvm option corresponds to the type="kvm" value in your domain XML file. See libvirt documentation.

But there seems to be no way to change this from virt-manager. I'm not familiar enough with virsh yet to do it that way either. So, I just manually edited my XML file like so:

$ sudoedit /etc/libvirt/qemu/myxp.xml 

I did this while virt-manager was closed. When I opened it, the setting did not seem to stick. For some reason, I seemed to need to run:

$ sudo virsh define /etc/libvirt/qemu/myxp.xml

to get it to stick.

Anyway, after that little dance, then in virt-manager, in the `Overview' tab for my VM, it says "Hypervisor: QEMU TCG", where it had "KVM" before.

And now, the XP installer works!

Again, probably a better way, but good enough for now.

Presumably, performance will be poorer with KVM disabled. I still don't know who to send a bug, or whether this is a QEMU or KVM issue, at its core.

Solution 2:[2]

You can change

<domain type="kvm">    

to

<domain type="qemu">    

as as stated in the documentation. To edit xml of VM in virt-manager you should activate xml editing in parameters and press "xml" tab.

Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source
Solution 1
Solution 2