Updates

Boot Camp on Large (3 TB+) drive with 10.8.3

With the release of 10.8.3, Apple has provided support for Boot Camp on 3 TB or larger drives. This is important because 3 TB drives are now becoming more common. They are still a build-to-order option on the iMac, and until the 10.8.3 update, it was not possible to use Boot Camp assistant on 3 TB (or larger) drives. While it was still possible to set up the partitions so that you could install Windows and still use all of the available space, you still either had to pave and rebuild the partitions or be happy with two Mac volumes and a Boot Camp volume. The 10.8.3 update provides support for Boot Camp on 3 TB or larger drives by combining the 2 Mac partitions into a single Mac volume, and making sure the Windows partition is within the first 2.2 TB (allowing it to boot using the legacy MBR boot dance).

Core Storage

In Apple’s own words (from the man page on diskutil):

CoreStorage maintains a world of virtual disks, somewhat like RAID, in which one can easily add or remove imported backing store disks, as well as exported usable volumes, to or from a pool (or several pools).

Core Storage is what provides the functionality behind File Vault 2 (full volume encryption) and is what is used to provide the 3 TB support for Boot Camp. The important piece to understand about Core Storage for Boot Camp support is even if you see a single volume on your desktop, it is possible a single Mac volume might be made up of multiple physical partitions on the disk. Core Storage has its own terminology as well. The volume you see on your desktop is called a Logical Volume, and can be made up of multiple Logical Volume Groups, and those groups are made up of physical partitions. For Boot Camp support, Core Storage is relatively simple. The Mac volume you will see on your desktop is made up of a single Logical Volume, and that Logical Volume has a single Logical Volume Group, and that Logical Volume Group has 2 physical partitions.

image

Boot Camp Booting on Intel Macs

Booting Windows on Intel Macs uses the legacy MBR type booting (versus the newer EFI based booting). This provides the ability to support both Windows 8 and earlier versions of Windows. However, in order for Windows to boot using this legacy method, the Windows partition must be completely within the first 2.2 TB’s of the physical disk. This wasn’t an issue when 2.2 TB was considered crazy huge. With the new 3 TB and larger disks, this causes booting issues for booting Windows on an Intel Mac. The other limitation of legacy booting on Intel Macs is that the Windows partition must be the last used partition of the first four partitions on a disk. The partition table on Intel Macs is the GUID partition table (GPT) and it requires that the first partition be a small EFI partition. OS X also installs a recovery partition, which is normally partition three. OS X and all user data are on partition three. So that works out great, as we put the Windows partition on partition four, and it can boot since it is the last of the first 4 partitions. But then the other requirement hits us: the Windows partition must be within the first 2.2 TB. So we now what seems to be an impossible task: put Windows on the last of the first 4 partitions, but keep it within 2.2 TB on a 3 TB drive, and use all the available space and keep the Mac data as a single volume on the desktop.

Core Storage to the rescue!

One of the solutions to this issue is to create five partitions:

1: EFI Partition
2: Mac Partition
3: Recovery Partition
4: Windows Partition
5: Mac Partition #2

As long as Windows is within the first 2.2 TB, Windows will boot fine. Mac Partition and Mac Partition #2 will boot as well, as long as they have OS X on them. However, people would rather have a single Mac partition rather than 2 separate partitions. You can use Core Storage to combine the 2 Mac partitions, but prior to 10.8.3, you had to backup all the data, create the Core Storage Volume and then restore all the data. With 10.8.3, OS X is now able to create Core Storage volumes on a live OS, as well as add create Core Storage Groups and add physical volumes to them. So ultimately, that is what happens with the new Boot Camp Assistant in 10.8.3.

Boot Camp on a stock 3 TB drive

If you install a 3 TB drive yourself and it did not come with your Mac, it won’t have any Core Storage Volumes (in fact, it probably won’t even be GPT). If you use the OS X installer and create a partition using Disk Utility, you’ll have a GPT formatted disk with a single Mac partition that will look like this:

1: EFI Partition
2: Mac Partition
3: Recovery Partition

image

The single Mac partition will not be a Core Storage volume, and because of this, Boot Camp Assistant on 10.8.3 will not see it. You can dynamically convert it to use Core Storage, and then Boot Camp Assistant will see it fine.

Converting a GPT partition to a Core Storage Volume

To convert a GPT partition to be a Core Storage Volume, use command line utility “diskutil”:

diskutil cs convert /

This will add the physical partition to new Core Storage Group, and then add that group to a Core Storage Volume, and mount the volume. The volume you see mounted on the desktop will look the same, but it is now part of Core Storage. Opening Boot Camp Assistant, you’ll see that it now recognizes it and can create a Boot Camp partition:

image

After Boot Camp Assistant runs, there will be a single Core Storage Volume made up of one Core Storage Groups, and that Core Storage group has 2 physical volumes. The actual partition table is exactly like we had before when working around the issue with two Mac partitions:

1: EFI Partition
2: Mac Partition
3: Recovery Partition
4: Windows Partition
5: Mac Partition #

But now with Core Storage, the two Mac volumes are combined together:

bash-3.2# diskutil cs list
CoreStorage logical volume groups (1 found)
|
+-- Logical Volume Group 4181C0E8-648A-4D75-84B9-B1B498C1A3F7
    =========================================================
    Name:         Mac3T
    Status:       Online
    Size:         1499598979072 B (1.5 TB)
    Free Space:   0 B (0 B)
    |
    +-< Physical Volume F7E14482-4B67-4E13-AA4F-A9111E1D7362
    |   ----------------------------------------------------
    |   Index:    0
    |   Disk:     disk0s2
    |   Status:   Online
    |   Size:     698162438144 B (698.2 GB)
    |
    +-< Physical Volume 8C48B830-57B6-4D6D-9737-0E05309C0C20
    |   ----------------------------------------------------
    |   Index:    1
    |   Disk:     disk0s5
    |   Status:   Online
    |   Size:     801436540928 B (801.4 GB)
    |
    +-> Logical Volume Family 5948B358-2B67-40C6-9FB7-9F523D6D9AFA
        ----------------------------------------------------------
        Encryption Status:       Unlocked
        Encryption Type:         None
        Conversion Status:       NoConversion
        Conversion Direction:    -none-
        Has Encrypted Extents:   No
        Fully Secure:            No
        Passphrase Required:     No
        |
        +-> Logical Volume 1B076CF7-D7DD-4429-8B6F-6DC6AF0AB5B7
            ---------------------------------------------------
            Disk:               disk1
            Status:             Online
            Size (Total):       1498994987008 B (1.5 TB)
            Size (Converted):   -none-
            Revertible:         No
            LV Name:            Mac3T
            Volume Name:        Mac3T
            Content Hint:       Apple_HFS
bash-3.2# diskutil list
/dev/disk0
   #:                TYPE  NAME                   SIZE       IDENTIFIER
   0: GUID_partition_scheme                       *3.0 TB     disk0
   1:                   EFI                       209.7 MB   disk0s1
   2:     Apple_CoreStorage                       698.2 GB   disk0s2
   3:            Apple_Boot Recovery HD           650.0 MB   disk0s3
   4:  Microsoft Basic Data BOOTCAMP              1.5 TB     disk0s4
   5:     Apple_CoreStorage PV2                   801.4 GB   disk0s5
   6:            Apple_Boot Boot OS X             134.2 MB   disk0s6


Note a couple of things:

  1. The size of slice 2 and the size of slice 5 (the two Core Storage) add up to 1.5 TB, which is the size of the Mac volume.
  2. The BOOTCAMP partition is 1.5 TB and is not a core storage type.
  3. The BOOTCAMP partition falls completely within the first 2.2 TB of the partition table.

You can now go forth and install Windows or restore a Winclone image.

Conclusion

In order to support booting Windows on OS X with drives larger than 2.2 TB, Apple had to support EFI booting, allowing the Windows partition to boot from any partition of the first 4, or split up the Mac volumes and then combine them with Core Storage. By choosing the option of splitting up the Mac volumes, it allowed them to support most all of the versions of Windows 7 and Windows 8. You are still limited to 2.2 TB for the Windows volume, but that is still a tremendous amount of space.

Reprise

I shot a quick screencast showing the process of converting the 3 TB drive to Core Storage and probing the partition table.

BootCamp3TBDrives.mov from Twocanoes Software on Vimeo.