GPT & MBR – A sweet combo

So for those of you proud Intel Mac owners that have faced the same multi-OS configuration challenges I have.. Here’s a thought on something I tried today at work.

The problem was I had a single hard drive that I wanted to have 4 partitions on. The schema was as follows:




Mac OS – Tiger


Mac OS – Leopard


Mac OS – Auxillary


Fat32 or NTFS

And so as you may well know, EFI will have it’s own partition at the start of the drive.

This meant I’d actually have 5 partitions, with the one I want visible to Windows as the last partition.

At this point in time, my understanding is that MBR will only let me define four partitions. Now I appreciate that logical/extended partitions are meant to *fix that limitation, but I’m not sure how to do that make it play nicely with GPT.

Anyway, I figured that in order to make my Windows partition visible to windows, I merely had to change only the MBR partition table to reflect whatever I wanted. As such, my GPT partition table is really irrelevant as far as windows is concerned as the MBR partitioning schema won’t affect Mac OS….

So, I just created an MBR partition table that defined a partition that started on the very block on the hard drive that GPT reported the Fat32 partition to begin on. Of course, I also defined the end of the partition that same way. Then I just set the file system flag accordingly and the product was just as I had hoped. I could read and write data to that last partition completely normally.

Obviously I’m just learning the details of how MBR and GPT really work and as such how to make them play together nicely.

My next project will be to make a partitioning schema where by I can have all the partitions I want for my Windows and Linux configurations without compromising on Mac OS. The schema will strive as follows:

1. EFI Boot
2. General Swap * – used by at least Linux and Windows
3. Mac OS Tiger
4. Mac OS Leopard (very small partition)
5. Linux Root *
6. Windows System *
7. Windows Storage *

The four partitions followed by a * are those which I’d define in MBR. I think this could work out just fine.

Anyone out there ever try something like this?