[Updated Wednesday, September 24, 2008, 1600 IST]
This is documentation for running Debian GNU Mach, GNU Hurd with Xen on a Debian Lenny (x86) system, having a free primary partition for GNU Hurd.
Install Xen
sudo apt-get install xen-hypervisor-3.2-1-i386-nonpae
Install xen-kernels, headers, image (2.6.18-6-xen-686-nonpae) from: http://youpibouh.thefreecat.org/hurd-xen/
Updated /boot/grub/menu.lst is:
title Xen 3.2-1-i386-nonpae / Debian GNU/Linux, kernel 2.6.18-6-xen-686-nonpae
root (hd0,0)
kernel /boot/xen-3.2-1-i386-nonpae.gz
module /boot/vmlinuz-2.6.18-6-xen-686-nonpae root=/dev/sda1 ro console=tty0
module /boot/initrd.img-2.6.18-6-xen-686-nonpae
Copy gnumach-xen and hurd-modules from: http://youpibouh.thefreecat.org/hurd-xen/ into /boot.
Reboot into the xen-nonpae kernel.
Setup GNU Hurd partition
I have one free primary partition /dev/sda4. You can also use an extended partition for the same. Use fdisk to choose type 0x83.
Format it using mke2fs as:
sudo mke2fs -b 4096 -I 128 -o hurd /dev/sda4
Install crosshurd:
sudo apt-get install crosshurd
Mount /dev/sda4:
sudo mount /dev/sda4 /mnt
Run crosshurd to install GNU Hurd on /mnt. Choose /mnt partition, and GNU Hurd. Once it is installed, unmount partition:
sudo umount /mnt
Setup /etc/xen/hurd
Use /etc/xen/hurd as follows
kernel = "/boot/gnumach-xen"
memory = 256
disk = ['phy:sda4,hda,w']
extra = "root=device:hd0"
vif = [ '' ]
ramdisk = "/boot/hurd-modules"
Start Hurd
sudo xm create -c hurd
You will need to proceed with the GNU/Hurd installation.
export TERM="mach"
./native-install
To halt the system, use:
halt
Xen commands
You can run these commands from Debian Lenny (dom0):
You can see the list of running domains using:
sudo xm list
You can destroy the Hurd domain using:
sudo xm destroy hurd
References
http://www.bddebian.com/~wiki/microkernel/mach/gnumach/ports/xen/