在CentOS下源碼安裝 Xen並搭建Windows虛擬機


 

前言

首先要感謝xing的幫助,在他的指導之下才完成環境的搭建,本文檔的部分內容來自他的文檔。另外,還要感謝——互聯網。

 

1.       環境介紹

Linux: CentOS 6.3

Xen: Xen 4.1.3

Windows: XP 或 2003

2.       安裝CentOS

從官網下載CentOS 6.3鏡像:

http://www.centos.org/

這里直接給出清華的鏈接:

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即可:

http://www.virtuatopia.com/index.php/Installing_and_Running_Windows_XP_or_Vista_as_a_Xen_HVM_domainU_Guest

如果看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中看到。

到此,本教程結束,祝大家成功!

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM