5

我尝试使用 pacman 在 Arch(4.7.0-1) 上安装 Virtualbox,在我尝试运行它之前一切似乎都很好。我收到以下消息

警告:未加载 vboxdrv 内核模块。当前内核(4.7.0-1-ARCH)没有可用的模块,或者无法加载。请重新编译内核模块并安装它

       sudo /sbin/vboxconfig

     You will not be able to start VMs until this problem is fixed.

VirtualBox:supR3HardenedMainGetTrustedMain:dlopen(“/usr/lib/virtualbox/VirtualBox.so”,)失败:/usr/lib/libQt5Core.so.5:文件太短

关于我应该从哪里开始调试的任何想法?

4

3 回答 3

4

从 5.0.16 版本开始,virtualbox-host-modules-arch 和 virtualbox-host-dkms 使用 systemd-modules-load.service 在启动时加载所有四个 VirtualBox 模块。

要手动加载模块,请运行:modprobe vboxdrv

https://wiki.archlinux.org/index.php/VirtualBox#Load_the_VirtualBox_kernel_modules

于 2016-08-20T17:30:02.183 回答
1

就我而言,此答案仅在UbuntuDebian 9中进行了测试,但也许对您有用。

我认为问题在于vboxdrv模块没有签名,因此没有加载内核。如果您的计算机激活了 SecureBoot 模式,就会发生这种情况,这在现代设备中非常常见。

这就是为什么我在 Virtual Box 中打开任何机器时都会收到此错误

未安装内核驱动程序 (rc=-1908)

执行以下步骤对驱动程序进行签名,并将其作为内核模块加载:

1.安装mkutil包可以做签名。

sudo apt-get update
sudo apt-get upgrade
sudo apt-get install mokutil

2.生成签名文件:

openssl req -new -x509 -newkey rsa:2048 -keyout MOK.priv -outform DER -out MOK.der -nodes -days 36500 -subj "/CN=VirtualBox/"

3.然后将其添加到内核中:

sudo /usr/src/linux-headers-$(uname -r)/scripts/sign-file sha256 ./MOK.priv ./MOK.der $(modinfo -n vboxdrv)

4.注册安全启动。

重要的!这将要求您输入密码,输入您想要的密码,您只需在下次重新启动时使用它一次。

sudo mokutil --import MOK.der

5.最后重启电脑。将出现蓝屏并等待键盘,按要求您中断启动的键。

在此处输入图像描述

当您在蓝屏内时,选择

Enroll MOK > Continue > Yes > and it will ask you for the password

之前输入过的,输入后会提示操作已成功完成。

现在您的操作系统将启动,您现在可以毫无问题地使用 VirtualBox :)

希望这对某人有所帮助。

于 2019-12-30T20:52:50.013 回答
-1

打开终端 - 验证版本/代号

代码:

lsb_release -a

使用任何纯文本编辑器,如 gedit/scite/bash

代码:

sudo gedit /etc/apt/sources.list

将以下行添加到您的 /etc/apt/sources.list:

代码:

deb http://download.virtualbox.org/virtualbox/debian xenial contrib

保存并关闭

添加密钥,并与下载和注册相结合;

代码:

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 -

确保已安装 DKMS。可能需要重新安装到当前内核。

代码:

dkms status

此时您可能会遇到抱怨 linux-headers 的错误,只需通过以下方式下载 header 包apt-get install linux-headers-5.4.0-28-generic

确保计算机和操作系统是最新的

代码:

sudo apt-get autoclean sudo apt-get clean sudo apt-get autoremove sudo apt-get update sudo apt-get upgrade

为当前运行的内核重建所有 DKMS 模块:

代码:

dkms autoinstall

安装最新版本的 VirtualBox

代码:

sudo apt-get install virtualbox

于 2020-07-23T07:42:15.357 回答