我的机器上运行着一个 KVM 虚拟实例。我安装了 VirtualBox;但是,当我尝试启动 VirtualBox VM 机器时,出现了以下错误:
VERR_VMX_IN_VMX_ROOT_MODE
根据这个错误信息我搜索了一下,问题是KVM已经安装好了。
我知道我可以通过删除一些模块然后使用 VirtualBox 在它们之间切换。但我的问题是如何让它们同时运行?
答案1
您无法让它们协同工作。它们都需要访问 CPU 的虚拟化功能,但该功能并非设计为供多个虚拟机管理程序同时使用。
你可以尝试禁用 Virtualbox 的 VT-X 支持,这样它就不会尝试使用硬件虚拟化。编辑虚拟机的设置,在系统选项卡中找到“启用 vt-x/amd-v”复选框并取消标记。我不保证它会起作用,即使它起作用,它也会使用 Virtualbox 的软件虚拟化,因此您的虚拟机会变慢。
如果可能的话,我强烈建议您只选择一个虚拟机管理程序并将其用于所有虚拟机。
答案2
你唯一真正的选择是一个顺序问题:
如果你启动并打开 VirtualBox 机器,请等待它完成启动并然后启动 KVM 计算机(从 virt-manager 或 virsh)它应该可以正常工作。以相反的顺序启动机器将不是工作。
加载和卸载kvm
和kvm_intel
模块将满足 VirtualBox 的要求。可以找到一种更流畅的基于脚本的方法这里。
编辑:自从升级到 Ubuntu 13.10 以来,这个解决方案(启动顺序)似乎不再适用于我。YMMV。
答案3
正如上面的答案所说,
在 Linux 环境中安装 Qemu/KVM、VMware Workstation 和 Virtualbox在同一个虚拟机管理程序上是可能的。
所以问题不在于安装
一旦全部安装完毕,您将获得以下内容:
lsmod | egrep 'vm[nmw]|vbox|kvm'
vboxpci 28672 0
vboxnetadp 28672 0
vboxnetflt 32768 0
vboxdrv 483328 3 vboxnetadp,vboxnetflt,vboxpci
vmnet 61440 13
vmw_vsock_vmci_transport 32768 0
vmw_vmci 81920 1 vmw_vsock_vmci_transport
vmmon 102400 0
vsock 40960 1 vmw_vsock_vmci_transport
kvm_amd 94208 9
kvm 700416 1 kvm_amd
irqbypass 16384 1 kvm
===
Qemu/KVM 使用的所有行(包括 kvm -->)
VirtualBox 使用的所有行(包括 vbox -->)
VMware 的其他产品(参见:
ll /lib/vmware/modules/source/
total 5460
-rw-r--r--. 1 root root 870400 Mar 30 20:19 vmblock.tar
-rw-r--r--. 1 root root 1341440 Mar 30 20:20 vmci.tar
-rw-r--r--. 1 root root 1443840 Mar 30 20:20 vmmon.tar
-rw-r--r--. 1 root root 768000 Mar 30 20:20 vmnet.tar
-rw-r--r--. 1 root root 1136640 Mar 30 20:20 vsock.tar
对于源:安装时编译的模块)
=======
现在使用这个:
就像说的那样路先生(上面的第二个答案)同一时刻只有一个可以使用 Intel-VT 或 AMD-V 如果您为 64 位虚拟机启动 Qemu/KVM 的使用,那么 VirtualBox 同时无法运行 64 位机器,因为 VirtualBox 确实需要 64 位 VM 的硬件加速。
为了阐明答案大卫·贝尔德多于:
使用 AMD Atlon X2 或 X4,或 AMD FX 8 核,或使用 Intel Core I5 或 I7(我可以尝试的机器),
==> VirtualBox 5.2.10
在 KVM 锁定 Intel-VT 或 AMD-V 访问后,无法在 Linux 上同时运行额外的 64 位虚拟机!!!
尽管
==> VMware player or workstation 14.1
将会,只要您取消选中 Intel-VT 或 AMD-V 的使用!!!
现在忘记 Qemu/KVM,我尝试在 VirtualBox 中启动一个 64 位 VM,然后在 VMware 中同时启动第二个 64 位 VM,或者以相反的顺序:
只有第一个能够以默认配置运行!!!!
但禁用硬件加速,是否可行,正如 米格里夫斯???
在 VirtualBox-5.1 中:
VM 属性 --> 系统 --> 加速:对于 64 位 VM 机器,无法禁用硬件加速:
例如,如果您在给定 64 位 VM 机的配置菜单中取消选中“硬件加速”,VirtualBox 配置器将提出抗议,并自动重新启用“硬件加速”。(通过返回同一菜单进行检查!!)
在 VMware 14 中:
虚拟机-->硬件:处理器-->您可以取消选中虚拟化引擎
然后你的 64 位虚拟机就可以启动了,即使你的 Intel-VT 或 AMD-V CPU 功能被 KVM 或 VirtualBox 锁定
因此,VMware 在今天的最新发布中能够为 64 位虚拟机模拟 Ring 0 指令,就像二十多年前它在 32 位机器上所做的那样 !!!! 老实说,如果没有基准测试,很难注意到 64 位 VM VMware 机器在有或没有硬件加速的情况下运行时的性能差异!
===
现在我们可以预期,有一天,kvm 和 VirtualBox 也将能够为 64 位机器模拟 Ring 0 CPU 指令 !!!!!
答案4
好吧,至少目前 VBox 和 VMware 都将与 KVM 并行运行。不过,您必须禁用除 KVM 之外的所有虚拟机管理程序的硬件加速(禁用 VT,启用二进制翻译)。然后,其他虚拟机管理程序将以软件模式运行,而 KVM 将愉快地单独使用任何 VT 设施。