我最近安装了 QEMU 的最新版本(3.1.0),但我一直无法让 virt-manager 正常工作,大概是因为它没有连接到正确的依赖项。此线程中描述了我的其他一些麻烦。
我运行以下命令:
~$ virt-install \
> --name myWINVM \
> --boot uefi \
> --ram 32768 \
> --graphics vnc,listen=0.0.0.0 \
> --machine pc \
> --features kvm_hidden=on \
> --hostdev 9:00.0,address.type=pci,address.multifunction=on \
> --hostdev 9:00.1,address.type=pci \
> --hostdev 0a:00.0,address.type=pci,address.multifunction=on \
> --machine pc \
> --vcpus 4 \
> --os-type windows \
> --os-variant win10 \
> --network bridge=virbr0 \
> --console pty,target_type=serial \
> --disk /home/boss/Downloads/Win10_1809Oct_English_x64.iso,device=cdrom \
> --disk /home/boss/Downloads/virtio-win-0.1.164.iso,device=cdrom \
> --disk path=/home/boss/testVM/WINVM.img,bus=virtio,size=120
我的输出是这样的:
Starting install...
Allocating 'WINVM.img' | 120 GB 00:04
ERROR internal error: process exited while connecting to monitor: 2019-02-21T01:58:56.827372Z qemu-system-x86_64: -enable-kvm: unsupported machine type 'pc-i440fx-3.1'
Use -machine help to list supported machines
Removing disk 'WINVM.img' | 0 B 00:00
Domain installation does not appear to have been successful.
If it was, you can restart your domain by running:
virsh --connect qemu:///system start myWINVM
otherwise, please restart your installation.
除了尝试 git 版本的 qemu,我还尝试从SPICE 网站构建当前的 SPICE 服务器:
注意:如果我指定 q35,我会得到完全相同的错误:
~$ virt-install \
> --name myWINVM \
> --boot uefi \
> --ram 32768 \
> --graphics vnc,listen=0.0.0.0 \
> --machine q35 \
> --features kvm_hidden=on \
> --hostdev 9:00.0,address.type=pci,address.multifunction=on \
> --hostdev 9:00.1,address.type=pci \
> --hostdev 0a:00.0,address.type=pci,address.multifunction=on \
> --machine pc \
> --vcpus 4 \
> --os-type windows \
> --os-variant win10 \
> --network bridge=virbr0 \
> --console pty,target_type=serial \
> --disk /home/boss/Downloads/Win10_1809Oct_English_x64.iso,device=cdrom \
> --disk /home/boss/Downloads/virtio-win-0.1.164.iso,device=cdrom \
> --disk path=/home/boss/testVM/WINVM.img,bus=virtio,size=120
Starting install...
Allocating 'WINVM.img' | 120 GB 00:04
ERROR internal error: process exited while connecting to monitor: 2019-02-21T04:08:50.597025Z qemu-system-x86_64: -enable-kvm: unsupported machine type 'pc-i440fx-3.1'
Use -machine help to list supported machines
Removing disk 'WINVM.img' | 0 B 00:00
Domain installation does not appear to have been successful.
If it was, you can restart your domain by running:
virsh --connect qemu:///system start myWINVM
otherwise, please restart your installation.
编辑:我认为问题一定出在 virt-manager 上,因为我能够创建一个 qemu 系统并使用 VNC 使用以下命令查看它:
sudo qemu-system-x86_64 \
> -name WINVM,process=WINVM \
> -machine type=q35,accel=kvm \
> -smp 4,sockets=1,cores=2,threads=2 \
> -m 16G \
> -rtc clock=host,base=localtime \
> -serial none \
> -vga qxl \
> -parallel none \
> -boot order=dc \
> -drive file=/home/boss/Downloads/virtio-win-0.1.164.iso,index=1,media=cdrom \
> -drive file=/home/boss/Downloads/virtio-win-0.1.164.iso,index=2,media=cdrom
qemu-system-x86_64: This family of AMD CPU doesn't support hyperthreading(2). Please configure -smp options properly or try enabling topoext feature.
VNC server running on ::1:5900
编辑:我的下一步将是从一个新的主机系统从头开始,之前手动构建和安装所有最新的软件组件。那就是 QEMU、libvirt、virt-manager 和 spice-server.. 我忘记了什么吗?我应该做些什么来确保我正在构建的软件包能够找到彼此?
无论如何,如果失败了,我可能会认输并返回存储库版本,即使它有一些问题。
更新:我无法让手动编译的 qemu、libvirtd 和 virt-manager 一起工作,因此决定认输(暂时)。如果启动这整个事情的重置错误太烦人了,也许我会抛开一切,尝试 Arch。
鉴于您说明的命令行,应该没有办法获得您报告的错误。您请求了一个未版本化的“pc”机器类型,这将导致 libvirt 查询 QEMU 以询问最新版本的变体是什么。QEMU 似乎已经告诉 libvirt 使用“pc-i440fx-3.1”,鉴于您声称已升级到 3.1.0,这是有道理的。鉴于 libvirt 从 QEMU 本身获取此信息,因此 QEMU 拒绝运行并抱怨这不存在是毫无意义的。这应该是一个不可能发生的情况。我会检查“virsh 能力”输出,看看它为 QEMU 检测的机器类型。
传递“q35”时遇到相同问题的原因是因为您的 virt-install args 已通过“--machine pc”选项两次。您将第一个更改为“q35”,但第二个仍然显示“pc”,它覆盖了第一个。
不要再使用
--machine pc
了。它模拟 1995 年的主板,完全不适合运行现代操作系统。将其替换为
--machine q35
唯一的其他选项,它可以模拟更现代且支持 UEFI 的主板。