解决VirtualBox rc=-1908的错误

日常虽然使用linux办公,但是还是用virtualbox安装了一个20G的Windows作为ps等不可替代软件的作业环境。

每次Linux滚动更新(尤其是内核更新)后,virtualbox经常会遇到趴窝的情况。经过多方查证,有时可以解决问题,有时又不行,并且网上的说法不一,估计也是一篇篇的博客相互抄袭,今天更新内核又出现了这个问题:VirtualBox rc=-1908的错误。

下面说一下解决办法:

1.问题分析

关键字dmesg和modprobe vboxdrv

dmesg,按照Wiki上的描述,是一个这样的东西:

dmesg (display message or driver message) is a command on most Unix-like operating systems that prints the message buffer of the kernel.[1] The output of this command typically contains the messages produced by the device drivers.

查看了dmesg输出以后并没有什么有用的信息。

而另一个关键字modprobe,可以理解为使某个模块生效,那么说明是vboxdrv没有生效,是VirtualBox的驱动,Linux内核专门有一个用于驱动VirtualBox的驱动,叫做virtualbox-dkms,其中dkms代表Dynamic Kernel Module Support.

所以问题根源在于virtualbox-dkms没有被驱动。

2.知道了核心问题,下面解决办法就可以有的放矢了。

既然是驱动没有加载,那我们应该想想为什么没有加载,因为我们升级了内核!这样的话加载的就是上一个内核版本的驱动,已经不适用当前内核了,那我们需要为当前内核重新安装一个驱动,用以下命令:

sudo apt install --reinstall linux-headers-$(uname -r) virtualbox-dkms dkms

这条命令是先安装与当前内核版本相对应的linux-headers,用于配置virtualbox-dkms,然后再安装对应的驱动就能够自动完成配置了。

但笔者完成配置后遇到了意外:

E: 错误,pkgProblemResolver::Resolve (发生故障,这可能是有软件包被要求保持现状的缘故)

这个问题很好解决,是依赖包的冲突问题,

卸载包:

apt purge gcc-9-base (注意这一步要具体根据提示冲突的包来做,狠心卸载就行,kali基于debian本身的容错机制很强,不会出现gentoo那样的错误回滚的情况。但是gentoo可以轻松实现软件的多版本共存,没有可比性)

然后根据提示,处理一下废包:

sudo apt autoremove

最后记得修复一下依赖关系

sudo apt -f install

再输入以下命令:

sudo modprobe vboxdrv

问题解决。

解决VirtualBox rc=-1908的错误_第1张图片

你可能感兴趣的:(安全性测试,运维,linux)