Centos5.4安裝XEN3.4.2

Centos5.4  安裝XEN3.4.2  php

1.XEN 的安裝html

a須要的包名稱python

xen-3.4.2.tar.gz linux

linux-2.6.18-xen-3.4.2.tar.gz git

補丁bash

grub-0.97.tar.gz   newlib-1.16.0.tar.gz    pciutils-2.2.9.tar.gzdom

lwip-1.3.0.tar.gz  pciutils-2.2.9.tar.bz2  zlib-1.2.3.tar.gzide

其中zlib-1.2.3.tar.gz注意解壓後文件夾名稱是否爲zlib-1.2.3(重要工具

不然會致使編譯錯誤oop

b.安裝包

# yum install 

libx11-devel.x86_64

openssl-devel.x86_64

gettext_devel.x86_64

gcc.x86_64

dev86.x86_64

ncurses-devel

python-devel

libtool-ltdl

texinfo.x86_64

xorg-x11-xtrans-devel

xorg-x11-server-sdk

xorg-x11-drv-i810-devel

xorg-x11-drv-via

xorg-x11-proto-devel

c.設置配置文件

把對應的linux內核源碼包放到xen的目錄下改爲linux-2.6.18-xen.hg並修改src.hg-clone文件。

[root@localhost source]# mv linux-2.6.18-xen-3.4.2 xen-3.4.2/linux-2.6.18-xen.hg

[root@localhost source]# cd xen-3.4.2

[root@localhost xen-3.4.2]# gedit buildconfigs/src.hg-clone 

去掉hg同步linux內核源碼的步驟(修改後的文件)以下

----------------------------------------------------------------

# Mercurial

HG ?= hg

LINUX_SRCDIR ?= linux-$(LINUX_VER)-xen.hg

# Repository to clone.

XEN_LINUX_HGREPO ?= $$(sh buildconfigs/select-repository $(LINUX_SRCDIR) $(LINUX_SRC_PATH))

# Set XEN_LINUX_HGREV to update to a particlar revision.

XEN_LINUX_HGREV  ?= tip

$(LINUX_SRCDIR)/.valid-src: $(__XEN_LINUX_UPDATE)

set -e ; \

touch $@

d.準備studom補丁集

studom是xen中的一個補丁集能夠增長性能是從xen3.3引入的並非必需的。網上有說能夠把這塊去掉(具體步驟能夠到網上去找)若是不想去掉的話能夠本身上網下載對應的工具包放到xen源碼目錄下的studom目錄下。我已經下好了這些工具包在按照名字在網上都很容易搜索到的。

[root@localhost stubdom]# ls

grub-0.97.tar.gz   newlib-1.16.0.tar.gz    pciutils-2.2.9.tar.gz

lwip-1.3.0.tar.gz  pciutils-2.2.9.tar.bz2  zlib-1.2.3.tar.gz

[root@localhost stubdom]# cp * ../xen-3.4.2/stubdom/

其中zlib-1.2.3.tar.gz注意解壓後文件夾名稱是否爲zlib-1.2.3(重要

e.開始編譯安裝

[root@localhost xen-3.4.2]# make dist有Y選Y沒Y選M

[root@localhost xen-3.4.2]# make install

f.生成initrd鏡像

[root@localhost xen-3.4.2]# mkinitrd --without-dmraid -v -f /boot/initrd-2.6.18.8-xen.img 2.6.18.8-xen

g.修改grub配置文件

[root@localhost xen-3.4.2]# gedit /boot/grub/grub.conf 

----------------------------------------------------------------

default=1

timeout=1

splashp_w_picpath=(hd0,1)/boot/grub/splash.xpm.gz

hiddenmenu

title CentOS (2.6.18-164.el5)

root (hd0,1)

kernel /boot/vmlinuz-2.6.18-164.el5 ro root=LABEL=/1 rhgb quiet

initrd /boot/initrd-2.6.18-164.el5.img

title CentOS-Xen3.4.2 (2.6.18-8)

root (hd0,1)

kernel /boot/xen-3.4.2.gz

module /boot/vmlinuz-2.6.18.8-xen ro root=LABEL=/1 rhgb quiet

module /boot/initrd-2.6.18.8-xen.img 

title Other

rootnoverify (hd0,0)

chainloader +1

----------------------------------------------------------------
2.DOMU的啓動

編譯一個domU內核
   咱們使用上面下載的Xen源代碼來建立domU內核
一、進入包含源代碼的目錄
   cd ~/xen-source
二、編譯domU內核
   make linux-2.6-xenU-config
三、選擇domU內核須要的選項若是不肯定可使用缺省選項記得在退出時保存選項。
四、建立domU內核而後安裝
   make linux-2.6-xenU-build
   make linux-2.6-xenU-install
五、爲domU內核建立initrd(我沒有成功創建少個模塊沒有這個也能夠啓動)
   mkinitrd -v -f --with=ide-disk --with=sd_mod --with=ide-generic --with=ext3 --with=scsi_mod /boot/initrd-2.6.**.**-xenU.img 2.6.**.**-xenU

mkinitrd -v -f   initrd-2.6.21.DomU.img  $(uname -r)

建立鏡像文件

For example, to create a 2GB sparse le-backed virtual block device (actually only

consumes 1KB of disk):

# dd if=/dev/zero of=vm1disk bs=1k seek=2048k count=1

Make a le system in the disk le:

# mkfs -t ext3 vm1disk

(when the tool asks for conrmation, answer `y')

Populate the le system e.g. by copying from the current root:

# mount -o loop vm1disk /mnt

# cp -ax /{root,dev,var,etc,usr,bin,sbin,lib} /mnt

# mkdir /mnt/{proc,sys,home,tmp}

配置文件修改

修改與系統相關的配置文件例如

文件系統表/etc/fstab

主機名/etc/sysconfig/network

IP地址和MAC地址/etc/sysconfig/network-scripts/ifcfg-eth0這些最好都進行修改。

注意這裏所說的文件系統表還有主機名等文件是在/mnt/下的如/etc/fstab實際是指/mnt/etc/fstab含義其實很簡單就是修改咱們建立的vm1disk這套半虛擬話磁盤鏡像系統內的系統表主機名等這裏就再也不贅述了。

現將個人修改貼出來以供你們參考個人修改所有是必須的修改由於我以前這些有的沒有修改所以會爆出這樣或那樣的錯誤讓人很困擾後面的錯誤分析中我會具體說明是哪些未修改引發的錯誤。

文件系統表/etc/fstab

  所有都註釋掉只留一行

/dev/sda2    /  ext3 defaults     1     1

注sda2這個要視狀況而定。學長告訴我先要在終端中用fdisk -l這個命令看看哪一個在root那一行是*而後就寫成哪一個因此我原本寫的是sda1可是有問題後來另外一個學長告訴我偏偏相反要用沒有用過的所以用了在fdisk -l裏面沒有出現的sda2結果成功了因此這個選擇我但願你們最好仍是試試看吧有興趣的嘗試一下能夠告訴我哦~

補充剛纔我又試了一下在一切的成功的基礎上將sda2都改成sda1也沒有問題不知道是什麼狀況但願知道的留言解釋呵呵。

  主機名/etc/sysconfig/network

將主機名修改便可。

IP和MAC地址/etc/sysconfig/network-scripts/ifcfg-eth0

這個能夠不修改可是不修改則沒法上網至少我用的時候不修改是沒法ping通本機的建議你們修改

更改系統級別/etc/inittab

選擇3 ×××面方式

Domu啓動配置文件

配置文件製做

kernel = "/boot/vmlinuz-2.6.21-2950.fc8xen"        //DomU的內核

ramdisk = "/boot/initrd-2.6.21.DomU.img"               // 包含相應驅動DomU 的intrd 文件 要本身製做最好不要用                系統生成的可選

#ramdisk  = "/boot/initrd-2.6.21-2950.fc8xen.img"

memory = 200

maxmem = 200

name   = "jiangyue-fc8"

vif    = ['mac=AA:AA:0A:EF:EF:04,bridge=eth0']

vcpus  = 1

ip     = "192.168.201.18"

netmask= "255.255.255.0"

dns    = "202.114.0.242"

disk   = ['file:/media/disk/fc8.img,sda2,w']    //sda2 與DomU中 /etc/fstab中一致

root   = "/dev/sda2 ro"                                                   //sda2 與DomU中一致

#extra  = 'xencons=tty'  

 

 

xen-4.1.2+Linux-3.1.2源碼編譯安裝

如下全部命令均在CentOS6.2系統上操做。

下載xen源碼 
wget http://bits.xensource.com/oss-xen/release/4.1.2/xen-4.1.2.tar.gz

安裝必備軟件包

yum groupinstall "Development Libraries"

yum groupinstall "Development Tools"

yum install transfig wget texi2html libaio-devel dev86 glibc-devel e2fsprogs-devel gitk mkinitrd iasl xz-devel bzip2-devel pciutils-libs pciutils-devel SDL-devel libX11-devel gtk2-devel bridge-utils PyXML qemu-common qemu-img mercurial libidn-devel

yum -y install glibc-devel.i686texinfo libuuid-devel iasl python-lxml

yum -y install openssl openssl-devel

yum -y install ncurses ncurses-*

yum install python-devel -y

 

編譯安裝xen hypervisor

tar zxvf xen-4.1.2.tar.gz

 

make world

make install

 

/boot下多了xen-4.1.2.gz和xen-syms-4.1.2文件

 

將Xen加入到啓動腳本

/sbin/chkconfig --add xend
/sbin/chkconfig --add xencommons
/sbin/chkconfig --add xendomains
/sbin/chkconfig xend on
/sbin/chkconfig xendomains on
/sbin/chkconfig xencommons on

 

編譯安裝Linux3.1.2內核

wget http://www.kernel.org/pub/linux/kernel/v3.0/linux-3.1.2.tar.bz2
#make oldconfig # 所有默認
#make menuconfig 

Processor type and features --- >
     選中Paravirtualized Guest Support
  Device Drivers ---> 
      Xen driver support ---> 
        所有選*

修改CONFIG_XEN_DEV_EVTCHN=y若是是m開機時沒法啓動xencommons

make
make modules
make modules_install
make install 會報找不到xen-evtchn模塊忽略
depmod 3.1.2
mkinitrd -v -f --with=aacraid --with=sd_mod --with=scsi_mod initramfs-3.1.2.img 3.1.2

配置grub

title CentOS (3.1.2-xen)
        root (hd0,0)
        kernel /boot/xen-4.1.2.gz  dom0_mem=1024M
        module /boot/vmlinuz-3.1.2 ro root=/dev/sda1
        module /boot/initramfs-3.1.2.img

參考
http://linuxme.blog.51cto.com/1850814/390778
http://share.blog.51cto.com/278008/723828
http://blog.chinaunix.net/space.php?uid=147142&do=blog&id=2788048
http://wiki.xen.org/xenwiki/2.6.18-to-2.6.31-and-higher
http://wiki.xen.org/wiki/Migrate_from_Linux_2.6.18_to_2.6.31_and_higher
http://wiki.xen.org/wiki/Mainline_Linux_Kernel_Configs
http://wiki.xen.org/wiki/HostConfiguration/Networking


虛機配置文件中增長

extra="single"


#!/bin/bash
# Generate vm configuration file for already running vms

# Execute 'xm new -F test.cfg' to create vm using generated config
#
# By feisky
vms=`xm li | grep -v Name | grep -v Domain-0 | awk '{print $1}'`
for vm in $vms
do 
xm li -l $vm > $vm.cfg
done

 

換過一個版本的xen以後從新編譯源代碼從新啓動出現Kernel panic - not syncing: Attempted to kill init!解決辦法initrd鏡像沒有更新從新生成下initrd的鏡像針對2.6.18.8的到boot目錄下執行以下命令mkinitrd -v -f --with=aacraid --with=sd_mod --with=scsi_mod initrd-2.6.18.8-xen.img 2.6.18.8-xen再次啓動就能夠了

相關文章
相關標籤/搜索