14.10:VirtualBox“找不到运行内核的合适模块”,找不到内核源代码

在14.10更新VirtualBox之后,我再也无法运行我的盒子了。 值得注意的是,运行sudo service virtualbox status返回VirtualBox kernel module is not loaded并且运行sudo service virtualbox restart显示:

  * Stopping VirtualBox kernel modules [ OK ] * Starting VirtualBox kernel modules * No suitable module for running kernel found [fail] 

当我尝试运行一个盒子时,VirtualBox GUI弹出一个对话框,说我应该运行sudo /etc/init.d/vboxdrv setup ,但是我的14.10安装上没有/etc/init.d/vboxdrv

这让人联想到这个问题 。 根据一些答案,我尝试卸载(使用purge )并重新安装VirtualBox。 这没有用。 但是,我无法安装:

 linux-headers-`uname -r` 

因为没有名为linux-headers-3.13.0-30-generic 。 我确实安装了linux-headers-genericlinux-source ,以及dkms ,但重新安装仍然失败:

 Reading package lists... Done Building dependency tree Reading state information... Done Suggested packages: vde2 The following NEW packages will be installed: virtualbox virtualbox-dkms virtualbox-qt 0 upgraded, 3 newly installed, 0 to remove and 0 not upgraded. Need to get 0 B/21.1 MB of archives. After this operation, 87.6 MB of additional disk space will be used. Selecting previously unselected package virtualbox. (Reading database ... 253183 files and directories currently installed.) Preparing to unpack .../virtualbox_4.3.18-dfsg-2ubuntu1_amd64.deb ... Unpacking virtualbox (4.3.18-dfsg-2ubuntu1) ... Selecting previously unselected package virtualbox-dkms. Preparing to unpack .../virtualbox-dkms_4.3.18-dfsg-2ubuntu1_all.deb ... Unpacking virtualbox-dkms (4.3.18-dfsg-2ubuntu1) ... Selecting previously unselected package virtualbox-qt. Preparing to unpack .../virtualbox-qt_4.3.18-dfsg-2ubuntu1_amd64.deb ... Unpacking virtualbox-qt (4.3.18-dfsg-2ubuntu1) ... Processing triggers for man-db (2.7.0.2-2) ... Processing triggers for ureadahead (0.100.0-16) ... Processing triggers for hicolor-icon-theme (0.13-1) ... Processing triggers for shared-mime-info (1.2-0ubuntu3) ... Processing triggers for menu (2.1.47ubuntu1) ... Processing triggers for bamfdaemon (0.5.1+14.10.20140925-0ubuntu1) ... Rebuilding /usr/share/applications/bamf-2.index... Processing triggers for desktop-file-utils (0.22-1ubuntu2) ... Processing triggers for mime-support (3.55ubuntu1.1) ... Processing triggers for gnome-menus (3.10.1-0ubuntu2) ... Setting up virtualbox (4.3.18-dfsg-2ubuntu1) ... * Stopping VirtualBox kernel modules [ OK ] * Starting VirtualBox kernel modules * No suitable module for running kernel found [fail] invoke-rc.d: initscript virtualbox, action "restart" failed. Processing triggers for ureadahead (0.100.0-16) ... Setting up virtualbox-dkms (4.3.18-dfsg-2ubuntu1) ... Loading new virtualbox-4.3.18 DKMS files... First Installation: checking all kernels... Building only for 3.13.0-30-generic Module build for the currently running kernel was skipped since the kernel source for this kernel does not seem to be installed. * Stopping VirtualBox kernel modules [ OK ] * Starting VirtualBox kernel modules * No suitable module for running kernel found [fail] invoke-rc.d: initscript virtualbox, action "restart" failed. Setting up virtualbox-qt (4.3.18-dfsg-2ubuntu1) ... Processing triggers for menu (2.1.47ubuntu1) ... 

那么……我如何得到“这个内核的内核源代码”( 3.13.0-30-generic )或者让VirtualBox正确安装?

看起来你从Ubuntu 14.04到14.10的升级破坏了一些东西。 你应该有内核版本3.16.0-30

确保您的/etc/apt/sources.list仅包含带有“utopic”而非“可信”的条目。 然后确保安装了以下软件包,或者在必要时安装它们:

apt-get install linux-generic linux-image-generic linux-headers-generic linux-signed-generic

之后,您应该能够删除并重新安装virtualbox并重建内核模块。

对于那些可能有同样问题的人:

我的系统是Linux Mint 17.1(使用Ubuntu 14.04 Trusty repos)。

我试过安装VirtualBox:

sudo apt-get install virtualbox

并且遇到同样的错误。

解:

卸载不良版本的VirtualBox:

sudo apt-get purge virtualbox

然后从https://www.virtualbox.org/wiki/Linux_Downloads获取安装程序并安装deb软件包。 是说同样的版本在您的存储库中…但这种方式有效。

我总是发现“删除并重新安装”所以windows-esque …我用sudo dpkg-reconfigure virtualbox-dkms解决了(当然,如果你还没有安装它,你可以使用sudo apt install virtualbox-dkms

我刚刚将旧的Ubuntu LTS系统从12.04 Precise Pangolin升级到14.04 Trusty Tahr,并且需要在这里的评论中提供一些提示才能使虚拟机工作。

步骤0:尝试通过sudo apt-get install virtualbox 。 它主要工作,但最后我得到了“没有合适的运行内核模块”错误。 sudo modprobe vboxdrv失败,因为没有这样的模块。

所以,修复:

第1步: sudo apt-get install linux-generic linux-image-generic linux-headers-generic linux-signed-generic 。 apt-get表示前两个已安装,并安装了第3和第4个。

第2步:卸载并重新安装virtualbox。 sudo apt-get purge virtualbox然后sudo apt-get install virtualbox 。 这次,virtualbox安装程序为通用内核编译了一个内核模块。 呜啊!

此时,virtualbox仍然无法正常工作。

第3步:重新启动。

现在, sudo modprobe vboxdrv工作,我可以启动一个VM。