At Sirius, we have a number of boxes running Xen which we use to run virtuals for infrastructure & testing. Now it came up a couple of weeks ago that we needed to test some packages under FC8, and I was about to install the OS under Qemu when I realised that since Fedora have been shipping Xen kernels for a while, there must be a way getting a working FC8 DomU running on our existing Debian Etch Dom0. Unfortunately it wasn't as straightforward as I was hoping (with small snippets of information all over the place), so I've included the instructions below in the hope that someone else will find them useful.
1. Obtain a FC8 installation image
The easiest way to do this was to use the Rinse utility to create a FC8 image in a suitable directory on the virtualisation host.
2. Chroot to the installation image directory
3. Install the Xen DomU kernel
Rinse didn't install the Xen kernel by default and so I did a "yum install kernel-xen" to install the kernel image and initrd. These we then copied outside of the chroot so they could be loaded by the dom0.
4. Rebuild the initrd
The initrd built by Rinse appeared to have missing filenames within its startup script, however re-building the initrd within the chroot appeared to resolve the issue. I also found it was necessary to explicitly include the Xen drivers for disk/network access within the initrd by including "--with=xenblk --with=xennet" on the initrd command line.
5. Change the TTY numbers in /etc/inittab
Xen seems to use TTYs named "xvcX" rather than "ttyX", so I altered the mingetty entries in /etc/inittab to use "xvcX" instead.
6. Add devpts to /etc/fstab
Fedora kernels seem to need devpts, and Rinse didn't add the required entry to /etc/fstab. Hence I added the following line:
devpts /dev/pts devpts gid=5,mode=620 0 0
7. Create the domU & enjoy
With all the above changes in place, I was able to successfully start the Fedora Core 8 Xen kernel under a Debian Etch Dom0. I hope that this article will save people time if they are required to use a mixed distribution Xen environment.