Binqbu2002:Xen4.0 installation
First,You should install CentOS 5.5 X86-64,You can refer Qian's guide CentOS5.5 Installation
Install Xen4.0.1
Of course,you should download xen-4.0.1.tar.gz and target it.
Step 1: Necessary tarball list for Xen-4.0.1
- newlib-1.16.0.tar.gz
- lwip-1.3.0.tar.gz
- zlib-1.2.3.tar.gz
- pciutils-2.2.9.tar.bz2
- grub-0.97.tar.gz
You can get them on ftp://192.168.1.253:5501
Download and place them in xen-4.0.1/stumdom/
Step 2: Install dependence
The necessary dependence are listed as following:
- gcc v3.4 or later
- make
- binutils
- development install of zlib (e.g., zlib-dev)
- development install of Python v2.3 or later (e.g., python-dev)
- development install of curses (e.g., libncurses-dev)
- development install of openssl (e.g., openssl-dev)
- development install of x11 (e.g. xorg-x11-dev)
- bridge-utils package (/sbin/brctl)
- iproute package (/sbin/ip)
- hotplug or udev
- gawk
- gettext
- texinfo
- transfig
- development install of libssl (e.g. libssl-dev)
- bcc
- ACPI ASL compiler (iasl)
- latex relevance (e.g. texlive-latex-xxx, tetex-xxx, latex2html, latex2pdf)
- mercurial (NOTE: This can be unnecessary if you don't need the hg support.)
- git (NOTE: This can be unnecessary if you don't need the Git support.)
- qemu
of course ,the following are important.
yum install binutils zlib-devel python-devel yum install ncurses-devel openssl-devel bridge-utils yum install iproute gettext texinfo* yum install transfig dev86 vnc yum install latex* yum install mercurial
Step 3: Prepare domain0 kernel
You should download the domain0 kernel:linux-xen.stable-2.6.32.x.tar.gz on ftp://192.168.1.253:5501 to xen-4.0.1.
tar zxvf linux-xen.stable-2.6.32.x.tar.gz
note:In our installation,we use that
DOM0=linux-2.6-pvops DOM0_SRC=linux-xen.stable-2.6.32.x.tar.gz DOM0_MODULES=2.6.32.12
Step 4:Compile and Install
When all things are ready, you need to obtain root permission. OK, start sailing!
make clean make dist KERNELS=linux-2.6-pvops make install KERNELS=linux-2.6-pvops
After the installation finish, you can see "xend" and "xendomains" in /etc/init.d/ directory.
Step 5:Modify the config
Be careful that if you refuse this step,you could find this error when you reboot to Xen-4.0.1 :
RedHat nash Version 5.1.19.6 startingrver(2.6.33.3) mount: could not find filesystem ‘/dev/root’ setuproot: moving /dev failed: No such file or directory setuproot: error mounting /proc: No such file or directory setuproot: error mounting /sys: No such file or directory switchroot: mount failed: No such file or directory Kernel panic – not syncing: Attempted to kill init! [Linux-initrd @ 0x1fc37000,0x228585 bytes]
so, after compiling,you should do the following step:
- modify the .config on xen-4.0.1/build-linux-2.6-prvops_x86_64/
- set
CONFIG_SYSFS_DEPRECATED_V2=y
CONFIG_SYSFS_DEPRECATED=y and do
cd build-* make make modules_install make install
Step 6 :Create booting
You should return to root to do this
su - depmod 2.6.32.12 mkinitrd -v -f /boot/initrd-2.6.32.12.img 2.6.32.12 \ --builtin=pata_marvell \ --builtin=ehci-hcd --builtin=ohci-hcd --builtin=uhci-hcd --builtin=ahci --builtin=ata_piix
After this,you can find initrd-2.6.32.12.img in /boot
Then,modify grub
add Xen start
title Xen Dom0, kernel 2.6.32.12 root (hd0,0) kernel /xen-4.0.1.gz dom0_mem=512M module /vmlinuz-2.6.32.12 root=LABEL=/ rhgb quiet module /initrd-2.6.32.12.img
NOTE: Details should be similar to other entries, e.g. the value of root.
Ok,now ,reboot
Create Domain U
- PLEASE LOG IN AS root!!!!
- First, create a hard disk .img file in console, "qemu-img" is a tool, "create" is the subcommand, "xxx.img" is the target image
Create a hard disk
(this way is faster)
qemu-img create xxx.img 20G
or (the old way, which is very slow and you will hear harddisk crying)
dd if=/dev/zero of=xxx.img bs=1024k count=2048
xend start
so,you can excute
xend start
if you find the error
> ERROR Internal error: Could not obtain handle on privileged command > interface (2 = No such file or directory) > Traceback (most recent call last): > File "/usr/sbin/xend", line 36, in <module> > from xen.xend.server import SrvDaemon > File "usr/lib/python2.5/site-packages/xen/xend/server/SrvDaemon.py", > line 26, in <module> > File "usr/lib/python2.5/site-packages/xen/xend/server/relocate.py", > line 28, in <module> > File "usr/lib/python2.5/site-packages/xen/xend/XendDomain.py", line > 35, in <module> > File "usr/lib/python2.5/site-packages/xen/xend/XendCheckpoint.py", > line 20, in <module> > File "usr/lib/python2.5/site-packages/xen/xend/image.py", line 46, > in <module> > xen.lowlevel.xc.Error: (1, 'Internal error', 'Could not obtain handle > on privileged command interface (2 = No such file or directory)')
you should do the following
modify /etc/fstab by adding:
none /proc/xen xenfs defaults 0 0
more solution,you can refer xend start problem
create winxp config file
If you want to create a domainU and want to install winxp on it ,you should create a winxp config file and copy the following
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 = 1024 name = "winxp" vcpus = 1 #cpus = ["2", "3"] # VCPU0 runs on CPU2, VCPU1 runs on CPU3 #vif = [ 'type=vnif, mac=00:16:3e:00:00:11' ] disk = ['file:/root/xxx.img,hda,w', 'phy:/dev/cdrom,hdc:cdrom,r'] #disk = ['file:/var/lib/xen/images/winxp.img,hda,w','phy:/dev/cdrom,hdc:cdrom,r'] on_poweroff = 'destroy' on_reboot = 'restart' on_crash = 'restart' device_model = '/usr/lib/xen/bin/qemu-dm' boot="dc" vnc=1 localtime=1 #cpuid = [ '0x40000002:edx=0x3' ] #mouse adjustment usb=1 usbdevice='tablet' #guest os debug support serial = 'pty' #serial = 'tcp::4444,server,nowait'
Notice:disk = ['file:/root/xxx.img,hda,w', 'phy:/dev/cdrom,hdc:cdrom,r'] the file path is your domain U path!!
launch xend
xend start
- Launch a console, cd to the config file directory, type in: (winxp is the name of the config file)
xm create winxp
- Type following to "see" domain U. "xm create" only launches the domainU and runs it at "background", so you need to use vnc (a remote desktop) to connect to domainU display.
xm vnc winxp
If everything goes well, you can see the black booting screen in the Domain U.
- Note: Sometimes, the domainU is created but disappear immediately. Please put a bootable CD in the CD-ROM in advance.
- If there is nothing, you can use:
xm list
to check if winxp has been launched.
OK,enjoy!
Qian's XEN4.0 Installation Script
Of course,Qian give a wonderful Installation Script of Xen-4.0.0,We should thanks to him and we can refer his scription
#!/bin/bash XEN=xen-4.0.0 DOM0=linux-2.6-pvops DOM0_SRC=linux-xen.stable-2.6.32.x.tar.gz DOM0_MODULES=2.6.32.12 echo "Deleting previous Xen directory." rm -rf $XEN echo "Extracting Xen source package ..." tar xzf $XEN.tar.gz echo "Extracting Dom0 kernel ..." tar xzf $DOM0_SRC -C $XEN echo "Preparing stubdom packages ..." cp stubdom_pkg/* $XEN/stubdom/ cd $XEN/ make clean make dist KERNELS=$DOM0 make install KERNELS=$DOM0 depmod $DOM0_MODULES mkinitrd -v -f /boot/initrd-$DOM0_MODULES.img $DOM0_MODULES \ --builtin=pata_marvell \ --builtin=ehci-hcd --builtin=ohci-hcd --builtin=uhci-hcd --builtin=ahci --builtin=ata_piix exit 0