Here's how I created a Ubuntu domU in Centos dom0:
dd if=/dev/zero of=/vm/Ubuntu-Hardy-base.img bs=1024k count=4000
dd if=/dev/zero of=/vm/Ubuntu-Hardy-swap.img bs=1024k count=400
/sbin/mkfs.ext3 /vm/Ubuntu-Hardy-base.img
/sbin/mkfs.ext3 /vm/Ubuntu-Hardy-swap.img
/sbin/mkswap /vm/Ubuntu-Hardy-swap.img
chmod 640 /vm/Ubuntu*
mkdir /mnt/xenfs
mount -o loop /vm/Ubuntu-Hardy-base.img /mnt/xenfs
rpm -Uvh debootstrap*
export PATH=$PATH"/usr/sbin":/sbin  (so chroot will not fail)
/usr/sbin/debootstrap --arch i386 --include=linux-image-2.6.24-
16-generic,linux-image-2.6.24-16-xen,linux-ubuntu-modules-2.6.24-16-xen,linux-image-xen,libc6-xen,grub --components=main,universe,multiverse hardy /mnt/xenfs


chroot /mnt/xen or just make xure all edits go to /mnt/xenfs/ from this point on:

mv /lib/tls /lib/tls.disabled

create /edit /etc/fstab

proc            /proc           proc    defaults        0       0
/dev/hda1       /               ext3    defaults,errors=remount-ro 0       1
/dev/hda2       none            swap    sw              0       0

# mkdir -p /boot/grub
# update-grub

edit /boot/grub/menu.lst

title           Ubuntu 8.04, kernel 2.6.24-16-xen
root            (hd0,0)
kernel          /boot/vmlinuz-2.6.24-16-generic root=/dev/xvda1 ro console=xvc0
initrd          /boot/initrd.img-2.6.24-16-xen

title           Ubuntu 8.04, kernel 2.6.24-16-xen (recovery mode)
root            (hd0,0)
kernel          /boot/vmlinuz-2.6.24-16-xen root=/dev/xvda1 ro single console=xvc0
initrd          /boot/initrd.img-2.6.24-16-xen

# cd /etc/event.d
# cp tty1 xvc0
# sed -i -e "s/tty1/xvc0/g" xvc0

Add xvc0 to /etc/securetty to allow root to login

# update-rc.d -f hwclockfirst remove
# update-rc.d -f hwclock remove
# rm /etc/udev/rules.d/85-hwclock.rules

Now download the updated linux-image and headers from
and install them, otherwise no network when you boot the domU

Create our guest config file :
bootloader = '/usr/bin/pygrub'
memory = 512
name = "Ubuntu-Hardy-Base"
disk = ['file:/vm/Ubuntu-Hardy-base.img,hda1,w','file:/vm/Ubuntu-Hardy-swap.img,hda2,w']
vif = [ '' ]

Boot the domU.

Hope this helps