为什么Virtualbox在Ubuntu20.04上安装失败?

8

我正在尝试安装VirtualBox。我之前已经安装过它并且可以正常使用。今天我试图添加另一个虚拟机,但是它开始抱怨dkms出现问题,所以我尝试卸载并重新安装所有内容,但是失败了。

$  sudo apt install virtualbox
Reading package lists... Done
Building dependency tree       
Reading state information... Done
The following additional packages will be installed:
  dkms libgsoap-2.8.91 libqt5opengl5 libsdl1.2debian libvncserver1 virtualbox-dkms virtualbox-qt
Suggested packages:

我无法提交我的问题,而不跳过一些输出内容。

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
dpkg: dependency problems prevent configuration of virtualbox:
 virtualbox depends on virtualbox-dkms (>= 6.1.10-dfsg-1~ubuntu1.20.04.1) | virtualbox-source (>= 6.1.10-dfsg-1~u
buntu1.20.04.1) | virtualbox-modules; however:
  Package virtualbox-dkms is not configured yet.
  Package virtualbox-source is not installed.
  Package virtualbox-modules is not installed.
  Package virtualbox-dkms which provides virtualbox-modules is not configured yet.

dpkg: error processing package virtualbox (--configure):
 dependency problems - leaving unconfigured
dpkg: dependency problems prevent configuration of virtualbox-qt:
 virtualbox-qt depends on virtualbox (= 6.1.10-dfsg-1~ubuntu1.20.04.1); however:
  Package virtualbox is not configured yet.

dpkg: error processing package virtualbox-qt (--configure):
 dependency problems - leaving unconfigured
No apport report written because the error message indicates it's a follow-up error from a previous failure.
                                                                                                            No ap
port report written because the error message indicates it's a follow-up error from a previous failure.
                                                                                                       Processing
 triggers for desktop-file-utils (0.24-1ubuntu3) ...
Processing triggers for mime-support (3.64ubuntu1) ...
Processing triggers for hicolor-icon-theme (0.17-2) ...
Processing triggers for gnome-menus (3.36.0-1ubuntu1) ...
Processing triggers for libc-bin (2.31-0ubuntu9.1) ...
Processing triggers for systemd (245.4-4ubuntu3.3) ...
Processing triggers for man-db (2.9.1-1) ...
Processing triggers for shared-mime-info (1.15-1) ...
Errors were encountered while processing:
 virtualbox-dkms
 virtualbox
 virtualbox-qt
E: Sub-process /usr/bin/dpkg returned an error code (1)

DKMS 错误

$ cat /var/lib/dkms/virtualbox/6.1.10/build/make.log DKMS make.log 虚拟机 virtualbox-6.1.10 的内核版本为 5.8.0-36-generic(x86_64) Tue 12 Jan 12:40:32 GMT 2021 正在构建中... 进入目录 '/usr/src/linux-headers-5.8.0-36-generic' 编译中... /var/lib/dkms/virtualbox/6.1.10/build/vboxdrv/linux/SUPDrv-linux.o 正在编译... /var/lib/dkms/virtualbox/6.1.10/build/vboxdrv/SUPDrv.o 正在编译... /var/lib/dkms/virtualbox/6.1.10/build/vboxdrv/SUPDrvGip.o 正在编译... /var/lib/dkms/virtualbox/6.1.10/build/vboxdrv/SUPDrvSem.o 正在编译... /var/lib/dkms/virtualbox/6.1.10/build/vboxdrv/SUPDrvTracer.o 正在编译... /var/lib/dkms/virtualbox/6.1.10/build/vboxdrv/SUPLibAll.o 正在编译... /var/lib/dkms/virtualbox/6.1.10/build/vboxdrv/r0drv/alloc-r0drv.o 正在编译... /var/lib/dkms/virtualbox/6.1.10/build/vboxdrv/r0drv/initterm-r0drv.o 正在编译... /var/lib/dkms/virtualbox/6.1.10/build/vboxdrv/r0drv/memobj-r0drv.o 正在编译... /var/lib/dkms/virtualbox/6.1.10/build/vboxdrv/r0drv/mpnotification-r0drv.o 正在编译... /var/lib/dkms/virtualbox/6.1.10/build/vboxdrv/r0drv/powernotification-r0drv.o 正在编译... /var/lib/dkms/virtualbox/6.1.10/build/vboxdrv/r0drv/linux/assert-r0drv-linux.o 报错:'cpu_tlbstate' 未声明,第一次在此函数中使用;您是否意味着 'cpuhp_state'? ./include/asm-generic/percpu.h:7 中包含, ./arch/x86/include/asm/percpu.h:556 中引用, ./arch/x86/include/asm/preempt.h:6 中包含, ./include/linux/preempt.h:78 中定义, ./include/linux/spinlock.h:51 中包含, /var/lib/dkms/virtualbox/6.1.10/build/vboxdrv/linux/../SUPDrvInternal.h:79 中引用, /var/lib/dkms/virtualbox/6.1.10/build/vboxdrv/linux/SUPDrv-linux.c:32 中引用。 函数名为 'supdrvOSChangeCR4'。 760 | RTCCUINTREG uOld = this_cpu_read(cpu_tlbstate.cr4); | ^~~~~~~~~~~~ 增加 -D__KERNEL__ -DMODULE 参数并重新编译 SUPDrv-linux.c 即可解决此问题。
7个回答

10

我也遇到了同样的问题,但最终解决了!!!

通过完全删除 Virtualbox 并重新安装它来解决。

尝试降级内核,但对我没有用。

sudo apt-get purge "^virtualbox-.*"

sudo apt-get autoremove && sudo apt-get autoclean && sudo apt-get clean

然后从此链接下载适用于Ubuntu 20.04的最新VirtualBox版本:

https://www.virtualbox.org/wiki/Linux_Downloads

我尝试了很多其他解决方案,但都没有成功。


2

请尝试从下载页面安装virtualbox,以确保它是最新版本(6.1.16)。
如果仍然失败,也许这个答案可以帮助。


很遗憾,你提到的答案在我降级内核之前是行不通的。降级内核后,简单的“sudo apt install virtualbox”就可以正常工作了。 - ruby_object
我也遇到了同样的问题。我认为这是一个VirtualBox的bug。 - user3732793

1

遇到了类似的问题。

  • 完全卸载并清除之前未能安装的VirtualBox文件

sudo apt-get purge "^virtualbox-.*"

sudo apt-get autoremove && sudo apt-get autoclean && sudo apt-get clean

wget https://download.virtualbox.org/virtualbox/7.0.6/VirtualBox-7.0.6-155176-Linux_amd64.run

  • 使文件可执行

chmod +x ./VirtualBox-7.0.6-155176-Linux_amd64.run

  • 运行安装脚本

sudo ./VirtualBox-7.0.6-155176-Linux_amd64.run

注意:您可能需要更改版本号


刚刚使用了 sudo apt-get purge "^virtualbox-.*"然后按照你之前的步骤操作,对我来说也起作用了。 - undefined

0

移除内核版本如5.8并降级到5.4.0-60-generic已经解决了问题。在使用内核5.4.0-60-generic启动后,我能够使用Synaptic安装Virtualbox,并且我的新虚拟机可以正常工作。


0

0

你的回答可以通过提供更多支持信息来改进。请编辑以添加进一步的细节,例如引用或文档,以便他人可以确认你的答案是正确的。您可以在帮助中心找到有关如何编写良好答案的更多信息。 - Community

-1

不建议从终端安装任何软件,因为你总是会得到那个软件的旧版本。因此,最好从它们各自的官方网站安装和下载软件。

在您的情况下,最好退出终端并尝试从VirtualBox的官方网站安装:

https://www.virtualbox.org/wiki/Linux_Downloads

如果这个方法还是不行的话,那么尝试从Synaptic软件包管理器中删除所有的VirtualBox依赖项,然后重新安装VirtualBox。

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