最近给Manjaro更新了下系统,连带着内核也更新了,随之VirtualBox启动失败,出现如下提示:
"VirtualBox can't operate in VMX root mode. Please disable the KVM kernel extension, recompile your kernel and reboot (VERR_VMX_IN_VMX_ROOT_MODE)."
解决办法如下:
终端运行lsmod | grep kvm,找到使用KVM的模块,我的显示如下:
lsmod | grep kvm
kvm_intel 425984 0
kvm 1388544 1 kvm_intel
运行命令卸载kvm模块,并重新加载vboxdrv模块。
sudo rmmod kvm_intel
sudo rmmod kvm
sudo modprobe vboxdrv
如果想重新加载kvm模块
sudo modprobe kvm
sudo modprobe kvm_intel
普通用户用不到,劝你不要重新加载
11/21更新
使用中发现:「每次重启电脑后,启动virtualbox都会再次报同样的错」。
意味着每次开机kvm模块都会重新加载,也就是说重启一次电脑,就要重新禁用一次kvm模块。
那么有没有一劳永逸的办法呢?有的。
1、创建脚本
sudo nano /usr/local/bin/disable_kvm_on_boot
2、添加如下内容:
#!/bin/bash
#根据前述kvm模块查询方法,修改为自己系统加载的kvm模块
sudo rmmod kvm_intel&sudo rmmod kvm
3、赋予脚本执行权限:
sudo chmod +x /usr/local/bin/disable_kvm_on_boot
4、创建systemd服务
sudo nano /etc/systemd/system/disable-kvm.service
5、添加如下内容:
[Unit]
Description=Disable KVM on boot
[Service]
Type=oneshot
RemainAfterExit=no
ExecStart=/usr/local/bin/disable_kvm_on_boot
[Install]
WantedBy=multi-user.target
6、启用服务
sudo systemctl daemon-reload
sudo systemctl enable disable-kvm.service
7、重启电脑,直接启动virtualbox试试吧。
后记:
大部分网上教程都是给到卸载KVM这一步,即便如此,还是无法启动virtualbox。
折腾的过程中,因为怎么都不成功,我一度放弃了,还一度转用gnome boxes,本以为这东西稳定,没想到问题更多!!!细节暂且不说,血泪!
终于我用我的聪明才智,在提示里发现了蛛丝马迹,发现需要再次加载vboxdrv。然后virtualbox就成功启动了。
finally我再也不用折腾了!
参考:
Issue with Virtual Box 7.0 on Ubuntu 22.04 - #3 by JoelA - Ubuntu - It's FOSS Community
Gnome-boxes之镜像迁移到另一台主机(一百七十一)_gnomebox本机和客机互传文件-CSDN博客
ChatGPT