libvirt:如何防止“ accel = kvm”

时间:2019-08-14 17:46:02

标签: qemu kvm libvirt

首先,了解一些背景:

我想至少在我的系统上发现了KVM的错误。

当我尝试通过virt-manager安装Windows XP时,安装程​​序将中止/重启。

但是,如果我运行原始的qemu-system-i386命令(见下文),它将成功。

通过查看/var/log/libvirt/qemu/...中的日志,关键区别在于参数“ accel = kvm”(相当于-enable-kvm)。

因此,缩小范围,此命令将成功执行:

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

但是下一条命令将导致无限次重启。 XP安装程序将启动,但是在扫描系统后,仅重新启动而不是继续:

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

也许您不相信我的KVM在我的系统上可以正常工作。 但是,我可以使用KVM安装其他操作系统(例如FreeBSD)。这似乎是XP特有的。

现在,我的问题:

  1. 如何强制libvirt 对选定的VM使用KVM?理想的情况是通过virt-manager,但是我也同意virsh。 我想在XML混乱的某个地方有一些设置,但是我并不十分熟悉。

  2. 放在一边:我应该在哪里记录此bug?对KVM? Libvirt? QEMU?

1 个答案:

答案 0 :(得分:0)

好吧,我设法解决了这个问题,但是我敢肯定还有更漂亮的方法。

基本上,该-enable-kvm选项对应于域XML文件中的type="kvm"值。参见libvirt documentation

但是似乎无法从virt-manager进行更改。我对virsh不够熟悉,或者也没有这样做。因此,我只是像这样手动编辑XML文件:

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

我在virt-manager关闭时进行了此操作。 当我打开它时,设置似乎没有坚持。由于某种原因,我似乎需要运行:

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

使其粘住。

无论如何,经过那段小小的舞蹈之后,然后在virt-manager的VM的“概述”选项卡中,它说“ Hypervisor:QEMU TCG”,之前是“ KVM”。

现在,XP安装程序可以工作了!

再次,也许是一种更好的方法,但目前已经足够了。

大概是,禁用KVM后性能会变差。我仍然不知道该向谁发送错误,或者这是QEMU还是KVM问题。