This is my brief guide to getting Xen functioning on an Intel mac-mini. Please note, I have only briefly tested this installing and booting WindowsXP on my mac-mini, but it seemed to work just fine. Good luck!
The intel macs are nice, small, quite, fairly-inexpensive machines that support the VT instructions required to boot unmodified Operating Systems using Xen. When they were announced, I thought it would make a very nice dev/testing box. However, a little extra work was needed to get Xen working.
Because these machines are EFI based, you will need the latest Apple firmware which enables the Compatibility Support Module (CSM). You will also need to enable your VT instructions if they are disabled. My mac shipped with them enabled, but if yours are disabled use the EFI utility found here. Feel free to use BootCamp to resize your partition if you want to dual boot. Personally, I use rEFIt to triple boot OS X, Windows, and Linux on my mini. Instructions on how to create this setup can be found at onmac.net
You will need to install your linux distro of choice. The purpose of this guide isn't to get Linux onto your mac or how to use Xen. There are plenty of other places to find that information. Use google if you need help with that. This is a guide purely on getting an Intel Mac to run Xen.
I find it is easiest to modify a working installation into a xen dom0. I know that OpenSuSE 10.1 and Ubuntu Dapper Drake both work fine on the mini. I haven't tested any other distros. The main requirement for a distro to work is that lilo is a boot-loader option, and it has a semi-recent kernel. The reason lilo needs to be an option is even though Xen requires grub, you'll want to choose lilo as the bootloader for your first install due to the fact the macs lack a A20 gate (thus locking up unmodified grub stage2 before it boots).
Once you have a working linux installation on your mac, you will need to install the grub boot loader. A patch is provided here to work around the A20 gate issue. For those of you that want a binary, grub_0.97-1ubuntu9_i386.deb is a modified ubuntu package and grub-0.97.tgz is a tarball created using the alien utility. For anyone who just cares about the stage2 binary itself and has a .97 grub install on the system, stage2 is the only part you need to replace in a grub install. Note: grub .97 is the only version I've tested this with.
Thanks to jkeil at the opensolaris.org forums for posting this workaround!
Basically to switch to grub you will need to copy the files in /lib/grub/i386-pc/ to /boot/grub/
Then you will want to launch the grub shell:
root@mdklein-2:~# grub
then when the shell comes up please note for this chain of commands #: 1 for sda2, 2 for sda3, 3 for sda4
grub> root (hd0,#)
Filesystem type is reiserfs, partition type 0x83
grub> setup (hd0,#)
Checking if "/boot/grub/stage1" exists... yes
Checking if "/boot/grub/stage2" exists... yes
Checking if "/boot/grub/reiserfs_stage1_5" exists... yes
Running "embed /boot/grub/reiserfs_stage1_5 (hd0,2)"... 18 sectors are embedded.
succeeded
Running "install /boot/grub/stage1 (hd0,2) (hd0,2)1+18 p (hd0,2)/boot/grub/stage2 /boot/grub/menu.lst"... succeeded
Done.
grub> quit
Alternatively, you could try grub-install \(hd0,#\), but I prefer the extended dialog as assurance everything was written correctly.
you're now done with grub install.
You'll also need a /boot/grub/menu.lst entry. Something like