Ubuntu 13.10下VirtualBox虚拟机无法启动解决

最近需要在若干虚拟机进行Hadoop的调试,于是就在Ubuntu上安装VirtualBox虚拟机,可是碰到了虚拟机无法启动的问题:

界面上会弹出一个错误对话框,错误信息如下:

Kernel driver not installed (rc=-1908)

The VirtualBox Linux kernel driver (vboxdrv) is either not loaded or there is a permission problem with /dev/vboxdrv. Re-setup the kernel module by executing

'/etc/init.d/vboxdrv setup'

as root. Users of Ubuntu, Fedora or Mandriva should install the DKMS package first. This package keeps track of Linux kernel changes and recompiles the vboxdrv kernel module if necessary.

首先汇总一下系统环境:ubuntu desktop 13.10,  virtualbox-4.3, kernel: 3.11.0-17

1.  按照这个错误指示,我就切换到命令行,

sudo /etc/init.d/vboxdrv setup

 得到如下的错误信息:

提示依然无法正常加载dkms,而且好像需要当前内核的源代码进行编译,同时,提示查看/var/log/vbox-inuntustall.log日志。

2.  于是,cat /var/log/vbox-install日志 

 Uninstalling modules from DKMS
  removing old DKMS module vboxhost version  4.3.8

------------------------------
Deleting module version: 4.3.8
completely from the DKMS tree.
------------------------------
Done.
Attempting to install using DKMS

Creating symlink /var/lib/dkms/vboxhost/4.3.8/source ->
                /usr/src/vboxhost-4.3.8

DKMS: add completed.
Failed to install using DKMS, attempting to install without
Makefile:183: *** Error: unable to find the sources of your current Linux kernel. Specify KERN_DIR=<directory> and run Make again.  Stop.

这些有点不知所错了,哪里出问题了呢?

 3.  检查dkms,正常安装;反复安装virtualbox,确保不是安装不完整造成的问题。

sudo apt-get install dkms

提示已经安装到最新版本,说明应该不是dkms的问题。

4.  查看内核版本 uname -r,  得到当前的kernel版本: 3.11.0-17-generic.

5.  搜索了一下网络,有人提示说,可能需要重新安装一下内核。

sudo apt-get install linux-headers-$(uname -r)

注意:  ${uname -r}用来代表当前内核的版本,不能直接在命令中使用的,这里我的版本是step 4中的输出。

6.  按照之前的问题提示,重新运行 sudo /etc/init.d/vboxdrv setup

提示: 已经正常将virtualbox模块注册到kernel中了

7. 接下来就可以点击virtualbox的启动按钮,正常启动virtualbox中的虚拟机了。

8.  原因分析:

最后我尝试分析了一下,产生这个错误的原因:之前的virtualbox是可以正常工作的,后来升级ubuntu和内核版本之后,估计打破了virtualbox和内核之前的注册系统,就是原有的注册在新的内核中失效了,同时,现在的内核可能在升级过程,有若干的不稳定情况。 所以,需要重新覆盖安装内核,然后,再一次将virtualbox内核注册到当前linux内核之中,以上仅为猜测,欢迎大家提出新的想法和推测。

相关推荐