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就發現驅動沒有編譯,根據提示執行編譯命令,見到如下報錯:
簡單看了一下,是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[失敗]
- (Failed, trying without DKMS)
- Recompiling VirtualBox kernel modules [確定]
- Starting VirtualBox kernel modules [失敗]
- (Running VirtualBox in a Xen environment is not supported)
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
每個內核從0開始排序,可以看到這裡把default改成1就可以選用普通內核。然後reboot重啟。 5. 執行sudo /etc/init.d/vboxdrv setup,可以看到編譯順利通過 6. 原以為萬事大吉,但發現安裝虛擬機操作系統時卻裝不上。見到如下報錯:
- [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
一看感覺是服務器虛擬化沒有打開,重啟服務器在bios裡面打開虛擬化選項,但是發現問題依舊。 上網查了一圈資料,有人說與kvm沖突有關,試了一下果然可以了。步驟:1)先用lsmod | grep kvm來查看服務器是kvm_intel還是kvm_amd,2)然後再用modprobe -r kvm_intel清除沖突。 總結:其實整個過程也不是很麻煩,就是每個問題定位清楚,逐一處理,切忌漫無目的一通亂試!
- virtualbox vt-x is not available
參考文檔:
1. virtualbox 與kvm沖突的解決辦法 http://www.linuxidc.com/Linux/2012-01/51361.htm