Saturday, April 24, 2010

Set up Ubuntu 10.04 Server PV DomU at Xen 4.0 Dom0 (pvops 2.6.32.10 kernel) Dom0 on top of Ubuntu 10.04 Server

The procedure bellow in general follows Thiago's Martins submission to xen-devel mailing list.However,sequence of steps has been changed, git checkout procedure is more straight
forward and one Change-set from xen-4.0-testing.hg back ported to Xen 4.0 to support grub2 notation '(hd0,1)' specific for Ubuntu 10.04 aka Lucid Lynx. The way it worked on Ubuntu 9.10 (04) Servers doesn't work any longer


apt-get install libcurl4-openssl-dev \
xserver-xorg-dev \
mercurial gitk \
build-essential \
libncurses5-dev \
uuid-dev gawk \
gettext texinfo bcc \
libncurses5-dev dpkg-dev debhelper \
iasl texinfo


apt-get build-dep xen-3.3

Now git clone and checkout branch xen/stable

cd /usr/src
git clone
git://git.kernel.org/pub/scm/linux/kernel/git/jeremy/xen.git linux-2.6-xen
cd linux-2.6-xen
git checkout -b xen/stable origin/xen/stable

Build kernel in Debian way

make menuconfig # Enabled the dom0 support and the Xen backend as usual on Ubuntu 9.10, F12
make -j2
chmod g-s /usr/src -R
make deb-pkg
dpkg -i ../linux-image*2.6.32.10*.deb
depmod 2.6.32.10
update-initramfs -c -k 2.6.32.10
update-grub
echo "xen-evtchn" >> /etc/modules

At this point kernel is installed


Set up Xen 4.0 Hypervisor
cd /usr/src
Creare grub2-fix.patch1
as raw content of http://xenbits.xensource.com/xen-4.0-testing.hg?rev/065efaec5e71
Changeset 21112 pygrub: Fix Grub2 support for Ubuntu 10.04

gunzip xen-4.0.0.tar.gz
tar -xvf xen-4.0.0.tar
cd xen-4.0.0
patch -p1 -s -i ../grub2-fix.patch1
make xen
make tools
make install-xen
make install-tools PYTHON_PREFIX_ARG=


Set up xend,xendomains to run as services

update-rc.d xend defaults 20 21
update-rc.d xendomains defaults 21 20

Test Xen installation via creation Ubuntu 10.04 Server PV DomU
Create HVM DomU via profile

kernel="/usr/lib/xen/boot/hvmloader"
builder="hvm"
memory=2048
name="LucidSRV"
vcpus=1
vif = [ 'type=ioemu,bridge=eth0' ]
disk = [ 'phy:/dev/sdc5,hda,w']
device_model = "/usr/lib64/xen/bin/qemu-dm"
boot="d"
vnc=1

Due to CS 21112 PV DomU based on the same image may be loaded via profile

name="LucidPVG"
memory=2048
vcpus=1
bootloader="/usr/local/bin/pygrub"
disk=['phy:/dev/sdc5,xvda,w']
vif= ['bridge=eth0']
vfb=['type=vnc,vncunused=1']