前言
首先要感謝xing的幫助,在他的指導之下才完成環境的搭建,本文檔的部分內容來自他的文檔。另外,還要感謝——互聯網。
1. 環境介紹
Linux: CentOS 6.3
Xen: Xen 4.1.3
Windows: XP 或 2003
2. 安裝CentOS
從官網下載CentOS 6.3鏡像:
這里直接給出清華的鏈接:
http://mirrors.tuna.tsinghua.edu.cn/centos/6.3/isos/i386/CentOS-6.3-i386-LiveCD.iso
光盤或U盤引導,按照提示安裝完成即可。若用U盤安裝,這里推薦一個軟件,可以將安裝鏡像寫到U盤:UNetbootin,下載地址:http://unetbootin.sourceforge.net/,寫入鏡像前最好先將U盤格式化。
3. 安裝所需的工具包
3.1. 開發包
在控制台執行下面命令安裝:
yum groupinstall "Development Tools" yum install hmaccalc ncurses-devel zlib-devel openssl-devel python-devel yum install bridge-utils libtool-ltdl xorg-x11-drv-evdev xorg-x11-drv-fbdev yum install xorg-x11-drv-i810-devel xorg-x11-drv-via-devel xorg-x11-proto-devel yum install xorg-x11-server-sdk xorg-x11-xtrans-devel libuuid-devel yum install readline-devel gcc gcc-gfortran gcc-c++ flex pcre-devel yum install blas-devel lapack-devel curl-devel bison gperf gnuplot yum install texinfo-tex tetex-dvips
后面編譯時會要求用到這兩個包:
3.2. dev86
到主頁下載:http://www.debath.co.uk/dev86
這里直接給出bin包的下載鏈接:http://www.debath.co.uk/dev86/Dev86bin-0.16.19.tar.gz
解壓:
tar zxvf Dev86bin-0.16.19.tar.gz
並將解壓出來的文件放到/usr路徑下
3.3. Intel ACPI CA
到主頁下載:http://acpica.org/downloads
下載源代碼,解壓,並安裝:
tar zxvf acpica-unix-20120816.tar.gz cd acpica-unix-20120816 make make install
3.4. libvirt
還要安裝libvirt,這樣在xen安裝完后才會有橋接virbr0
yum install libvirt
3.5. git
這里插一句,其實在CentOS6下不用手動裝git,因為本身就有,但是在本人調研過程中也在CentOS 5.8下做過實驗,CentOS 5.8需要手動裝git,因此也記錄下來。但本小節與本文無關,CentOS 6的朋友可以跳過。
wget http://download.fedoraproject.org/pub/epel/5/i386/epel-release-5-4.noarch.rpm rpm -Uvh epel-release-5-4.noarch.rpm yum install git
4. 安裝Xen
到主頁下載Xen: http://www.xen.org/
這里直接給出下載鏈接:http://bits.xensource.com/oss-xen/release/4.1.3/xen-4.1.3.tar.gz
4.1. 解壓、編譯、安裝
在此過程中會自動聯網下載所需的東西,所以要保持網絡可用。
tar zxvf xen-4.1.3.tar.gz cd xen-4.1.3 make xen tools stubdom make install-xen install-tools install-stubdom
4.2. 添加啟動項
/sbin/chkconfig --add xend /sbin/chkconfig --add xencommons /sbin/chkconfig --add xendomains /sbin/chkconfig xend on /sbin/chkconfig xendomains on /sbin/chkconfig xencommons on
5. 安裝Linux內核
Xen需要更新Linux內核,目前測試時使用的是Linux 3.1.2版本,其它版本沒試過。這里給出下載鏈接:http://www.kernel.org/pub/linux/kernel/v3.0/linux-3.1.2.tar.bz2
下載並解壓:
wget http://www.kernel.org/pub/linux/kernel/v3.0/linux-3.1.2.tar.bz2 tar jxvf linux-3.1.2.tar.bz2
在編譯之前,修改內核參數:
make menuconfig
在修改界面中將以下位置的選項都選為“*”:
Processor type and features --- > Paravirtualized Guest Support Device Drivers ---> Xen driver support ---> Network device support ---> Xen backend network device Block devices ---> Xen block-device backend driver
配置好內核參數以后,保存並退出,開始編譯 Linux 內核:
make -j4 make -j4 modules make -j4 modules_install make -j4 install /sbin/depmod 3.1.2
加了參數“-j4”后,會使用4個CPU核來並行處理,這樣速度會快很多。若只有兩核可以使用“-j2”。
6. 配置Grub
更新Grub,使用Xen來引導:
vim /boot/grub/grub.conf
在grub.conf中,已經自動添加了Linux 3.1.2的引導選項,手動添加一項引導選項,將kernel和initrd換成module,添加一行kernel /xen.gz,其它選項與Linux 3.1.2的引導選項一致即可:
... title CentOS (3.1.2-xen) root (hd0,0) kernel /xen.gz module /vmlinuz-3.1.2 ro root=/dev/mapper/vg_livecd-lv_root module /initrd-3.1.2.img ...
重啟,用Xen引導后,如果沒問題,就會進入CentOS了,此時驗證Xen:
xm list
若有類似如下輸出,則Xen成功:
Name ID Mem VCPUs State Time(s) Domain-0 0 1886 2 r----- 79.6
7. 安裝Windows
7.1. 硬件支持驗證
只有在全虛擬化下才能安裝Windows,這就需要有硬件支持,並在BIOS中開啟Virtualization Technology的選項。
在安裝Xen之前,可以用以下命令檢查是否支持全虛擬化:
Intel CPU:
grep vmx /proc/cpuinfo --color=always
AMD CPU:
grep svm /proc/cpuinfo --color=always
若有輸出,說明支持全虛擬化。
在安裝了Xen之后,以上命令不起作用,因為已經Xen屏蔽了。需要用以下命令:
grep hvm /sys/hypervisor/properties/capabilities --color=always
若有輸出,則說明支持全虛擬化,可以安裝Windows,以下是我電腦的輸出:
xen-3.0-x86_32p hvm-3.0-x86_32 hvm-3.0-x86_32p
7.2. 安裝
參考網上的教程,將xenbr0改為virbr0即可:
如果看E文不方便的話,這里給出相對應的教程。
首先,看看自己的網橋情況:
brctl show
這是我的輸出:
bridge name bridge_id STP enabled interfaces virbr0 8000.5254004d8e92 yes virbr0-nic
說明你的網橋正常,網橋名是:virbr0,這在下面的配置文件中要用到。
將Windows的光盤鏡像拷進來,假設文件是:winxp.iso
創建虛擬機文件,比如設為6G:
dd if=/dev/zero of=xenwin.img bs=1024k seek=6144 count=0
建立配置文件xenwin.cfg:
vim xenwin.cfg
在VI中輸入以下內容:
import os, re arch = os.uname()[4] if re.search('64', arch): arch_libdir = 'lib64' else: arch_libdir = 'lib' kernel = "/usr/lib/xen/boot/hvmloader" builder='hvm' memory = 512 shadow_memory = 8 name = "xenhvm" vif = [ 'type=ioemu, bridge=virbr0' ] disk = [ 'file:/home/xenwin.img,hda,w', 'file:/home/winxp.iso,hdc:cdrom,r' ] device_model = '/usr/' + arch_libdir + '/xen/bin/qemu-dm' # boot on floppy (a), hard disk (c) or CD-ROM (d) # default: hard disk, cd-rom, floppy boot="dc" sdl=0 vnc=1 vncconsole=1 vncpasswd='' stdvga=0 serial='pty' usbdevice='tablet'
其中vif的網橋輸入你電腦的網橋名;disk定位剛才創建的xenwin.img的路徑,以及Windows光盤鏡像的路徑。
配置文件創建完后,就可以開啟虛擬機了:
xm create xenwin.cfg
如果沒有問題,會自動打開一個VNC的窗口,里面就是Windows的安裝界面了。
在Windows的安裝過程中會重啟,重啟造成VNC窗口關閉,但其實虛擬機正在后台運行,可以用以下命令打開VNC窗口:
xm vncviewer xenhvm
其中xenhvm是你虛擬機的名稱,可以在xm list中看到。
到此,本教程結束,祝大家成功!