GPT with Mac OS X and Windows XP
From M L Vision Network Services Wiki
Windows XP with GUID Partioning and EFI
Much discussion on forums such as Insanelymac.com has centered around which is better - MBR or GPT - that is not a discussion for this wiki. Suffice it to say that OS X supports Apple Partition Map (APM), Master Boot Record (MBR) and GUID Partition Table (GPT) partitioning for hard disks. A true Mac uses GPT and in OS X 10.5 provides via diskutility the ability to non-destructively resize HFS+ partitions. GPT also provides the ability to handle larger drives than 2 TBytes and provides the path to the future. New versions of Windows (e.g. Vista, 2003) understand GPT - Windows XP (32 bit) does not. However, diskutility creates a hybrid GPT/MBR partition table where the first four partitions are synced between a GPT and a MBR. A good description of this scheme is provided at http://wiki.onmac.net/index.php/Triple_Boot_via_BootCamp.
A GPT/MBR synced partition map provides an avenue for dual booting OS X and Windows XP on a GUID partitioned drive. At present, this has only successfully been accomplished when Windows XP is installed on the 4th partition of the drive (counting the EFI protective partition as partition 1). Other orders may be possible but putting Windows XP first has personally been shown to not work (on a Gigabyte P35-DQ6 using the ICH9-R controller in AHCI mode).
To successfully dual boot OS X and Windows XP on a GUID drive the drive must first be partitioned with diskutility. The easiest way to do this is to boot into the OS X installer and use the gui version of diskutility to partition the drive. OS X can be installed either before or after Windows XP. In either order, after Windows XP is installed the EFI bootloader in the GPT/MBR must be reinstalled as the Windows XP installer will install the Windows bootloader. The sequence is as follows:
- Partition the target drive with diskutility selecting GUID Partition Table via the "Options" button.
- Install Windows XP and OS X (in either order)
- Reinstall the EFI bootloader in the GPT/MBR after the Windows XP install completes. This is nominally done with the command
dd if=./guid/boot0 of=/dev/diskX bs=400 count=1 - Booting into OS X and Windows will be controlled by the Darwin bootloader. Windows XP will most likely be shown as "Foreign Boot"
Windows XP will only see FAT/NTFS formated partitions in the first four partitions (which is actually three partitions since the first partition is the EFI protective partition). Personal testing with a GUID partitioned drive (with HFS+ and FAT partitions) has shown that OS X will not boot if it is installed after the fourth partition (b0 error). So effectively, with a GUID partitioned drive Windows will have access to at most two partitions. Additionally, these partitions cannot be modified or resized after the install as this will corrupt the GPT/MBR syncing. Given these constraints it is recommended that in a Windows XP - OS X dual boot situation that MBR partitioning be used but the option to use GPT exists.