Having spent a couple of weeks now playing with Xen, I have found it quite a struggle to find decent documentation explaining exactly how to install various Linux distros to act as virtual machines. After going through setting up Debian as my Xen server and a sample domU, any instructions on installing Gentoo, CentOS, Fedora, etc. all assumed you were already running those distros as the base distro. debootstrap could get me running Ubuntu, but that was about it and domi didn’t seem workable on Debian.
So, having trawled through some Xen newsgroup posts, I stumbled across jailtime.org, which provides pre-compiled, compressed images for CentOS 4.3, Gentoo 2005.1, Slackware 10.2, Debian 3.1, Fedora Core 4 + Fedora Core 5. As I’m not running my Xen server in a production environment, I don’t have any real qualms in putting my trust in someone not to have compiled something naughty into these images, though I don’t have any reason to believe there would be! Each distro is about 100Mb-120Mb in size, and each image takes about 5 minutes to extract and configure making it very quick + easy to have multiple distros running with the minimum of fuss.
Pick an image for the distro you require, and don’t forget to check the steps involved in using each image:
A slight problem has been in that the sample configs are assuming /dev/sda to be the drive in use, and the images are pre-configured with fstab’s reflecting this, along with network configurations grabbing addresses via DHCP. After changing the Xen configs to use /dev/hda (or whatever hard drive layout you’re running) and then using ‘xm create‘ to load your new virtual machine, you’ll probably get an error thrown as the system can’t mount the drives, dropping you to a recovery console. Simply remount the drive read-write, edit fstab to reflect your hard layout, and reboot:
mount -o remount,rw /
And bob’s your proverbial uncle 🙂 Might look at expanding on some already-available scripts to handle the automatic creation of whichever domain is required, including the downloading of the image if not already available locally, though I’m already being distracted from at least two other little coding projects at the moment!