DiskI recently had a need to clone an entire 2TB drive at the block level on a Mac. I figured this would be easy to do with GUI tools. Turns out it is not, as each tool wants to only look at Volumes or Partitions as if they are disks, and isn’t capable of cloning an entire Disk or Drive. A friend of mine who is familar with forensics helped me out.

Warning: Note that this method copies everything including the boot record from the first drive, to the second drive. Partitions are NOT resized. Any OS that reads the disk will think the destination disk is the same size the source disk was, so you may lose usable space, or in the case of the desination drive being SMALLER, could result in data corruption.

Check the Total Capacity of each disk in Disk Utility first to make sure you’re safe. In this case, it seems the disks are identical.

Disk 2: 2 TB (2,000,398,933,504 Bytes)
Disk 3: 2 TB (2,000,398,933,504 Bytes)

FIRST, get the list of disks and their respective partitions:

diskutil list
/dev/disk0
 #: TYPE NAME SIZE IDENTIFIER
 0: GUID_partition_scheme *500.3 GB disk0
 1: EFI EFI 209.7 MB disk0s1
 2: Apple_CoreStorage 499.4 GB disk0s2
 3: Apple_Boot Recovery HD 650.0 MB disk0s3
/dev/disk1
 #: TYPE NAME SIZE IDENTIFIER
 0: Apple_HFS MacBook Pro *499.1 GB disk1
/dev/disk2
 #: TYPE NAME SIZE IDENTIFIER
 0: FDisk_partition_scheme *2.0 TB disk2
 1: Apple_HFS Time Machine 1.0 TB disk2s1
 2: Windows_NTFS 1TB Storage 1.0 TB disk2s2
/dev/disk3
 #: TYPE NAME SIZE IDENTIFIER
 0: FDisk_partition_scheme *2.0 TB disk3
 1: Windows_NTFS Seagate Backup Plus ... 2.0 TB disk3s1

Notice that disk2 contains two (2) partitions of 1TB each. disk3 contains one partition of 2TB. we want to clone disk2 to disk3.

NEXT unmount entire disk(s) involved in the clone:

sudo diskutil unmountDisk /dev/disk2
Unmount of all volumes on disk2 was successful
sudo diskutil unmountDisk /dev/disk3
Unmount of all volumes on disk3 was successful

FINALLY use diskdump (dd) to perform the clone:

sudo dd if=/dev/disk2 of=/dev/disk3 conv=sync,noerror

This will take a longass time and shows no progress whatsoever. You can use Activity Monitor and glance at the dd process in the Disk tab to get an idea of how much data has been written. (Ignore the “read” value as it counts both disks, presumably due to write verification.) When it’s done, check out your work, keeping in mind the warning about partition sizes. You may want to use partitioning software to resize partitions correctly. Good luck!

Thanks to Chris Pavan (@loldottxt) for this information.