歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> Linux教程 >> CentOS 5.6下VirtualBox安裝手記

CentOS 5.6下VirtualBox安裝手記

日期:2017/2/28 15:59:49   编辑:Linux教程
最近服務器被大量外借,所以想借此推進一下虛擬化技術。虛擬機軟件特別選用了比較簡單的Virtualbox。但是居然被告知軟件裝不上,無奈之下自己動手,中間確實遇到點小問題,記錄下來以做備忘。

1. 安裝軟件環境

  1. yum install gcc
  2. yum install kernel-devel
  3. 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就發現驅動沒有編譯,根據提示執行編譯命令,見到如下報錯:

  1. [root@localhost home]# sudo /etc/init.d/vboxdrv setup
  2. Stopping VirtualBox kernel modules [確定]
  3. Uninstalling old VirtualBox DKMS kernel modules [確定]
  4. Removing old VirtualBox pci kernel module [確定]
  5. Removing old VirtualBox netadp kernel module [確定]
  6. Removing old VirtualBox netflt kernel module [確定]
  7. Removing old VirtualBox kernel module [確定]
  8. Trying to register the VirtualBox kernel modules using DKMS[失敗]
  9. (Failed, trying without DKMS)
  10. Recompiling VirtualBox kernel modules [確定]
  11. Starting VirtualBox kernel modules [失敗]
  12. (Running VirtualBox in a Xen environment is not supported)
簡單看了一下,是dkms沒安裝引起的

3. 安裝dkms

這個比較簡單,到這裡http://linux.dell.com/dkms/去下載一個安裝就行了。

然後再執行驅動編譯命令,發現還是出錯:

  1. [root@localhost home]# sudo /etc/init.d/vboxdrv setup
  2. Stopping VirtualBox kernel modules [確定]
  3. Uninstalling old VirtualBox DKMS kernel modules [確定]
  4. Removing old VirtualBox pci kernel module [確定]
  5. Removing old VirtualBox netadp kernel module [確定]
  6. Removing old VirtualBox netflt kernel module [確定]
  7. Removing old VirtualBox kernel module [確定]
  8. Trying to register the VirtualBox kernel modules using DKMS[確定]
  9. Starting VirtualBox kernel modules [失敗]
  10. (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就可以看到目前的內核。
  1. [root@localhost ~]# uname -ar
  2. 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
這個很容易搞定,修改啟動選用的內核:
  1. [root@localhost ~]# vim /boot/grub/grub.conf
  2. default=0
  3. timeout=5
  4. splashimage=(hd0,0)/boot/grub/splash.xpm.gz
  5. hiddenmenu
  6. title CentOS (2.6.18-238.el5xen)
  7. root (hd0,0)
  8. kernel /boot/xen.gz-2.6.18-238.el5
  9. module /boot/vmlinuz-2.6.18-238.el5xen ro root=LABEL=/ rhgb quiet
  10. module /boot/initrd-2.6.18-238.el5xen.img
  11. title CentOS-base (2.6.18-238.el5)
  12. root (hd0,0)
  13. kernel /boot/vmlinuz-2.6.18-238.el5 ro root=LABEL=/ rhgb quiet
  14. initrd /boot/initrd-2.6.18-238.el5.img
每個內核從0開始排序,可以看到這裡把default改成1就可以選用普通內核。然後reboot重啟。 5. 執行sudo /etc/init.d/vboxdrv setup,可以看到編譯順利通過 6. 原以為萬事大吉,但發現安裝虛擬機操作系統時卻裝不上。見到如下報錯:
  1. virtualbox vt-x is not available
一看感覺是服務器虛擬化沒有打開,重啟服務器在bios裡面打開虛擬化選項,但是發現問題依舊。 上網查了一圈資料,有人說與kvm沖突有關,試了一下果然可以了。步驟:1)先用lsmod | grep kvm來查看服務器是kvm_intel還是kvm_amd,2)然後再用modprobe -r kvm_intel清除沖突。 總結:其實整個過程也不是很麻煩,就是每個問題定位清楚,逐一處理,切忌漫無目的一通亂試!

參考文檔:
1. virtualbox 與kvm沖突的解決辦法 http://www.linuxidc.com/Linux/2012-01/51361.htm

Copyright © Linux教程網 All Rights Reserved