[root@124 VirtualBox-4.0.4-70112-Linux_x86.zip_FILES]# ./VirtualBox-4.0.4-70112-Linux_x86.run
Verifying archive integrity... All good.
Uncompressing VirtualBox for Linux installation..........
VirtualBox Version 4.0.4 r70112 (2011-02-17T17:03:53Z) installer
Please install the build and header files for your current Linux kernel.
The current kernel version is 2.6.18-128.el5
Problems were found which would prevent VirtualBox from installing.
Please correct these problems and try again.
=
Please install the build and header files for your current Linux kernel
安装kernel-devel
yum install kernel-devel
ln -s /usr/src/kernels/2.6.18-194.32.1.el5-i686/ /usr/src/linux







在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后,出现了以下的错误:
[root@localhost ~]# /etc/init.d/vboxdrv setup
Stopping VirtualBox kernel module [ OK ]
Recompiling VirtualBox kernel module [FAILED]
[root@localhost ~]# cat /var/log/vbox-install.log
Makefile:159: *** Error: unable to find the sources of your current Linux kernel. Specify KERN_DIR= and run Make again. Stop.

执行yum install kernel,升级内核。
开始,我还以为是没有找到系统内核,但加入内核代码后还是一样的错误。
后来经过各种纠结,发现还要加上命令yum install kernel-devel.i686 当然,要注意kernel的版本号。
现在总结下:
出现Kernel driver not installed (rc=-1908)错误的原因是,没有编译成功供virtualbox使用的内核模块,要编译出这个模块,需要内核源代码,查看/usr/src可以知道;其次是需要编译器,linux下就是gcc,这两个都满足了,再执行
[root@liukai ~]# /etc/init.d/vboxdrv setup


就可以了。
而这个过程,希望大家都用yum来完成,以减少因依赖产成的错误。
注意,需要看清楚你的内核和升级的是不是同一个,如不是还需要把old卸载,然后reboot,用新内核再vboxdrv setup。
























先到VirtualBox官网下载Linux下的VirtualBox 4.0,
http://www.virtualbox.org/wiki/Linux_Downloads
由于是在CentOS5.5(32bit)中安装,所以下载跟Red Hat Enterprise Linux 5相对对应的版本,这里下载的是VirtualBox-4.0-4.0.0_69151_rhel5-1.i386.rpm。
以root账号登录到CentOS系统。
VirtualBox需要kernel modules的支持,所以系统要先安装kernel。
#yum install kernel-devel
#yum install gcc
运行上面两个命令,其中第一个命令安装了kernel-devel,第二个命令安装了kernel-headers、glibc-headers、glibc-devel和gcc,并更新了glibc-common。
通过U盘,将VirtualBox-4.0-4.0.0_69151_rhel5-1.i386.rpm拷到root的home目录下。打开终端,进入到home目录,执行安装VBox的命令:
#rpm –ivh VirtualBox-4.0-4.0.0_69151_rhel5-1.i386.rpm
安装过程,除了DSA signature警告外,还有VBox内核模块安装失败的报错:
Trying to register the VirtualBox kernel modules using DKMS[FAILED]
  (Failed, trying without DKMS)
Recompiling VirtualBox kernel modules [FAILED]
  (look at /var/log/vbox-install.log to find out what went wrong)
VBox安装过程中系统自动创建了一个“vboxusers”用户组,需把用户加入到该组才能使用VBox。把当前的root用户加入到vboxusers中,命令如下:
#usermod –G vboxusers –a root
此时,建立、并且启动VirtualBox kernel module:
#/etc/init.d/vboxdrv setup
也出现同样报错,
搜索了一下“DKMS”,百度百科对DKMS是这样描述的:Oikawa等人在1996年提出一种与LKM类似的动态核心模块(DKMs)技术。与LKM一样,DKMs以文件的形式存储并能在系统运行过程中动态地加载和卸载。DKMs由一个用户层的DKM服务器来管理,并非由内核来管理。当核心需要某模块时,由DKM服务器负责把相应的DKM加载;当核心的内存资源紧缺时,由DKM服务器负责卸载一个没有被使用的DKM。
试途通过命令
#yum list DKMS*
下载安装DKMS,但并没有发现DKMS源。(参考文中,是在Fedora14下运行该命令能发现源的)。后来到http://linux.dell.com/dkms/网站下载了最新的dkms驱动程序包 dkms-2.1.1.2-1.noarch.rpm。
通过命令
#rpm –ivh dkms-2.1.1.2-1.noarch.rpm
安装该包后,再运行
#/etc/init.d/vboxdrv setup
命令,还是存在问题,但不是dkms问题,而仅仅是内核的问题,
报错如下:
Trying to register the VirtualBox kernel modules using DKMS
Error!Your kernel headers for kernel 2.6.18-194.el5PAE cannot be found at /lib/moduals/2.6.18-194.el5PAE/build or /lib/modules/2.6.1-194.el5PAE/source[FAILED]
(Failed,trying without DKMS)
Recompiling VirtualBox kernel modules[FAILED]
(look at /var/log/vbox-install.log to find out what went wrong)
若直接运行VBox,也有类似的警告
#VirtualBox
WARNING:The vboxdrv kernel module is not loaded.Either there is no module available for the current kernel(2.6.18-194.el5PAE) or it failed to load.Please recompile the kernel module and install it by
sudo /etc/init.d/vboxdrv setup
You will not be able to start VMs until this problem is fixed.
通过reboot命令重启计算机,也解决不了。
按系统提示,运行Package Updater,把要更新的软件包都更新了一遍,再重启计算机,问题依旧。
执行命令
#yum install kernel-devel
把内核更新了一次,重启,问题依旧。
执行命令
#yum install kernel-PAE-devel
把内核更新,重启,这次重启花了比较长的时间,能看到加载VirtualBox kernel modules成功的提示。
执行
#/etc/init.d/vboxdrv setup
提示如下
Trying to register the VirtualBox kernel modules using DKMS[OK]
Starting VirturalBox kernel moduels[OK]
若执行
#VirtualBox
则直接运行VirtualBox,而没有任何警告或报错,表明VirtualBox已经可以正常运行。
后来才知道,操作系统在32bit x86平台上最大寻址空间只有4GB,如果要使用大于4GB的内存,就必须使用Intel的PAE(物理地址扩展)模式。对于RHEL5,缺省安装模式下是不允许检测超过4GB内存,所以需要在内核安装完毕后再安装kernel-PAE套件。由于我做测试用的是16G的Dell服务器,内存有16G,而操作系统是32bit的,所以要安装kernel-PAE-devel。
在VirtualBox上新建虚拟机,按提示进行虚拟系统环境配置,操作相对简单,设置内容大致如下:
    Name:虚拟系统名称,将显示在主界面上。
    OS Type:选择将安装的系统类型。
    Base Memory Size:给虚拟系统分配内存,依照物理内存大小合理分配。
    Boot Hard Disk:相当于给虚拟系统建立的虚拟硬盘,第一次使用肯定没有建立过,故选择"New",建立一个。
    Image Typ:建立选择第一个类型,也就是动态空间。这样可以避免主机硬盘空间浪费。
    Image File Name:虚拟硬盘的名字。
    Image Size:划分虚拟硬盘大小。
然后就可以在虚拟机上安装Guest操作系统了。
这次装的是windows2003英文版的一个系统,系统安装完成后,可以直接上网,VBox默认使用的是NAT方式。不过分辨率不好调整。
看到有些资料说,安装完客户机系统的第一件事情,应该是安装"VirtualBox Guset Additions"。
VirtualBox Guset Additions作用,据介绍有以下几点:
    1、实现客户机和主机间的鼠标平滑移动。
    2、与主机实现文件共享。
    3、于主机共享剪贴板的内容,也就是说直接可以在主机、客户机之间复制、粘贴。
    4、使用音效系统,要不然没法用虚拟机听音乐了。
    5、与主机实现时间同步。否则的话主机已经到了上午10点了,你的客户机可能还在半夜3点...
    6、自动登录windows。
具体的操作是,启动客户机系统,在drives中选择"install Guset Additions"。在弹出的对话框中,基本上一路“下一步”就OK了。安装结束后,需要重启客户机系统。重启后,在客户机系统中,可以看到右下角有个四方形的图标,表示系统运行了“Oracle VM VirtualBox Guest Additions”。此时,鼠标可以在当前系统和客户机系统之前随意移动,而在装VirtualBox Guset Additions之前,要从客户机系统回到当前系统是需要按组合键“Ctrl+Alt+Delete”的。而且系统根据当前VBox窗口的大小自动调整像素,也可以全屏显示。

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐