GNU Mach, GNU Hurd with Xen

[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:

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: 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"

To halt the system, use:


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