На этой неделе я тестировал KVM.
Сегодня я узнал, что KVM и Oracle VirtualBox не работают одновременно.
До сегодняшнего дня у меня не было возможности использовать два приложения виртуализации одновременно, поэтому я совершенно не знаю, что KVM и virtualbox не работают одновременно на Linux
Когда был запущен один из экземпляров KVM, я запустил виртуальную машину из VirtualBox, и она не запустилась, а показала окно с ошибкой под названием – Virtualbox Guru Meditation.
Обратите внимание, что KVM и VirtualBox работают бок о бок, фактически никого не удаляя.
Однако я не могу использовать их одновременно.
Эта ошибка является новой, поэтому я решил, что публикация этого руководства поможет кому-то.
KVM и VirtualBox не работают одновременно
Вот полное сообщение об ошибке, когда я пытался запустить ВМ из oracle virtualbox, когда гостевая машина KVM уже запущена:
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, закрыл приложение KVM и запустил виртуальную машину из virtualbox, все заработало!
Я также попробовал это в обратном порядке.
Я запустил виртуальную машину из virtualbox, а затем запустил гостевую систему KVM, но гостевая система KVM не запускается.
Error starting domain: internal error: process exited while connecting to monitor: ioctl(KVM_CREATE_VM) failed: 16 Device or resource busy
2020-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
2020-07-08T11:28:43.524617Z qemu-system-x86_64: failed to initialize KVM: Device or resource busy
Затем я остановил виртуальную машину, закрыл приложение Virtualbox и запустил экземпляр KVM, все заработало!
Я даже проверил, работают ли модули kvm и vbox, используя команду «lsmod».
Найдем модули KVM с помощью команды lsmod:
$ 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 Guru Meditation» на Linux?
На самом деле, нет решения.
Вы должны использовать любой гипервизор за один раз.
Аппаратные расширения виртуализации Intel VT-x / AMD-V нельзя использовать с несколькими разными гипервизорами, работающих одновременно на одном хосте.
Вы должны запускать только один гипервизор на одном хосте.
Если вы хотите использовать другой, закройте работающий в данный момент гипервизор и запустите другой.
Другая причина этой ошибки – это то, что VT-x может быть отключен в BIOS.
Убедитесь, что вы включили его в своем BIOS.
Обратитесь к руководству производителя вашей системы, чтобы включить VT в BIOS.
Я не могу использовать KVM и VirtualBox вместе
У меня нет проблем с KVM и Virtualbox в моей системе Ubuntu 20.04.
Некоторые из вас могут столкнуться с этой ошибкой при запуске KVM и Virtualbox на одном хосте:
VERR_VMX_IN_VMX_ROOT_MODE
Если вы не можете использовать Virtualbox вместе с KVM, вы можете временно отключить модули kvm, а затем включить их, когда захотите.
Выгрузите работающие модули KVM с помощью команды:
$ sudo rmmod kvm-intel
Если это система AMD, используйте эту команду:
$ sudo rmmod kvm-amd
В качестве альтернативы вы можете использовать следующие команды:
$ modprobe -r kvm_intel
$ modprobe -r kvm
на AMD:
$ modprobe -r kvm_amd
$ modprobe -r kvm
Как включить модули 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 [...]
$ 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.
![]()
