我正在运行 21.10 和 virt-manager 3.2.0。我已安装:qemu-system-aarch64 qemu-system-i386 qemu-system-x86_64-microvm qemu-system-arm qemu-system-x86_64 qemu-system-x86_64-spice
dpkg -l | grep qemu 系统:
ii qemu-block-extra 1:6.0+dfsg-2expubuntu1.1 amd64 extra block backend modules for qemu-system and qemu-utils
ii qemu-system-arm 1:6.0+dfsg-2expubuntu1.1 amd64 QEMU full system emulation binaries (arm)
ii qemu-system-common 1:6.0+dfsg-2expubuntu1.1 amd64 QEMU full system emulation binaries (common files)
ii qemu-system-data 1:6.0+dfsg-2expubuntu1.1 all QEMU full system emulation (data files)
ii qemu-system-gui:amd64 1:6.0+dfsg-2expubuntu1.1 amd64 QEMU full system emulation binaries (user interface and audio support)
ii qemu-system-x86 1:6.0+dfsg-2expubuntu1.1 amd64 QEMU full system emulation binaries (x86)
当我第一次运行 virt-manager 时,没有“架构选项”。每次我尝试构建虚拟机时,它都会默认为“x86_64”。然后我发现,我没有安装 qemu-system-arm。所以我安装了它。然后我得到的“架构选项”有:x86_64、aarch64、arm 和 armv6l。仍然没有“i386”。
因此,我尝试重新安装“qemu-system-i386”。现在,apt 提示我“注意,选择‘qemu-system-x86’而不是‘qemu-system-i386’”。但是,“qemu-system-x86”不在我的 /usr/bin 目录中……我以为“qemu-system-i386”取代了“qemu-kvm”驱动程序。
然后我尝试直接使用 apt 安装“qemu-system-x86”。它说已安装,但我的 /usr/bin 中仍未列出它。
我已经研究了一整天,但还是搞不清楚我缺少什么才能让 virt-manager 轮询桌面上可用的架构。任何帮助都非常感谢。
答案1
qemu-system-x86 软件包包含 qemu-system-i386 和 qemu-system-x86_64。因此您不会错过任何一个。
但通常 /usr/bin/qemu-system-x86_64 是经过更多测试的“真正的系统高级管理程序”,甚至 32 位操作系统也可以在其中正常运行(就像您可以在现代裸机系统上运行旧操作系统一样,因为 x86 是向后兼容的)。
在大多数情况下,i386 二进制文件并不是您所想的那样,它是 32 位的模拟 :-) 对此,还请参阅以下类似主题:
- https://bugzilla.redhat.com/show_bug.cgi?id=446817
- https://rwmj.wordpress.com/2010/10/08/32-or-64-bit-virtual-cpu-in-kvm/
因此 virt-manager 和 libvirt 正确地默认为 /usr/bin/qemu-system-x86_64,因为它可以同时为 32 位和 64 位客户机工作(很可能效果更好)。
如果你严格要求“仅提供 32 位”给客户机 - 你可以在 virt-manager 的 XML 视图中创建后将其更改<type arch="i686" ...
为<emulator>/usr/bin/qemu-system-i386</emulator>
另外,正如上面的参考文献之一所述,您可能需要设置 CPU 类型 - 为此,请在 virt-manager 客户机创建结束时选择“自定义客户机”,并在 CPU 部分中禁用“复制主机 CPU”,这使您可以选择各种旧类型,从而使客户机看到减少的 CPU 功能集。