虚拟盒无法启动任何虚拟机,怀疑这是由于内核更新造成的
Kernel driver not installed (rc=-1908)
VirtualBox Linux 内核驱动程序 ( vboxdrv
) 未加载或 存在权限问题/dev/vboxdrv
。请重新安装 virtualbox-dkms 包并通过执行加载内核模块
modprobe vboxdrv
以 root 身份运行。
其中:suplibOsInit 内容:3 VERR_VM_DRIVER_NOT_INSTALLED (-1908) - 未安装支持驱动程序。在 Linux 上,open 返回 ENOENT。
当你尝试重新安装 dkms 时
sudo apt-get install --reinstall virtualbox-dkms
Building for 5.0.0-23-generic
Building initial module for 5.0.0-23-generic
ERROR: Cannot create report: [Errno 17] File exists: '/var/crash/virtualbox-dkms.0.crash'
Error! Bad return status for module build on kernel: 5.0.0-23-generic (x86_64)
Consult /var/lib/dkms/virtualbox/5.2.18/build/make.log for more information.
Make日志如下:
DKMS make.log for virtualbox-5.2.18 for kernel 5.0.0-23-generic (x86_64)
Sun Aug 4 08:04:13 IST 2019
make: Entering directory '/usr/src/linux-headers-5.0.0-23-generic'
CC [M] /var/lib/dkms/virtualbox/5.2.18/build/vboxdrv/linux/SUPDrv-linux.o
CC [M] /var/lib/dkms/virtualbox/5.2.18/build/vboxdrv/SUPDrv.o
CC [M] /var/lib/dkms/virtualbox/5.2.18/build/vboxdrv/SUPDrvGip.o
CC [M] /var/lib/dkms/virtualbox/5.2.18/build/vboxdrv/SUPDrvSem.o
CC [M] /var/lib/dkms/virtualbox/5.2.18/build/vboxdrv/SUPDrvTracer.o
CC [M] /var/lib/dkms/virtualbox/5.2.18/build/vboxdrv/SUPLibAll.o
CC [M] /var/lib/dkms/virtualbox/5.2.18/build/vboxdrv/r0drv/alloc-r0drv.o
CC [M] /var/lib/dkms/virtualbox/5.2.18/build/vboxdrv/r0drv/initterm-r0drv.o
CC [M] /var/lib/dkms/virtualbox/5.2.18/build/vboxdrv/r0drv/memobj-r0drv.o
CC [M] /var/lib/dkms/virtualbox/5.2.18/build/vboxdrv/r0drv/mpnotification-r0drv.o
CC [M] /var/lib/dkms/virtualbox/5.2.18/build/vboxdrv/r0drv/powernotification-r0drv.o
CC [M] /var/lib/dkms/virtualbox/5.2.18/build/vboxdrv/r0drv/linux/assert-r0drv-linux.o
CC [M] /var/lib/dkms/virtualbox/5.2.18/build/vboxdrv/r0drv/linux/alloc-r0drv-linux.o
CC [M] /var/lib/dkms/virtualbox/5.2.18/build/vboxdrv/r0drv/linux/initterm-r0drv-linux.o
CC [M] /var/lib/dkms/virtualbox/5.2.18/build/vboxdrv/r0drv/linux/memobj-r0drv-linux.o
CC [M] /var/lib/dkms/virtualbox/5.2.18/build/vboxdrv/r0drv/linux/memuserkernel-r0drv-linux.o
/var/lib/dkms/virtualbox/5.2.18/build/vboxdrv/r0drv/linux/memuserkernel-r0drv-linux.c: In function ‘VBoxHost_RTR0MemUserIsValidAddr’:
/var/lib/dkms/virtualbox/5.2.18/build/vboxdrv/r0drv/linux/memuserkernel-r0drv-linux.c:69:55: error: macro "access_ok" passed 3 arguments, but takes just 2
bool fRc = access_ok(VERIFY_READ, (void *)R3Ptr, 1);
^
/var/lib/dkms/virtualbox/5.2.18/build/vboxdrv/r0drv/linux/memuserkernel-r0drv-linux.c:69:16: error: ‘access_ok’ undeclared (first use in this function)
bool fRc = access_ok(VERIFY_READ, (void *)R3Ptr, 1);
^~~~~~~~~
/var/lib/dkms/virtualbox/5.2.18/build/vboxdrv/r0drv/linux/memuserkernel-r0drv-linux.c:69:16: note: each undeclared identifier is reported only once for each function it appears in
scripts/Makefile.build:284: recipe for target '/var/lib/dkms/virtualbox/5.2.18/build/vboxdrv/r0drv/linux/memuserkernel-r0drv-linux.o' failed
make[2]: *** [/var/lib/dkms/virtualbox/5.2.18/build/vboxdrv/r0drv/linux/memuserkernel-r0drv-linux.o] Error 1
make[2]: *** Waiting for unfinished jobs....
scripts/Makefile.build:515: recipe for target '/var/lib/dkms/virtualbox/5.2.18/build/vboxdrv' failed
make[1]: *** [/var/lib/dkms/virtualbox/5.2.18/build/vboxdrv] Error 2
Makefile:1606: recipe for target '_module_/var/lib/dkms/virtualbox/5.2.18/build' failed
make: *** [_module_/var/lib/dkms/virtualbox/5.2.18/build] Error 2
make: Leaving directory '/usr/src/linux-headers-5.0.0-23-generic'
如果我尝试
sudo modprobe vboxdrv
modprobe: FATAL: Module vboxdrv not found in directory /lib/modules/5.0.0-23-generic
知道如何修复这个问题吗?
答案1
您需要清除并重新安装 VirtualBox。
将您的虚拟机备份到安全的地方。
清除 Virtualbox:
$ sudo apt purge virtualbox*
摆脱旧的依赖和配置:
$ sudo apt autoremove $ sudo apt autoclean
安装崭新的 VBox
安装 VBox 有两种方式。从标准存储库 (选项1)或来自 PPA(选项 2)。只做其中一项,不要同时做两项。
选项 1. 您可以直接从标准存储库安装,如下所示:
$ sudo apt install virtualbox
选项 2. 从 PPA 安装
如果您想要最新版本的 VBox 和任何潜在的闭源驱动程序,请按照以下步骤从 PPA 安装。
4.2.1.将以下行添加到您的 /etc/apt/sources.list:
deb https://download.virtualbox.org/virtualbox/debian bionic contrib
4.2.2.下载 Oracle 公钥:
$ wget -q https://www.virtualbox.org/download/oracle_vbox_2016.asc -O- | sudo apt-key add -
$ wget -q https://www.virtualbox.org/download/oracle_vbox.asc -O- | sudo apt-key add -
4.2.3.安装 VirtualBox:
sudo apt-get update
sudo apt-get install virtualbox
有关 PPA 安装的更多信息这里。
- 享受 :)
答案2
我知道这是一个老话题,但我在 Ubuntu 22.04 中遇到了同样的问题,据我所知,这是由于安全启动造成的。
我尝试通过终端排除运行 virtualbox 的故障,然后收到一条消息,建议我运行
sudo/sbin/vboxconfig 复制代码
它帮助我通过引导过程对内核驱动程序进行签名(再次,如果我做对了的话)。
到目前为止一切运行良好,我希望这能有所帮助。
如果我写错了或者不清楚请告诉我:)