最近需要在若干虚拟机进行Hadoop的调试,于是就在Ubuntu上安装虚拟机,可是碰到了虚拟机无法启动的问题:
界面上会弹出一个错误对话框,错误信息如下:
-
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
-
xxxx@xxx-Ubuntu:~$ sudo /etc/init.d/vboxdrv setup
-
Stopping VirtualBox kernel modules ...done.
-
Uninstalling old VirtualBox DKMS kernel modules ...done.
-
Trying to register the VirtualBox kernel modules using DKMS ...done.
-
Starting VirtualBox kernel modules ...done.
提示: 已经正常将virtualbox模块注册到kernel中了
7. 接下来就可以点击virtualbox的启动按钮,正常启动virtualbox中的虚拟机了。
8. 原因分析:
最后我尝试分析了一下,产生这个错误的原因:之前的virtualbox是可以正常工作的,后来升级ubuntu和内核版本之后,估计打破了virtualbox和内核之前的注册系统,就是原有的注册在新的内核中失效了,同时,现在的内核可能在升级过程,有若干的不稳定情况。 所以,需要重新覆盖安装内核,然后,再一次将virtualbox内核注册到当前linux内核之中,以上仅为猜测,欢迎大家提出新的想法和推测。
(责任编辑:IT) |