VirtualBox 6.1.10,在 Ubuntu 20.04 上构建内核 5.8.0 时返回状态不佳,virtualbox-dkms 包出现错误。

9

这不仅仅是一个问题,更是一份文档。

这是关于virtualbox 6.1.10、Ubuntu 20.04和virtualbox-dkms包构建失败导致apt-get installupdate失败的情况。

我最近在Ubuntu 20.04和Virtual Box 6.1.10上遇到了一个问题,类似于这里这里所描述的情况。

问题在于,在ubuntu软件中心安装virtual box会安装不兼容当前ubuntu内核版本v5.8.xx的版本v6.1.10。

虽然这些都是已知问题,但当我错误地尝试从包商店重新安装vbox时,我的问题出现了。之前,virtualbox-dkms已经编译并且重新安装会移除正常运行的包,该过程会因错误(状态10)而失败。所以我就遇到了这样的错误:

Loading new virtualbox-6.1.10 DKMS files...
Building for 5.8.0-36-generic
Building initial module for 5.8.0-36-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.8.0-36-generic (x86_64)
Consult /var/lib/dkms/virtualbox/6.1.10/build/make.log for more information.
dpkg: error processing package virtualbox-dkms (--configure):
 installed virtualbox-dkms package post-installation script subprocess returned error exit status 10
Processing triggers for man-db (2.9.1-1) ...
Errors were encountered while processing:
 virtualbox-dkms

这个错误可能会出现在以下位置:
cat /var/log/apt/history.log

---or---

/var/log/apt/term.log

为了解决这个问题,我直接从他们的网站重新安装了virtualbox v.6.1.16,并按照这里的说明进行操作。
然而,在随后的更新中,我仍然收到有关virtualbox-dkms的相同错误,即使该过程不再使用。因此,为了解决这个问题,我遵循这个网站的指示。
我复制了导致失败的后安装脚本:
sudo mv /var/lib/dpkg/info/virtualbox-dkms.postinst ./virtualbox-dkms.postinst.bac

然后清除了旧版VirtualBox安装的剩余DKMS文件并进行了更新:

sudo apt-get purge virtualbox-dkms
sudo apt-get update && sudo apt-get upgrade

到目前为止没有问题!希望这可以帮助其他人!

简而言之:尝试重新安装修复通过Ubuntu软件管理器安装的VirtualBox v6.10。 v6.10与Ubuntu 20.04内核v5.8存在问题。要修复损坏的软件包virtualbox-dkms,请移除后安装脚本,并清除旧的virtualbox v6.1.10文件,然后直接从VirtualBox网站安装以获取VirtualBox ^v6.1.16。

2个回答

12

我也遇到了同样的问题,并成功通过以下步骤解决:

首先,使用以下命令更新和升级您的Ubuntu 20.04:

sudo apt-get update
sudo apt-get upgrade

然后,删除现有的dkms树包。

sudo apt-get remove virtualbox-dkms

继续删除虚拟盒

sudo apt-get remove virtualbox
sudo apt-get autoremove

Virtualbox下载页面下载安装程序

wget https://download.virtualbox.org/virtualbox/6.1.16/virtualbox-6.1_6.1.16-140961~Ubuntu~eoan_amd64.deb
安装该软件包。
sudo dpkg -i virtualbox-6.1_6.1.16-140961_Ubuntu_eoan_amd64.deb
安装可能因为某些依赖项而失败,请尝试运行sudo apt-get install -f,然后重新安装软件包。

1
太棒了,非常感谢这个很好的描述!特别是sudo apt-get install -f的提示非常有用,因为在第一次尝试安装时失败了。 - Moongazer
不需要制作.deb可执行文件。 - jrouquie
这将在下一次内核升级之前起作用,然后您将不得不再次升级virtualbox。并不是6.1.16 virtualbox为所有内核修复了问题,而是该版本支持所涉及的5.8内核。更好的建议是更新到最新可用版本的virtualbox,而不是特定版本。 - AntonOfTheWoods

0

在我的情况下,Liquorix内核是不受支持的:

utku3@utku3:~/software$ sudo apt upgrade

.
.
.
 
depmod...

DKMS: install completed.
Building initial module for 5.12.0-6.2-liquorix-amd64
ERROR (dkms apport): kernel package linux-headers-5.12.0-6.2-liquorix-amd64 is not supported
Error! Bad return status for module build on kernel: 5.12.0-6.2-liquorix-amd64 (x86_64)
Consult /var/lib/dkms/virtualbox/6.1.16/build/make.log for more information.
dpkg: error processing package virtualbox-dkms (--install):
 installed virtualbox-dkms package post-installation script subprocess returned error exit status 10
Errors were encountered while processing:
 virtualbox-dkms

所以我刚刚删除并重新安装了linux-headers-5.12.0-6.2-liquorix-amd64

utku3@utku3:~/software$ sudo apt remove linux-headers-5.12.0-6.2-liquorix-amd64
.
.
.
The following packages will be REMOVED:
  linux-headers-5.12.0-6.2-liquorix-amd64 linux-headers-liquorix-amd64
.
.
.
utku3@utku3:~/software$ sudo apt install linux-headers-liquorix-amd64 linux-headers-5.12.0-6.2-liquorix-amd64

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接