问题描述
我于 2018 年 1 月 10 日通过普通软件更新程序收到了更新。此后,VirtualBox 将无法启动任何虚拟机,抱怨 dkms 并要求制作 modprobe vboxdrv。按照建议,我重新安装了 virtualbox-dkms:
sudo apt-get --reinstall install virtualbox-dkms
在此和重新启动之后,我尝试启动一个虚拟机,该虚拟机冻结了整个计算机,并且需要硬重新启动。
有没有办法让 VirtualBox 使用最新的内核?
编辑:
根据 N0rbert 的建议,该命令:
apt-cache policy `dpkg -S VirtualBox | head -n1 | sed -e 's/://g' | awk '{print $1}'`
给出:
virtualbox-qt:
Installed: 5.0.40-dfsg-0ubuntu1.16.04.2
Candidate: 5.0.40-dfsg-0ubuntu1.16.04.2
Version table:
*** 5.0.40-dfsg-0ubuntu1.16.04.2 500
500 http://fr.archive.ubuntu.com/ubuntu xenial-updates/multiverse amd64 Packages
100 /var/lib/dpkg/status
5.0.18-dfsg-2build1 500
500 http://fr.archive.ubuntu.com/ubuntu xenial/multiverse amd64 Packages
编辑(2018 年 3 月 29 日):从今天起使用 Ubuntu Ubdate,问题已解决。我看到它有一些 virtualbox-updates,因此我尝试再次使用最新的内核启动。然后我不得不跑
sudo apt-get –重新安装安装virtualbox-dkms
此后,我的 VirtualBox 中的虚拟机开始工作,而不会导致整个计算机崩溃。最后!
最佳方案
使用 oracle 存储库升级到 VirtualBox 5.2 对我来说很有效。
步骤如下(legacy doc here):
1)添加oracle存储库:
sudo add-apt-repository "deb http://download.virtualbox.org/virtualbox/debian xenial contrib"
如果您不使用 Ubuntu 16.04 (xenial),请修改此命令以适合您的 ubuntu 版本。
2) 为存储库添加 GPG 密钥:
wget -q https://www.virtualbox.org/download/oracle_vbox_2016.asc -O- | sudo apt-key add -
wget -q https://www.virtualbox.org/download/oracle_vbox.asc -O- | sudo apt-key add -
3) 检查 GPG 密钥:
sudo apt-key finger Oracle
应显示以下指纹:
B9F8 D658 297A F3EF C18D 5CDF A2F6 83C5 2980 AECF
Oracle Corporation (VirtualBox archive signing key)
7B0F AB3A 13B9 0743 5925 D9C9 5442 2A4B 98AB 5139
Oracle Corporation (VirtualBox archive signing key)
4)安装VirtualBox 5.2
sudo apt update && sudo apt install virtualbox-5.2
就我而言,我遇到了错误,我必须删除 virtualbox-dkms 包并运行 /sbin/vboxconfig :
sudo apt remove --purge virtualbox-dkms
sudo /sbin/vboxconfig
根据您的桌面环境,启动器菜单图标可能会消失。在这种情况下,请手动重新创建它;该命令只是 virtualbox
。
次佳方案
交叉引用:
官方错误跟踪此问题是:
https://bugs.launchpad.net/bugs/1736116
那里有安装 VB 5.1.30 和 5.2.4 的解决方案。一些用户报告 5.2.4 存在 QT 依赖性问题,因此 5.1.30 可能是一个更安全的选择。
那里列出了安装任一版本的几个选项,并且讨论正在进行中,因此我不打算在这里重现。
第三种方案
当您启动计算机时,通过进入“Ubuntu 的高级选项”来更改启动的内核。
选择版本号,如 4.10——应该开始工作,直到这个问题得到解决。
第四种方案
因此,就我而言,内核模块没有正确删除。
详细信息如下:
root@Dell5280 [~]# cat /etc/lsb-release
DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=16.04
DISTRIB_CODENAME=xenial
DISTRIB_DESCRIPTION="Ubuntu 16.04.3 LTS
root@Dell5280 [~]# uname -r
4.13.0-31-generic
问题:
root@Dell5280 [~]# modinfo vboxdrv
filename: /lib/modules/4.13.0-31-generic/updates/dkms/vboxdrv.ko
version: 5.0.40_Ubuntu r115130 (0x00240000)
license: GPL
description: Oracle VM VirtualBox Support Driver
author: Oracle Corporation
srcversion: 6D8B4900A693FC50489A130
depends:
name: vboxdrv
vermagic: 4.13.0-31-generic SMP mod_unload
使固定:
root@Dell5280 [~]# rm /lib/modules/4.13.0-31-generic/updates/dkms/vboxdrv.ko
root@Dell5280 [~]# modinfo vboxdrv
filename: /lib/modules/4.13.0-31-generic/updates/dkms/vboxdrv.ko
modinfo: ERROR: could not get modinfo from 'vboxdrv': No such file or directory
[1] root@Dell5280 [~]# /sbin/vboxconfig
vboxdrv.sh: Stopping VirtualBox services.
vboxdrv.sh: Building VirtualBox kernel modules.
vboxdrv.sh: Starting VirtualBox services.
root@Dell5280 [~]# modinfo vboxdrv
filename: /lib/modules/4.13.0-31-generic/misc/vboxdrv.ko
version: 5.2.7 r120349 (0x00290000)
license: GPL
description: Oracle VM VirtualBox Support Driver
author: Oracle Corporation
srcversion: 4880B21EFF1B605D6402982
depends:
name: vboxdrv
vermagic: 4.13.0-31-generic SMP mod_unload
parm: force_async_tsc:force the asynchronous TSC mode (int)
之后,一切正常(至少就我而言)
希望能帮助到你。
我把回复贴在https://bugs.launchpad.net/ubuntu/+source/virtualbox/+bug/1736116