现在的位置: 首页 > 综合 > 正文

centos5.6下virtualbox

2012年03月19日 综合 ⁄ 共 2550字 ⁄ 字号 评论 1 条

1. 安装软件环境
yum install gcc
yum install kernel-devel
yum install kernel-headers

这里需要注意一下当前系统使用的kernel版本与安装相应kernel-headers和kernel-devel要对应上。如果找不到相应的包,那么就用yum install kernel把服务器也升级到同一个版本,然后选择新内核重启。(远程安装可以通过下面的对/boot/grub/grub.conf编辑实现切换指定内核)

2. 安装virtualbox软件

rpm -ivh VirtualBox-4.1-4.1.6_74727_rhel5-1.x86_64.rpm

但是随便调用了下vboxmanage list vms就发现驱动没有编译,根据提示执行编译命令,见到如下报错:
[root@localhost home]# sudo /etc/init.d/vboxdrv setup

Stopping VirtualBox kernel modules [确定]

Uninstalling old VirtualBox DKMS kernel modules [确定]

Removing old VirtualBox pci kernel module [确定]

Removing old VirtualBox netadp kernel module [确定]

Removing old VirtualBox netflt kernel module [确定]

Removing old VirtualBox kernel module [确定]

Trying to register the VirtualBox kernel modules using DKMS[失败]

(Failed, trying without DKMS)

Recompiling VirtualBox kernel modules [确定]

Starting VirtualBox kernel modules [失败]

(Running VirtualBox in a Xen environment is not supported)
简单看了一下,是dkms没安装引起的

3. 安装dkms

这个比较简单,到这里http://linux.dell.com/dkms/去下载一个安装就行了。

然后再执行驱动编译命令,发现还是出错:
[root@localhost home]# sudo /etc/init.d/vboxdrv setup

Stopping VirtualBox kernel modules [确定]

Uninstalling old VirtualBox DKMS kernel modules [确定]

Removing old VirtualBox pci kernel module [确定]

Removing old VirtualBox netadp kernel module [确定]

Removing old VirtualBox netflt kernel module [确定]

Removing old VirtualBox kernel module [确定]

Trying to register the VirtualBox kernel modules using DKMS[确定]

Starting VirtualBox kernel modules [失败]

(Running VirtualBox in a Xen environment is not supported)

4. 处理Xen环境问题
这次仔细看了一下报错,才发现最后一句提示是系统运行在Xen环境中,找了一下Virtualbox启动脚本,发现就是一个很简单的判断:
begin_msg "Starting VirtualBox kernel modules"
if [ -d /proc/xen ]; then
failure "Running VirtualBox in a Xen environment is not supported"
fi
用xm list看了一下果然是跑在这个环境里面了,virtualbox不能在xen里面安装。显然我自己没有在服务器上安装过Xen虚拟机,这其实就是内核启动的时候选择了Xen内核模式而已。用uname -ar就可以看到目前的内核。
[root@localhost ~]# uname -ar
Linux localhost.localdomain 2.6.18-238.el5xen #1 SMP Thu Jan 13 16:41:45 EST 2011 x86_64 x86_64 x86_64 GNU/Linux

这个很容易搞定,修改启动选用的内核:
[root@localhost ~]# vim /boot/grub/grub.conf
default=0
timeout=5
splashimage=(hd0,0)/boot/grub/splash.xpm.gz
hiddenmenu
title CentOS (2.6.18-238.el5xen)
root (hd0,0)
kernel /boot/xen.gz-2.6.18-238.el5
module /boot/vmlinuz-2.6.18-238.el5xen ro root=LABEL=/ rhgb quiet
module /boot/initrd-2.6.18-238.el5xen.img
title CentOS-base (2.6.18-238.el5)
root (hd0,0)
kernel /boot/vmlinuz-2.6.18-238.el5 ro root=LABEL=/ rhgb quiet
initrd /boot/initrd-2.6.18-238.el5.img
每个内核从0开始排序,可以看到这里把default改成1就可以选用普通内核。然后reboot重启。

5. 执行sudo /etc/init.d/vboxdrv setup,可以看到编译顺利通过

6. 原以为万事大吉,但发现安装虚拟机操作系统时却装不上。见到如下报错:
virtualbox vt-x is not available
一看感觉是服务器虚拟化没有打开,重启服务器在bios里面打开虚拟化选项,但是发现问题依旧。
上网查了一圈资料,有人说与kvm冲突有关,试了一下果然可以了。步骤:1)先用lsmod | grep kvm来查看服务器是kvm_intel还是kvm_amd,2)然后再用modprobe -r kvm_intel清除冲突。

【上篇】
【下篇】

目前有 1 条留言    访客:1 条, 博主:0 条

  1. William Salvo 2012年03月23日 上午 4:41  @回复  Δ1楼 回复

    I always was interested in this subject and still am, appreciate it for putting up.

给我留言

留言无头像?