J'ai testé intensivement KVM cette semaine. Aujourd'hui, j'ai appris que KVM et Oracle VirtualBox ne fonctionnent pas en même temps. Jusqu'à aujourd'hui, je n'ai pas eu la chance d'utiliser deux applications de virtualisation à la fois, donc j'ignore complètement que KVM et virtualbox ne fonctionnent pas simultanément sous Linux. Lorsque l'une des instances KVM est en cours d'exécution, j'ai démarré une machine virtuelle à partir de VirtualBox, et elle n'a pas démarré mais a affiché une boîte d'erreur intitulée - Virtualbox Guru Meditation .
Veuillez noter que KVM et VirtualBox fonctionnent côte à côte sans désinstaller personne. Cependant, je ne peux pas les utiliser simultanément. Cette erreur est nouvelle pour moi, alors j'ai pensé que publier ce guide ici aiderait quelqu'un.
KVM et VirtualBox ne fonctionnent pas en même temps
Voici le message d'erreur complet lorsque j'ai essayé de démarrer VM à partir d'oracle virtualbox alors qu'une machine invitée KVM est déjà en cours d'exécution :
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.

Ensuite, j'ai arrêté l'invité KVM, fermé l'application KVM et démarré VM à partir de virtualbox, cela a fonctionné !
J'ai aussi essayé à l'envers. J'ai démarré une machine virtuelle à partir de virtualbox, puis j'ai démarré un invité KVM, mais l'invité KVM ne démarre pas.
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

Ensuite, j'ai arrêté la VM et fermé l'application Virtualbox et démarré une instance KVM, cela a fonctionné !
J'ai même vérifié si les modules kvm et vbox sont en cours d'exécution à l'aide de la commande "lsmod".
Trouvez les modules KVM avec la commande lsmod :
$ sudo lsmod | grep kvm
Exemple de résultat :
kvm_intel 282624 0 kvm 663552 1 kvm_intel

Trouver des modules de virtualbox :
$ sudo lsmod | grep vbox
Exemple de résultat :
vboxnetadp 28672 0 vboxnetflt 28672 0 vboxdrv 487424 2 vboxnetadp,vboxnetflt

Tous les modules sont chargés.
Après avoir consulté le forum Virtualbox, j'ai réalisé que cette erreur se produisait si nous exécutions simultanément plusieurs hyperviseurs en même temps sur le même hôte.
Alors, comment corriger l'erreur Virtualbox Guru Meditation sous Linux ?
En fait, il n'y a pas de FIX. Vous devez utiliser un hyperviseur à la fois. Les extensions de virtualisation matérielle Intel VT-x/AMD-V ne peuvent pas être utilisées à partir de plusieurs hyperviseurs différents exécutés simultanément sur le même hôte. Vous ne devez exécuter que l'hyperviseur sur un seul hôte. Si vous souhaitez en utiliser un autre, fermez l'hyperviseur en cours d'exécution et démarrez l'autre.
Une autre raison de la méditation du gourou de la virtualbox est que VT-x peut être désactivé dans le BIOS . Assurez-vous de l'avoir activé dans votre bios. Reportez-vous au manuel du fabricant de votre système pour activer VT dans le BIOS.
Je ne peux pas utiliser KVM et VirtualBox côte à côte
Je n'ai aucun problème avec KVM et Virtualbox sur mon système Ubuntu 20.04. Je peux être capable de courir les deux côte à côte.
Certains d'entre vous peuvent rencontrer cette erreur lors de l'exécution de KVM et Virtualbox sur le même hôte :
VERR_VMX_IN_VMX_ROOT_MODE
Si vous ne pouvez pas utiliser Virtualbox avec KVM, vous pouvez temporairement désactiver les modules kvm, puis les activer quand vous le souhaitez.
Déchargez les modules KVM en cours d'exécution à l'aide de la commande :
$ sudo rmmod kvm-intel
S'il s'agit d'un système AMD, utilisez plutôt cette commande :
$ sudo rmmod kvm-amd
Vous pouvez également utiliser les commandes suivantes :
$ sudo modprobe -r kvm_intel
$ sudo modprobe -r kvm
Sur AMD :
$ sudo modprobe -r kvm_amd
$ sudo modprobe -r kvm
Essayez maintenant de démarrer les machines virtuelles Virtualbox. Cela devrait fonctionner maintenant.
Activer les modules KVM
Pour activer les modules KVM, vous devez d'abord les trouver où se trouvent-ils sur votre disque. Pour ce faire, exécutez :
$ sudo updatedb
$ sudo locate kvm
Vous devriez voir une sortie comme ci-dessous.
/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 [...]
Recherchez "kvm-intel.ko
" et "kvm.ko
". Activez ces deux modules à l'aide des commandes :
$ 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
Sur les systèmes AMD, remplacez "kvm-intel.ko
" avec "kvm-amd.ko
".
Vous pouvez maintenant exécuter des instances KVM. N'oubliez pas que les machines virtuelles Virtualbox ne démarreront pas tant que vous n'aurez pas désactivé toutes les instances KVM.
Référence :
- Forum Virtualbox
Lire connexe :
- Comment réparer l'erreur VirtualBox "Pilote du noyau non installé (rc=-1908)" dans Ubuntu
- Résoudre l'erreur Virtualbox "Impossible de modifier les vboxusers du groupe pour l'appareil /dev/vboxdrv"
- La machine virtuelle CentOS 8 ne fonctionne pas dans VirtualBox 5.2 sur Ubuntu 18.04
- Résoudre l'erreur VirtualBox "Code de résultat :NS_ERROR_FAILURE (0x80004005)" dans Arch Linux