Linux中的Virtualbox Guru Meditation严重错误

时间:2020-03-21 11:48:42  来源:igfitidea点击:

KVM和virtualbox在Linux中不能同时运行

KVM和VirtualBox不能同时工作

这是当我已在运行KVM来宾计算机时尝试从oracle virtualbox启动VM时的完整错误消息:

Virtualbox Guru Meditation
A critical error has occurred while running the virtual machine and the machine execution has been stopped.
For help, please see the Community section on https://www.virtualbox.org or your support contract. Please provide the contents of the log file VBox.log and the image file VBox.png, which you can find in the /home/sk/VirtualBox VMs/Ubuntu 20.04 Server/Logs directory, as well as a description of what you were doing when this error happened. Note that you can also access the above files by selecting Show Log from the Machine menu of the main VirtualBox window.
Press OK if you want to power off the machine or press Ignore if you want to leave it as is for debugging. Please note that debugging requires special knowledge and tools, so it is recommended to press OK now.

然后,我停止了KVM guest虚拟机,关闭了KVM应用程序,并从virtualbox启动了VM,它起作用了!

我也尝试过相反的方法。
我从virtualbox启动了VM,然后启动了KVM guest虚拟机,但是KVM guest虚拟机没有启动。

Error starting domain: internal error: process exited while connecting to monitor: ioctl(KVM_CREATE_VM) failed: 16 Device or resource busy
2017-07-08T11:28:43.524617Z qemu-system-x86_64: failed to initialize KVM: Device or resource busy
Traceback (most recent call last):
  File "/usr/share/virt-manager/virtManager/asyncjob.py", line 75, in cb_wrapper
    callback(asyncjob, *args, **kwargs)
  File "/usr/share/virt-manager/virtManager/asyncjob.py", line 111, in tmpcb
    callback(*args, **kwargs)
  File "/usr/share/virt-manager/virtManager/object/libvirtobject.py", line 66, in newfn
    ret = fn(self, *args, **kwargs)
  File "/usr/share/virt-manager/virtManager/object/domain.py", line 1279, in startup
    self._backend.create()
  File "/usr/lib/python3/dist-packages/libvirt.py", line 1234, in create
    if ret == -1: raise libvirtError ('virDomainCreate() failed', dom=self)
libvirt.libvirtError: internal error: process exited while connecting to monitor: ioctl(KVM_CREATE_VM) failed: 16 Device or resource busy
2017-07-08T11:28:43.524617Z qemu-system-x86_64: failed to initialize KVM: Device or resource busy

然后,我停止了VM,并关闭了Virtualbox应用程序,并启动了一个KVM实例,它起作用了!

我什至使用“ lsmod”命令检查了kvm和vbox模块是否正在运行。

使用lsmod命令查找KVM模块:

$sudo lsmod | grep kvm

输出示例:

kvm_intel             282624  0
kvm                   663552  1 kvm_intel

查找virtualbox模块:

$sudo lsmod | grep vbox

输出示例:

vboxnetadp             28672  0
vboxnetflt             28672  0
vboxdrv               487424  2 vboxnetadp,vboxnetflt

所有模块均已加载。

在查看Virtualbox论坛之后,我意识到,如果我们在同一主机上同时运行多个虚拟机管理程序,则会发生此错误。

那么,如何修复Linux中的Virtualbox Guru Meditation错误?

实际上,没有FIX。
我们一次必须使用任何一个管理程序。
不能从在同一主机上同时运行的多个不同的虚拟机管理程序中使用Intel VT-x/AMD-V硬件虚拟化扩展。
我们应该仅在单个主机上运行虚拟机监控程序。
如果要使用其他虚拟机,请关闭当前正在运行的虚拟机管理程序,然后启动另一个虚拟机管理程序。

进行Virtualbox Master 冥想的另一个原因是VT-x可能已在BIOS中禁用。
确保已在BIOS中启用了它。
请参阅系统的制造商手册,以在BIOS中启用VT。

我不能同时使用KVM和VirtualBox

我的Ubuntu 20.04系统上的KVM和Virtualbox没有任何问题。
我可以同时运行。

在同一主机上运行KVM和Virtualbox时,有些人可能会遇到此错误:

VERR_VMX_IN_VMX_ROOT_MODE

如果不能将Virtualbox与KVM一起使用,则可以暂时禁用kvm模块,然后在需要时启用它们。

使用以下命令卸载正在运行的KVM模块:

$sudo rmmod kvm-intel

如果是AMD系统,请改用以下命令:

$sudo rmmod kvm-amd

或者,我们可以使用以下命令:

$sudo modprobe -r kvm_intel
$sudo modprobe -r kvm

在AMD上:

$sudo modprobe -r kvm_amd
$sudo modprobe -r kvm

现在尝试启动Virtualbox VM。
它应该现在应该工作。

启用KVM模块

要启用KVM模块,我们需要首先找到它们在磁盘中的位置。
为此,请运行:

$sudo updatedb
$sudo locate kvm

我们应该看到如下输出。

/lib/modules/5.4.0-39-generic/kernel/arch/x86/kvm
/lib/modules/5.4.0-39-generic/kernel/arch/x86/kvm/kvm-amd.ko
/lib/modules/5.4.0-39-generic/kernel/arch/x86/kvm/kvm-intel.ko
/lib/modules/5.4.0-39-generic/kernel/arch/x86/kvm/kvm.ko
/lib/modules/5.4.0-39-generic/kernel/drivers/gpu/drm/i915/gvt/kvmgt.ko
/lib/modules/5.4.0-39-generic/kernel/drivers/ptp/ptp_kvm.ko
/lib/modules/5.4.0-40-generic/kernel/arch/x86/kvm
/lib/modules/5.4.0-40-generic/kernel/arch/x86/kvm/kvm-amd.ko
/lib/modules/5.4.0-40-generic/kernel/arch/x86/kvm/kvm-intel.ko
[...]

查找“ kvm-intel.ko”和“ kvm.ko”条目。
使用命令启用这两个模块:

$sudo insmod /lib/modules/`uname -r`/kernel/arch/x86/kvm/kvm.ko
$sudo insmod /lib/modules/`uname -r`/kernel/arch/x86/kvm/kvm-intel.ko

在AMD系统上,将“ kvm-intel.ko”替换为“ kvm-amd.ko”。

现在,我们可以运行KVM实例。
请记住,在关闭所有KVM实例之前,virtualbox VM不会启动。