Partition HD for triple boot (or move Apple_Boot Recovery HD from a primary partition)

partition

I want to triple boot but I'm running into a problem I ran out of primary partitions. Currently using rEFIt bootloader chooser or whatever it is called, from what I understand it is not a bootloader itself but selects the bootloader for the OS you choose to boot from a list.

The four primary partitions are in use by OS X, OS X recovery, BOOTCAMP (Windows 7) and EFI is the fourth. I believe "GUID_partition_scheme" is just the disk label for the entire drive. The drive is a 256GB SSD but size or type of the HD doesn't appear to be an issue in this situation.

Here is the output of the command 'diskutil list':

diskutil list
/dev/disk0
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:      GUID_partition_scheme                        *251.0 GB   disk0
   1:                        EFI                         209.7 MB   disk0s1
   2:                  Apple_HFS Macintosh HD            125.1 GB   disk0s2
   3:                 Apple_Boot Recovery HD             650.0 MB   disk0s3
   4:       Microsoft Basic Data BOOTCAMP                125.1 GB   disk0s4

Is my only option to delete 'Apple_Boot Recovery HD' or can I move and make it (or the EFI partition) into non-primary partition? Of course this will have to happen after resizing the drive to make room for the third primary partition.

I'm fairly new to Apple but I'm OK with partitioning if I knew what to do.

Best Answer

You're getting confused between the MBR and GPT partitioning schemes. Intel Macs generally use GPT, but for Boot Camp, they also add a so-called Hybrid MBR for booting Windows, which duplicates all or some of the partition entries. GPT can have a large number of partitions (typically, enough space is reserved for 128 partitions), but as MBR only supports 4, if you have more than that, you can't represent all of them in the MBR. Note that one partition of the EFI type 0xEE is required - this normally covers the whole disk, but for hybrid MBR, it usually only covers the GPT itself and the 200MB EFI partition at the start of the disk. So that gives you 3 usable MBR partitions, which Windows will see.

You don't mention what your third OS should be for triple-boot; if it's another installation of OS X, you have nothing to worry about. Just install it as normal, it will use GPT entries 5+. If you want another BIOS-based OS, such as Windows or most Linux distros, you'll probably need to mess with the hybrid MBR yourself. I'd do all the partitioning in OSX's Disk Utility, as it will update both the GPT and MBR tables simultaneously. Just make the new Windows or Linux partition FAT32 to begin with. Then, if your MBR covers the Recovery HD but has no entry for your new partition, get the exact positions and sizes of the GPT partitions using

sudo gpt -r disk0

This should list all 5 partitions.

In fdisk (or so), delete the MBR version of the Recovery HD, and create a new partition with the exact position and size of your new (5th) partition. Windows should now see this partition instead of the Recovery HD. You can change its type, format it, etc. as usual. Just don't try to resize it from fdisk or Windows Generally, make sure that all partitions that exist in the MBR except the 0xEE EFI partition map exactly onto a GPT partition.

This is all a bit dangerous so make sure you have backups of everything.