Updates

Winclone Image Compatibility with 512 and 4K Block Size on 2015 MacBooks

The early 2015 MacBook now ship with drives that use native advanced format 4096 bytes per sector drives and we suspect that this will continue in future models. Larger block size means that large files can be written faster, since more data can be written at one time. However, this mean that filesystems and drivers must be block size aware. Prior Macs use 512 byte emulation even though the physical sectors are 4K.

Also, the master file table (MFT) on pre-2015 Mac drives use file record segments in 1024-byte units, whereas the 2015 Mac’s drives use file record segments in 4096-byte segments.

We’ll examine the consequences in more detail, but the result is that:

  • Winclone images created on pre-2015 Mac hardware will boot on other pre-2015 Mac hardware.
  • Winclone images created on pre-2015 Mac hardware will not boot on 2015 Macs.
  • Winclone images created on 2015 Macs will boot on other 2015 Macs.
  • Winclone images created on 2015 Macs will not boot on pre-2015 Macs.

For several years, hard drive manufacturers have been transitioning drives from 512 byte sector size to 4096 byte sector size. Hard drives have had physical sector sizes of 4096 bytes for many years, but the controllers in these drives present logical sector size as 512 bytes in emulation (512e) to support older computer hardware and operating systems.

The change in 2015 is Mac drive controllers now present native 4096 bytes (advanced format) logical sectors to the operating system rather than 512 bytes. The consequence of this change is that Winclone images of Boot Camp from older hardware cannot be restored to bootable systems on the new Mac hardware and vice versa.

To see what logical sector size is used on the Mac, open Utilities -> Terminal on Mac OS X and enter:

diskutil info / | grep “Block Size”.

Pre-2015 Macs will generally show the device block size (or logical sector size) as 512 bytes and 2015 Macs 4096 bytes.

pre-2015_Mac$ diskutil info / | grep “Block Size”
Device Block Size: 512 Bytes
Allocation Block Size: 4096 Bytes

2015_Mac$ diskutil info / | grep “Block Size”
Device Block Size: 4096 Bytes
Allocation Block Size: 4096 Bytes

The device block size is the raw block size used by the hard drive controller hardware and cannot be changed. The Allocation Block Size is used by the file system and is set when formatting and partitioning drives.

When the logical sector size for the destination disk differs from logical sector size stored in the Winclone image (from a source disk), the restored image will not have an valid partition table, will not mount and will not boot.

Additional information can be found by starting Boot Camp and view sector info with fsutil. Running Windows 8.1 on a pre-2015 MacBook Pro and 2015 MacBook, we find the bytes per sector (device block size) differences as well as master file table (MFT) size shown by bytes per file record segment differences.

pre-2015_MacBootCamp> fsutil fsinfo ntfsinfo c:

Bytes Per Sector : 512

Bytes Per Physical Sector : 4096

Bytes Per Cluster : 4096

Bytes Per FileRecord Segment : 1024

Clusters Per FileRecord Segment : 0

2015_MacBootCamp> fsutil fsinfo ntfsinfo c:

Bytes Per Sector : 4096

Bytes Per Physical Sector : 4096

Bytes Per Cluster : 4096

Bytes Per FileRecord Segment : 4096

Clusters Per FileRecord Segment : 1