天天看點

virtualbox 3.0.6安裝時/etc/init.d/vboxdrv 錯誤的解決方法

在CentOS5下,首先下載下傳virtualBox3.0.6,這是穩定版:

http://www.virtualbox.org/wiki/Downloads下,選擇For Linux Host,

下載下傳的檔案名為:VirtualBox-3.0.6_52128_rhel5-1.i386.rpm

然後安裝->無論如何都安裝。就可以了。

當然,你也可以選擇yum install virtualbox來安裝,更省事。

但是,安裝後在應用程式->系統工具->Sun 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.

執行/etc/init.d/vboxdrv setup後,出現了以下的錯誤:

Stopping VirtualBox kernel module                          [确定]

Recompiling VirtualBox kernel module                       [失敗]

  (Look at /var/log/vbox-install.log to find out what went wrong)

然後,那咱就檢視vox-install.log這個檔案呗:

cat /var/log/vbox-install.log

Makefile:147: *** Error: unable to find the sources of your current Linux kernel. Specify KERN_DIR= and run Make again。 停止。

執行yum install kernel,更新核心。

開始,我還以為是沒有找到系統核心,但加入核心代碼後還是一樣的錯誤。後來發現,原因在于我沒有安裝GCC,進而導緻virtualbox不能用本地gcc編譯适合它使用的核心子產品,于是趕緊yum install gcc。。。。。這是一個漫長的過程:

[root@liukai mldonkey-distrib-3.0.0]# yum install gcc

Setting up Install Process

Parsing package install arguments

Resolving Dependencies

--> Running transaction check

---> Package gcc.i386 0:4.1.2-44.el5 set to be updated

--> Processing Dependency: libgomp >= 4.1.2-44.el5 for package: gcc

--> Processing Dependency: libgcc >= 4.1.2-44.el5 for package: gcc

--> Processing Dependency: cpp = 4.1.2-44.el5 for package: gcc

--> Processing Dependency: glibc-devel >= 2.2.90-12 for package: gcc

---> Package libgomp.i386 0:4.3.2-7.el5 set to be updated

---> Package cpp.i386 0:4.1.2-44.el5 set to be updated

---> Package glibc-devel.i386 0:2.5-34.el5_3.1 set to be updated

--> Processing Dependency: glibc-headers = 2.5-34.el5_3.1 for package: glibc-devel

--> Processing Dependency: glibc-headers for package: glibc-devel

--> Processing Dependency: glibc = 2.5-34.el5_3.1 for package: glibc-devel

---> Package libgcc.i386 0:4.1.2-44.el5 set to be updated

---> Package glibc.i686 0:2.5-34.el5_3.1 set to be updated

--> Processing Dependency: glibc-common = 2.5-34.el5_3.1 for package: glibc

---> Package glibc-headers.i386 0:2.5-34.el5_3.1 set to be updated

--> Processing Dependency: kernel-headers for package: glibc-headers

--> Processing Dependency: kernel-headers >= 2.2.1 for package: glibc-headers

---> Package kernel-headers.i386 0:2.6.18-164.el5 set to be updated

---> Package glibc-common.i386 0:2.5-34.el5_3.1 set to be updated

--> Finished Dependency Resolution

Dependencies Resolved

=============================================================================

 Package                 Arch       Version          Repository        Size

Installing:

 gcc                     i386       4.1.2-44.el5     base              5.2 M

Updating:

 cpp                     i386       4.1.2-44.el5     base              2.7 M

 glibc                   i686       2.5-34.el5_3.1   updates           5.2 M

 glibc-common            i386       2.5-34.el5_3.1   updates            16 M

 libgcc                  i386       4.1.2-44.el5     base               94 k

Installing for dependencies:

 glibc-devel             i386       2.5-34.el5_3.1   updates           2.0 M

 glibc-headers           i386       2.5-34.el5_3.1   updates           598 k

 kernel-headers          i386       2.6.18-164.el5   updates           993 k

 libgomp                 i386       4.3.2-7.el5      base               67 k

Transaction Summary

Install      5 Package(s)        

Update       4 Package(s)        

Remove       0 Package(s)        

Total download size: 33 M

Is this ok [y/N]: y

Downloading Packages:

(1/9): libgcc-4.1.2-44.el 100% |=========================|  94 kB    00:06    

(2/9): glibc-devel-2.5-34 100% |=========================| 2.0 MB    09:04    

(3/9): glibc-headers-2.5- 100% |=========================| 598 kB    02:33    

(4/9): gcc-4.1.2-44.el5.i 100% |=========================| 5.2 MB    03:37    

(5/9): cpp-4.1.2-44.el5.i 100% |=========================| 2.7 MB    02:33    

(6/9): libgomp-4.3.2-7.el 100% |=========================|  67 kB    00:04    

(7/9): glibc-common-2.5-3 100% |=========================| 2.7 MB    19:56    

ftp://ftp.chu.edu.tw/Linux/CentOS/5.3/updates/i386/RPMS/glibc-common-2.5-34.el5_3.1.i386.rpm: [Errno 4] Socket Error: timed out

Trying other mirror.

(7/9): glibc-common-2.5-3 100% |=========================|  16 MB    27:40    

(8/9): kernel-headers-2.6 100% |=========================| 993 kB    00:52    

(9/9): glibc-2.5-34.el5_3 100% |=========================| 5.2 MB    04:42    

Running rpm_check_debug

Running Transaction Test

Finished Transaction Test

Transaction Test Succeeded

Running Transaction

  Updating  : libgcc                       ####################### [ 1/13]

  Updating  : glibc-common                 ####################### [ 2/13]

  Updating  : glibc                        ####################### [ 3/13]

  Installing: libgomp                      ####################### [ 4/13]

  Updating  : cpp                          ####################### [ 5/13]

  Installing: kernel-headers               ####################### [ 6/13]

  Installing: glibc-headers                ####################### [ 7/13]

  Installing: glibc-devel                  ####################### [ 8/13]

  Installing: gcc                          ####################### [ 9/13]

  Cleanup   : glibc                        ####################### [10/13]

  Cleanup   : glibc-common                 ####################### [11/13]

  Cleanup   : cpp                          ####################### [12/13]

  Cleanup   : libgcc                       ####################### [13/13]

Installed: gcc.i386 0:4.1.2-44.el5

Dependency Installed: glibc-devel.i386 0:2.5-34.el5_3.1 glibc-headers.i386 0:2.5-34.el5_3.1 kernel-headers.i386 0:2.6.18-164.el5 libgomp.i386 0:4.3.2-7.el5

Updated: cpp.i386 0:4.1.2-44.el5 glibc.i686 0:2.5-34.el5_3.1 glibc-common.i386 0:2.5-34.el5_3.1 libgcc.i386 0:4.1.2-44.el5

Complete!

You have new mail in /var/spool/mail/root

然後再次重新開機虛拟機就可以了。如果還是不行,那就先用rpm -e解除安裝了剛裝的virtualbox,然後再安裝下,就可以了。

此外,如果你的系統是ubuntu的可以這樣解決:

sudo aptitude update

sudo aptitude install dkms

sudo /etc/init.d/vboxdrv setup

現在總結下:

出現Kernel driver not installed (rc=-1908)錯誤的原因是,沒有編譯成功供virtualbox使用的核心子產品,要編譯出這個子產品,需要核心源代碼,檢視/usr/src可以知道;其次是需要編譯器,linux下就是gcc,這兩個都滿足了,再執行

[root@liukai ~]# /etc/init.d/vboxdrv setup

Recompiling VirtualBox kernel module                       [确定]

Starting VirtualBox kernel module                          [确定]

就可以了。

而這個過程,希望大家都用yum來完成,以減少因依賴産成的錯誤。

注意,需要看清楚你的核心和更新的是不是同一個,如不是還需要把old解除安裝,然後reboot,用新核心再vboxdrv setup。

此外,如果碰到新版本的VirtualBox,比如3.1.8,或者使用了CentOS5.5系統。安原來的安裝過程會出現下述錯誤:

“Trying to register the VirtualBox kernel modules using DKMS”

或者

“unable to find the sources of your current Linux kernel”

解決方法是:

yum install kernel-devel-i686(i686使用uname -a得知)

随後,export KERN_DIR=/usr/src/kernels/2.6.18-164.15.1.el5-i686/(2.6.18-164.15.1.el5-i686可檢視自己機器就具體位置而知)

最後,/etc/init.d/vboxdrv setup即可。

本文原創,請轉載的同志注明出處為五嶽之巅部落格,謝謝。