先到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窗口的大小自动调整像素,也可以全屏显示。