如何将Ubuntu信息库VirtualBox升级到Oracle提供的VirtualBox

当我升级到Ubuntu 19.10时,我从Ubuntu存储库安装了VirtualBox,因为无论如何它都是Oracle提供的相同版本。但是,我注意到从Oracle VirtualBox网站下载的VirtualBox 6.1升级后,我无法启动虚拟机并出现错误。本文介绍如何正确升级到从Oracle下载的VirtualBox。 资料下载 从VirtualBox网站,或 Oracle VirtualBox存储库如果您的系统上安装了VirtualBox的Ubuntu存储库版本。这是Linux Mint,Elementary OS,Pop!它也适用于具有基于Ubuntu的Linux发行版(如_OS)的用户。
从Ubuntu存储库VirtualBox升级到Oracle提供的VirtualBox时,对话框中显示错误:

The virtual machine 'Your machine name' has terminated unexpectedly during startup with exit code 1 (0x1).

Result Code: 
NS_ERROR_FAILURE (0x80004005)
Component: 
MachineWrap
Interface: 
IMachine {85632c68-b5bb-4316-a900-5eb28d3413df}

然后,另一个对话框打开,

TR3InitEx failed with rc=-1912 (rc=-1912)
The VirtualBox kernel modules do not match this version of VirtualBox. The installation of VirtualBox was apparently not successful. Executing
'/sbin/vboxconfig'
may correct this. Make sure that you are not mixing builds of VirtualBox from different sources.
where: supR3HardenedMainInitRuntime what: 4 VERR_VM_DRIVER_VERSION_MISMATCH (-1912) - The installed support driver doesn't match the version of the user.

建议的 sudo /sbin/vboxconfig 该命令不能解决此问题。

另外,从Oracle而不是从Ubuntu存储库安装VirtualBox的原因是什么?就我而言,我希望能够使用最新功能。
由于Ubuntu并未发布VirtualBox的主要版本更新,因此,当用户使用的Ubuntu版本发行时,用户会为他们所发行的VirtualBox版本所困扰。举个例子Ubuntu 18.04和Linux Mint19。*存储库具有VirtualBox 5.2,Ubuntu 19.10具有VirtualBox 6.0。 VirtualBox的最新版本是6.1,因此只能通过Ubuntu 20.04用户的Ubuntu存储库使用。

那么为什么会发生这种情况,为什么我要解决呢?

如果从Ubuntu存储库安装VirtualBox,则会看到总共实际安装了3个软件包。

$ sudo apt install virtualbox
Reading package lists... Done
Building dependency tree       
Reading state information... Done
The following NEW packages will be installed:
  virtualbox virtualbox-dkms virtualbox-qt
...

然后,添加Oracle VirtualBox存储库并安装最新的VirtualBox 6.1将删除其中两个软件包,但将一个保留在系统中。

$ sudo apt install virtualbox-6.1
Reading package lists... Done
Building dependency tree       
Reading state information... Done
The following packages will be REMOVED:
  virtualbox virtualbox-qt
The following NEW packages will be installed:
  virtualbox-6.1
...

因此,问题在于Oracle提供的VirtualBox virtualbox-dkms Ubuntu / Linux Mint软件包。解决方法是删除 virtualbox-dkms 然后跑 /sbin/vboxconfig 作为根:

sudo apt remove virtualbox-dkms
sudo /sbin/vboxconfig

从Oracle存储库安装的VirtualBox是Ubuntu,Linux Mint,Pop!现在,它应该可以与您的OS,基本OS或基于Ubuntu的Linux发行版一起正常使用。相关:在Ubuntu,Linux Mint,Debian,Fedora openSUSE上安装VirtualBox Guest Additions [How-To]
如果仍然出现错误,但是又出现了这样的另一个错误:

Implementation of the USB 2.0 controller not found!
Because the USB 2.0 controller state is part of the saved VM state, the VM cannot be started. To fix this problem, either install the 'Oracle VM VirtualBox Extension Pack' or disable USB 2.0 support in the VM settings.
Note! This error could also mean that an incompatible version of the 'Oracle VM VirtualBox Extension Pack' is installed (VERR_NOT_FOUND).

Result Code: 
NS_ERROR_FAILURE (0x80004005)
Component: 
ConsoleWrap
Interface: 
IConsole {872da645-4a9b-1727-bee2-5585105b9eed}

这意味着您要运行的计算机已安装了VirtualBox Extension Pack支持,因此需要运行。前往VirtualBox 下载页面,VirtualBox获取Oracle VM VirtualBox Extension Pack并添加扩展包文件( vbox-extpack 扩展名)和VirtualBox必须是可打开且可安装的。之后,机器将按预期工作。

Sidebar