解决"结果代码:ns_error_failure(0x80004005)"Arch Linux中的VirtualBox错误

时间:2020-03-21 11:47:16  来源:igfitidea点击:

我刚刚在我的Arch Linux系统中升级到内核4.18.7,它打破了VirtualBox。
更新内核后,VirtualBox已停止工作。
当我启动VM时,我收到了此错误:

Kernel driver not installed (rc=-1908)
The VirtualBox Linux kernel driver (vboxdrv) is either not loaded or there is a permission problem with /dev/vboxdrv. Please reinstall the kernel module by executing
'/sbin/vboxconfig'
as root.
where: suplibOsInit what: 3 VERR_VM_DRIVER_NOT_INSTALLED (-1908) - The support driver is not installed. On linux, open returned ENOENT.

这个错误也是如此:

The virtual machine 'Ubuntu 18.04 LTS Server' has terminated unexpectedly during startup with exit code 1 (0x1).
结果代码:ns_error_failure(0x80004005)
组件:machinewrap
接口:imachine {85CD948E-A71F-4289-281E-0CA7AD48CD89}

奇怪的?
我按照第一个镜像中建议重新安装内核模块的以下命令进行以下命令。

$sudo /sbin/vboxconfig

但我的Arch Linux系统说没有这样的命令:

sudo: /sbin/vboxconfig: command not found

然后,我接着Arch Linux论坛。
在浏览论坛时,有人建议运行此命令:

$sudo modprobe vboxdrv

和......我收到了这个错误:

modprobe: ERROR: could not insert 'vboxdrv': Exec format error

在论坛上花费几分钟后,最后我通过更新VirtualBox-host-modules包来解决此错误。

如果曾经遇到此错误,则我们必须做的就是更新VirtualBox-host-modules包或者更好地运行完整的更新。

为此,只需运行:

$sudo pacman -Syyu

最后,运行此命令以重新加载内核模块:

$sudo /sbin/rcvboxdrv setup
Unloading modules: 
Loading modules: vboxnetadp vboxnetflt vboxpci vboxdrv

VirtualBox现在应该工作。

如果我们仍然获得相同的错误,请查找已安装的VirtualBox主机模块:

$pacman -Q | grep virtual
virtualbox 5.2.18-1
virtualbox-guest-iso 5.2.18-1
virtualbox-host-modules-arch 5.2.18-8
virtualbox-sdk 5.2.18-1

并且,使用VirtualBox-Host-DKMS替换VirtualBox-Host-Modules-Arch包
包装如下。

$sudo pacman -Syu
$sudo pacman -S virtualbox-host-dkms

系统将提示我们删除VirtualBox-host-modules-arch包。
只需键入y并按Enter键以安装VirtualBox-Host-DKMS。

确保已安装内核标头:

$sudo pacman -S linux-headers

最后,运行以下命令:

$sudo modprobe vboxdrv
$sudo /sbin/rcvboxdrv setup

重新启动系统,现在VirtualBox应该工作。