我在 Intel Haswell i5-4570 CPU 上运行 Ubuntu 22.04 (KDE Neon)。我安装了 Virtualbox (6.1.38-dfsg-3~ubuntu1.22.04.1) 以便能够运行偶尔的 Windows 应用程序,并且安装了 Canonical 的 Multipass (snap,1.11.0) 以便快速自动创建、引导和丢弃 Ubuntu VM 以进行软件开发和测试。
问题是,在默认配置下,这两个系统无法同时运行,因为 Multipass 使用 qemu 驱动程序。我认为有一个 qemu 进程占用了 CPU 的虚拟化功能:
/snap/multipass/8465/usr/bin/qemu-system-x86_64 -bios OVMF.fd
--enable-kvm -cpu host
-nic tap,ifname=tap-cd3bd910945,script=no,downscript=no,model=virtio-net-pci,mac=52:54:00:a8:fa:0f
-device virtio-scsi-pci,id=scsi0
-drive file=/var/snap/multipass/common/data/multipassd/vault/instances/testnc/ubuntu-22.04-server-cloudimg-amd64.img,if=none,format=qcow2,discard=unmap,id=hda
-device scsi-hd,drive=hda,bus=scsi0.0
-smp 1 -m 4096M -qmp stdio -chardev null,id=char0 -serial chardev:char0
-nographic
-cdrom /var/snap/multipass/common/data/multipassd/vault/instances/testnc/cloud-init-config.iso
当此过程运行时,Virtualbox VM 可以恢复,但无法启动,然后它们会被冻结且无法使用。
如何配置 multipass 和 Virtualbox 以便能够同时运行虚拟机?
我知道 Multipass 可以使用 Virtualbox 后端,但这似乎仅适用于 MacOS,并且还会导致性能下降 (?)。还有一个选项是使用 Multipass 的“libvirt”驱动程序,但这需要安装额外的库 (~120MB),除非我知道这有帮助,否则我不太愿意尝试。
答案1
答:它们可以存在于同一台计算机上,只是不能同时运行。
错误报告 MultiPass 服务和 VirtualBox 无法同时运行 #1386 定义问题:
目前无法同时使用 VirtualBox 和 MultiPass,因为当多通道服务运行时,VirtualBox 机器将因资源竞争而无法启动(大概)。
答案是:
如果 qemu 正在运行,则 VirtualBox 无法运行,反之亦然。这不是 Multipass 的问题,而是一个普遍问题。解决方案是让 Multipass 使用 VirtualBox 作为后端,正如该错误所要求的那样。
同样的问题也出现在 添加对 Linux 上 VirtualBox 后端的支持 #1289,其中发布了以下内容作为解决方法:
我的解决方法是,如果我想使用 VirtualBox,我就退出 Multipass。
显然,是的
multipass stop --all
。