Here are some step by step instructions on how to triple boot a Mac Pro (and I guess any Intel based Mac) with OS X (Snow Leopard), Fedora 12 and Windows XP. I ran into trouble because of the Fedora 12 installer being clever and setting my Fedora partition to be bootable, which didn’t play nice with the MBR table and Windows.
Firstly, the Mac Pro I am using has a 500GB SATA drive, so the partition sizes that I choose reflect that fact. Your machine might be different, so adjust accordingly.
Install OS X on single partition using the whole drive (insert DVD and boot with C key held down).
Use the diskutil terminal command to resize the OS X partition and create one for Linux and Windows.
Open “Terminal” and then run:
sudo diskutil resizeVolume disk0s2 200G "MS-DOS" "Linux" 200G "MS-DOS" "Windows" 5G
(Note that the final number for the Windows drive doesn’t really matter, it will fill all remaining available space.)
Under OS X, install rEFIt (a graphical EFI boot loader) and then bless the drive:
Insert Fedora 12 disk and reboot, holding down the C key (or boot it from the Linux CD entry in rEFIt menu).
(Note: I had to install via FTP, because installing from DVD didn’t always work on my Mac Pro. If you have the same issue then at the boot menu hit the “Tab” key and add “askmethod” to the kernel line and boot the entry.)
During the installer, select the 3rd partition for / (choose “Custom” partition), format ext4.
Next, switch to terminal 2 (CTRL+Alt+2) and toggle boot to off for the Linux partition, like so:
toggle 3 boot
Now sync the GPT and MBR partition tables:
(Or you can do this step via rEFIt menu after the install if you prefer.)
Switch back to terminal 6 (Alt+6) and continue. Install the boot loader to /dev/sda3 (this is the default).
Complete Fedora install, reboot into OS X, eject disk, insert Windows XP install CD.
For reference, the GPT partition table should look something like this:
[chris@localhost ~]$ sudo parted -l
Model: ATA ST3500630AS P (scsi)
Disk /dev/sda: 500GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Number Start End Size File system Name Flags
1 20.5kB 210MB 210MB fat32 EFI System Partition boot
2 210MB 200GB 200GB hfs+ OS X
3 200GB 400GB 200GB ext4 Linux
4 400GB 500GB 99.9GB ntfs Windows
While the MBR table should look like this:
[chris@localhost ~]$ sudo fdisk -l
WARNING: GPT (GUID Partition Table) detected on '/dev/sda'! The util fdisk doesn't support GPT. Use GNU Parted.
Disk /dev/sda: 500.1 GB, 500107862016 bytes
255 heads, 63 sectors/track, 60801 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Disk identifier: 0xcce7cce7
Device Boot Start End Blocks Id System
/dev/sda1 1 26 204819+ ee GPT
/dev/sda2 26 24325 195181428 af HFS / HFS+
/dev/sda3 * 24341 48656 195311616 83 Linux
/dev/sda4 48657 60802 97556480 7 HPFS/NTFS
Reboot, holding down C key (or choose the Windows CD entry from rEFIt menu), install Windows XP to 4th partition, format NTFS.
If the Windows installer sees a single partition and can’t detect the file system, re-sync the GPT and MBR partition tables via rEFIt or Fedora gptsync command. Also, ensure that the Fedora partition is not set to be bootable (Step 5, part 2). The installer should see multiple drive letters, with the 4th partition being the C drive. Yes, Windows has to be installed on the last partition.
After install, the rEFIt menu should see Windows on the hard drive. Boot it and continue your Windows install. Once installed, insert the OS X Snow Leopard DVD and install the system drivers, etc.
That’s about it.