Sunday, August 30, 2009


Loading Xen via GRUB2 on top Ubuntu Karmic Server


Update file /etc/default/grub as follows

GRUB_DEFAULT=0
# GRUB_HIDDEN_TIMEOUT=0
GRUB_HIDDEN_TIMEOUT_QUIET=true
GRUB_TIMEOUT=10
GRUB_DISTRIBUTOR=`lsb_release -i -s 2> /dev/null || echo Debian`
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"
# Uncomment to disable graphical terminal (grub-pc only)
#GRUB_TERMINAL=console
# The resolution used on graphical terminal
# note that you can use only modes which your graphic card supports via VBE
# you can see them in real GRUB with the command `vbeinfo'
#GRUB_GFXMODE=640x480
# Uncomment if you don't want GRUB to pass "root=UUID=xxx" parameter to Linux
GRUB_DISABLE_LINUX_UUID=true
# Uncomment to disable generation of recovery mode menu entrys
#GRUB_DISABLE_LINUX_RECOVERY="true"
GRUB_CMDLINE_LINUX=""

Update /etc/grub.d/40_cutom as follows

#!/bin/sh
exec tail -n +3 $0
# This file is an example on how to add custom entries
menuentry "Xen 3.4 / Ubuntu 9.10 kernel 2.6.30.2-xen" {
insmod ext2
set root=(hd0,13)
multiboot (hd0,13)/xen-3.4.gz
module (hd0,13)/vmlinuz-2.6.30.2
module (hd0,13)/initrd-2.6.30.2.img
}

Then run
# update-grub
To generate grub.cfg entry for loading Xen Host.


I've tested 2.6.29.6 and 2.6.30 xenified aka Suse kernels been
built with static cmd string per Christian Tramnitz


Setting CONFIG_CMDLINE_BOOL=y in .config allows to assign desired value via make menuconfig:

Symbol: CMDLINE [=root=/dev/sda14 ro console=tty0]
Prompt: Built-in kernel command string
Defined at arch/x86/Kconfig:1644
Depends on: CMDLINE_BOOL
Location:
-> Processor type and features
-> Built-in kernel command line (CMDLINE_BOOL [=y])

The rest is supposed to be tuned exactly as in [1]
When building Xen 3.4.1 from source installed

apt-get install libcurl4-openssl-dev \
xserver-xorg-dev \
python2.6-dev \
mercurial gitk \
build-essential \
libncurses5-dev \
uuid-dev gawk \
gettext texinfo bcc

Then set

# cd /usr/src
# tar zvxf xen-3.4.1.tar.gz
# cd xen-3.4.1
Set in Config.mk
PYTHON = python
PYTHON_PREFIX_ARG =

and build

# make install-xen
# make install-tools
# make install-stubdom

Tuning Config.mk results Xen packages to be placed into /usr/local/lib/python2.6/dist-packages due to Changeset 19594 in xen-3.4-testing.hg. Otherwise, Xen packages would go to /usr/lib/python2.6/site-packages, which is not default location for python 2.6 on Ubuntu 9.10 ( vs F11 ). Thus you won’t be able to start xend in Dom0.














References
1.Building Xen 3.4.1 Dom0 via xenified 2.6.30.2 kernel on top Ubuntu 9.04 Server