更新

更新

我正在运行 Ubuntu 20.04,最近进行了 dist-upgrade。

uname -r: 5.8.0-34-generic

我通过以下方式清除了 Virtualbox 和相关文件:

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

尝试重新安装任何软件后,我现在得到以下信息:

>>$ sudo apt install --reinstall linux-headers-$(uname -r)
Reading package lists... Done
Building dependency tree       
Reading state information... Done
0 upgraded, 0 newly installed, 1 reinstalled, 0 to remove and 0 not upgraded.
3 not fully installed or removed.
Need to get 0 B/1,236 kB of archives.
After this operation, 0 B of additional disk space will be used.
(Reading database ... 328260 files and directories currently installed.)
Preparing to unpack .../linux-headers-5.8.0-34-generic_5.8.0-34.37~20.04.2_amd64.deb ...
Unpacking linux-headers-5.8.0-34-generic (5.8.0-34.37~20.04.2) over (5.8.0-34.37~20.04.2) ...
Setting up linux-headers-5.8.0-34-generic (5.8.0-34.37~20.04.2) ...
/etc/kernel/header_postinst.d/dkms:
 * dkms: running auto installation service for kernel 5.8.0-34-generic

Kernel preparation unnecessary for this kernel.  Skipping...

Building module:
cleaning build area...
make -j8 KERNELRELEASE=5.8.0-34-generic -C /lib/modules/5.8.0-34-generic/build M=/var/lib/dkms/virtualbox/6.1.10/build...(bad exit status: 2)
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-34-generic (x86_64)
Consult /var/lib/dkms/virtualbox/6.1.10/build/make.log for more information.
   ...done.
Setting up virtualbox-dkms (6.1.10-dfsg-1~ubuntu1.20.04.1) ...
Removing old virtualbox-6.1.10 DKMS files...

------------------------------
Deleting module version: 6.1.10
completely from the DKMS tree.
------------------------------
Done.
Loading new virtualbox-6.1.10 DKMS files...
Building for 5.8.0-34-generic
Building initial module for 5.8.0-34-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-34-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~ubuntu1.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 its a followup error from a previous failure.
                                                                                                          No apport report written because the error message indicates its a followup err
or from a previous failure.
                           Errors were encountered while processing:
 virtualbox-dkms
 virtualbox
 virtualbox-qt
E: Sub-process /usr/bin/dpkg returned an error code (1)

跑步

sudo apt-get install -f

无法修复依赖问题。我仍然得到相同的输出:

>>$ sudo apt-get install -f
Reading package lists... Done
Building dependency tree       
Reading state information... Done
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
3 not fully installed or removed.
After this operation, 0 B of additional disk space will be used.
Setting up virtualbox-dkms (6.1.10-dfsg-1~ubuntu1.20.04.1) ...
Removing old virtualbox-6.1.10 DKMS files...

------------------------------
Deleting module version: 6.1.10
completely from the DKMS tree.
------------------------------
Done.
Loading new virtualbox-6.1.10 DKMS files...
Building for 5.8.0-34-generic
Building initial module for 5.8.0-34-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-34-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~ubuntu1.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 its a followup error from a previous failure.
                                                                                                          No apport report written because the error message indicates its a followup error from a previous failure.
                           Errors were encountered while processing:
 virtualbox-dkms
 virtualbox
 virtualbox-qt
E: Sub-process /usr/bin/dpkg returned an error code (1)

按照如下方式重新配置会产生相同的消息:

sudo dpkg --configure -a

位于 /var/crash/virtualbox-dkms.0.crash 的崩溃报告显示以下内容:

ProblemType: Package
DKMSBuildLog:
 DKMS make.log for virtualbox-6.1.10 for kernel 5.8.0-34-generic (x86_64)
 Thursday, January 07, 2021 AM09:37:43 HKT
 make: Entering directory '/usr/src/linux-headers-5.8.0-34-generic'
   CC [M]  /var/lib/dkms/virtualbox/6.1.10/build/vboxdrv/linux/SUPDrv-linux.o
   CC [M]  /var/lib/dkms/virtualbox/6.1.10/build/vboxdrv/SUPDrv.o
   CC [M]  /var/lib/dkms/virtualbox/6.1.10/build/vboxdrv/SUPDrvGip.o
   CC [M]  /var/lib/dkms/virtualbox/6.1.10/build/vboxdrv/SUPDrvSem.o
   CC [M]  /var/lib/dkms/virtualbox/6.1.10/build/vboxdrv/SUPDrvTracer.o
   CC [M]  /var/lib/dkms/virtualbox/6.1.10/build/vboxdrv/SUPLibAll.o
   CC [M]  /var/lib/dkms/virtualbox/6.1.10/build/vboxdrv/r0drv/alloc-r0drv.o
   CC [M]  /var/lib/dkms/virtualbox/6.1.10/build/vboxdrv/r0drv/initterm-r0drv.o
   CC [M]  /var/lib/dkms/virtualbox/6.1.10/build/vboxdrv/r0drv/memobj-r0drv.o
   CC [M]  /var/lib/dkms/virtualbox/6.1.10/build/vboxdrv/r0drv/mpnotification-r0drv.o
   CC [M]  /var/lib/dkms/virtualbox/6.1.10/build/vboxdrv/r0drv/powernotification-r0drv.o
   CC [M]  /var/lib/dkms/virtualbox/6.1.10/build/vboxdrv/r0drv/linux/assert-r0drv-linux.o
 In file included from ./include/asm-generic/percpu.h:7,
                  from ./arch/x86/include/asm/percpu.h:556,
                  from ./arch/x86/include/asm/preempt.h:6,
                  from ./include/linux/preempt.h:78,
                  from ./include/linux/spinlock.h:51,
                  from /var/lib/dkms/virtualbox/6.1.10/build/vboxdrv/linux/../SUPDrvInternal.h:79,
                  from /var/lib/dkms/virtualbox/6.1.10/build/vboxdrv/linux/SUPDrv-linux.c:32:
 /var/lib/dkms/virtualbox/6.1.10/build/vboxdrv/linux/SUPDrv-linux.c: In function ‘supdrvOSChangeCR4’:
 /var/lib/dkms/virtualbox/6.1.10/build/vboxdrv/linux/SUPDrv-linux.c:760:38: error: ‘cpu_tlbstate’ undeclared (first use in this function); did you mean ‘cpuhp_state’?
   760 |     RTCCUINTREG uOld = this_cpu_read(cpu_tlbstate.cr4);
       |                                      ^~~~~~~~~~~~
 ./include/linux/percpu-defs.h:318:9: note: in definition of macro ‘__pcpu_size_call_return’
   318 |  typeof(variable) pscr_ret__;     \
       |         ^~~~~~~~
 /var/lib/dkms/virtualbox/6.1.10/build/vboxdrv/linux/SUPDrv-linux.c:760:24: note: in expansion of macro ‘this_cpu_read’
   760 |     RTCCUINTREG uOld = this_cpu_read(cpu_tlbstate.cr4);
       |                        ^~~~~~~~~~~~~
 /var/lib/dkms/virtualbox/6.1.10/build/vboxdrv/linux/SUPDrv-linux.c:760:38: note: each undeclared identifier is reported only once for each function it appears in
   760 |     RTCCUINTREG uOld = this_cpu_read(cpu_tlbstate.cr4);
       |                                      ^~~~~~~~~~~~
 ./include/linux/percpu-defs.h:318:9: note: in definition of macro ‘__pcpu_size_call_return’
   318 |  typeof(variable) pscr_ret__;     \
       |         ^~~~~~~~
 /var/lib/dkms/virtualbox/6.1.10/build/vboxdrv/linux/SUPDrv-linux.c:760:24: note: in expansion of macro ‘this_cpu_read’
   760 |     RTCCUINTREG uOld = this_cpu_read(cpu_tlbstate.cr4);
       |                        ^~~~~~~~~~~~~
 make[2]: *** [scripts/Makefile.build:288: /var/lib/dkms/virtualbox/6.1.10/build/vboxdrv/linux/SUPDrv-linux.o] Error 1
 make[2]: *** Waiting for unfinished jobs....
 make[1]: *** [scripts/Makefile.build:519: /var/lib/dkms/virtualbox/6.1.10/build/vboxdrv] Error 2
 make: *** [Makefile:1780: /var/lib/dkms/virtualbox/6.1.10/build] Error 2
 make: Leaving directory '/usr/src/linux-headers-5.8.0-34-generic'
DKMSKernelVersion: 5.8.0-34-generic
Date: Thu Jan  7 09:37:46 2021
DuplicateSignature: dkms:virtualbox-dkms:6.1.10-dfsg-1~ubuntu1.20.04.1:/var/lib/dkms/virtualbox/6.1.10/build/vboxdrv/linux/SUPDrv-linux.c:760:38: error: ‘cpu_tlbstate’ undeclared (first use in this function); did you mean ‘cpuhp_state’?
Package: virtualbox-dkms 6.1.10-dfsg-1~ubuntu1.20.04.1
PackageVersion: 6.1.10-dfsg-1~ubuntu1.20.04.1
SourcePackage: virtualbox
Title: virtualbox-dkms 6.1.10-dfsg-1~ubuntu1.20.04.1: virtualbox kernel module failed to build

任何帮助都将受到赞赏。


在听取了@Terrace等人的意见后,我尝试从源代码安装。但安装virtualbox-dkms时仍然出错。之后,我直接卸载了virtual-dkms:

sudo apt-get remove virtualbox-dkms

然后重新尝试安装

sudo dpkg -i virtualbox-6.1_6.1.16-140961~Ubuntu~eoan_amd64.deb
```

Wich succeeded. Thank you!

答案1

更新

笔记:
proposed- 当迁移到时,本指南在不久的将来将变得不再相关release

  • 6.1.16-dfsg-6~ubuntu1.20.04.1 现在位于商店“ubuntu-focal-updates-multiverse”中,5.8 内核与当前 5.8.0-40-generic 进行了一些更新
    如果持续定期更新的话,这应该不是问题。

  • 建议选项 1 和 4,以便将来自动更新 VirtualBox。
  • 选项 2、3a、3b手动安装 才不是包括 VirtualBox 的自动未来更新。

漏洞

在 Ubuntu 20.04 上安装 VirtualBox 6.1.16

选项 1(简单)

预发布更新(重点建议)

    • 打开Software & Updates
    • Developer Options
    • 选择✅Pre-released updates (focal-proposed)
    • 选择Close
    • 在弹出The information about available software is out-of-date
      选择上Reload
    • 打开Software Updater
    • 取消选择所有/任何其他更新,但不包括VirtualBox(其子类别中将包含多个包)
    • 选择Install Now

上一篇

漏洞 virtualbox-dkms 6.1.10-dfsg-1~ubuntu1.20.04.1 无法使用内核 5.8 构建
我跟着@Terrance建议并从源安装了 6.1.16。
我以前的虚拟机都正常工作。

編輯:每@BeastOfCaerbannog要求/建议。


在 Ubuntu 20.04 上安装 VirtualBox 6.1.16

选项 2(简单)

*如果德比未安装> 前往软件商店并安装
*如果出现错误:与已安装的包“virtualbox-qt”冲突> 前往软件商店并删除 Virtualbox 6.1.10


选项 3a.(简单)

选项 3b。(高级)

  • 在终端
cd Downloads 
sudo apt install ./virtualbox-6.1_6.1.16-140961~Ubuntu~eoan_amd64.deb

或者

sudo apt install ./v*  

选项 4(高级)

使用 Virtualbox 存储库安装 Virtualbox

 
谢谢@Terrance

答案2

选择最新的可运行的 5.4 内核。

我有 20.04,这对我有用:

sudo grub-reboot "1>4"

sudo reboot

或者只是在启动时手动选择 5.4 内核。

我猜这个错误很快就会在 Ubuntu 5.8 内核中被修复。

答案3

Virtualbox 可直接从 ubuntu 存储库安装,因此无需摆弄 Virtualbox 下载、dkms 等。这一切都由 ubuntu 软件包处理,包括具有安全启动功能的 dkms 内容(前提是您已激活它并且正确安装了 MOK 密钥!!)

您只需安装sudo apt install virtualbox

在 Ubuntu 20.04 上,您通常有内核 5.4,而 virtualbox 的版本是 6.1.10。

使用 Ubuntu 20.10,您拥有内核 5.8 和 virtualbox 6.1.14。两者在我的计算机上都运行正常。

试一试! ;-)

希望有帮助

答案4

我设法通过以下指令解决了这个问题

第一步是删除所有当前安装的 VirtualBox

sudo apt-get remove virtualbox
sudo apt-get remove virtualbox-dkms # i have to remove manually

从以下位置下载新版本

关闭所有正在运行的 VirtualBox 实例

通过运行以下命令进行安装:

sudo dpkg -i virtualbox-6.1_6.1.16-140961~Ubuntu~eoan_amd64.deb

当我尝试使用 apt 安装时出现错误。

相关内容