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-generic
和linux-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。