You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何让VirtualBox与Multipass在Ubuntu 22.04系统中共存并同时运行虚拟机?

如何让VirtualBox与Multipass在Ubuntu 22.04系统中共存并同时运行虚拟机?

我看到你在Ubuntu 22.04(KDE Neon)上碰到了VirtualBox和默认QEMU/KVM后端的Multipass没法同时跑虚拟机的问题,本质原因是这俩都需要独占CPU的VT-x虚拟化扩展,同一时间只能有一个虚拟化层占用它。下面给你几个实用的解决方案,你可以根据自己的需求挑:

方案一:切换Multipass到VirtualBox后端(推荐)

你之前以为VirtualBox后端只支持macOS?其实Linux上完全能用!这样Multipass和你现有的VirtualBox环境共享同一个虚拟化层,自然就能同时运行虚拟机了,性能损失微乎其微,完全能满足开发测试的需求。

操作步骤:

  1. 先停掉所有正在运行的Multipass实例:
multipass stop --all
  1. 把Multipass的默认驱动改成VirtualBox:
multipass set local.driver=virtualbox
  1. 之后再启动Multipass实例就OK了,新创建的实例都会由VirtualBox管理,和你手动建的VirtualBox虚拟机完全兼容。

方案二:让Multipass的QEMU实例禁用硬件虚拟化

要是不想切换后端,你可以让Multipass的QEMU实例不用KVM(硬件虚拟化),改用软件模拟,这样VirtualBox就能独占VT-x资源正常启动虚拟机了。缺点是Multipass虚拟机的性能会有所下降,但对于轻量的开发测试场景来说,这点影响基本可以忽略。

操作步骤:

  1. 停止所有Multipass实例:
multipass stop --all
  1. 设置QEMU驱动默认禁用KVM:
multipass set local.qemu.custom-flags="--no-kvm"
  1. 重启Multipass实例就生效了。如果只是想临时给某个实例禁用KVM,创建的时候加个参数就行:
multipass launch --custom-flags "--no-kvm"

方案三:切换Multipass到libvirt后端

虽然你提到不想装额外依赖,但这个方案长期来看更灵活,尤其是如果你之后需要更复杂的虚拟化管理的话。这里要说明下:同一时间还是只能有一个虚拟化层用VT-x,但libvirt支持更灵活的配置,比如你可以给其中一方开启嵌套虚拟化,或者按需切换使用。

操作步骤:

  1. 先装libvirt相关依赖:
sudo apt install libvirt-daemon-system libvirt-clients qemu-kvm
  1. 把当前用户加入libvirt组,避免每次操作都要输sudo:
sudo usermod -aG libvirt $USER
  1. 注销再重新登录,让组权限生效。
  2. 停止所有Multipass实例:
multipass stop --all
  1. 切换Multipass驱动为libvirt:
multipass set local.driver=libvirt
  1. 启动Multipass实例就可以了。

备注:内容来源于stack exchange,提问作者Jens

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.23 12:42:35