dd (disk duplication) is a utility that can read raw data of a disk, even if the Mac doesn’t understand the filesystem.
I have used it before in p2v a physical to a virtual server. For details take a look at this article.
if=
specifies input path (file, or device)of=
specifies output path (file, or device)bs=n
sets both input and output block size (optional, default=512 byte blocks)conv=noerror,sync
tells dd to be fault-tolerant and ignore read errors (optional)
If the operation stops with an I/O error, trying to salvage all readable data with conv=noerror,sync
.
This option can often recover a dead hard drive or an unreadable file, but it does not repair the error.
Make a clone of a disk:
In this case, I was fooling around with a Microsoft StorSimple appliance and wanted to have a backup of it to go back to if I messed it up too badly. This is not the first time I have done it, and sure not the last time, and always forgot the commands, so to future Jesper, here goes.
Open Terminal and try this:
- Attach and identify the source disk:
diskutil list
2. if mounted, unmount the source disk:
diskutil unmountDisk /dev/disk2
Copy the source disk to the desktop:
sudo dd if=/dev/disk2 of=~/Desktop/diskimage.img
If you want to save space, make it gzip it with:
sudo dd if=/dev/disk2 | gzip -c > ~/Desktop/diskimage.img.gz
Failed disk backup:
If the copy fails due to disk errors, try using the following command at step 3:
dd if=/dev/disk2 of=~/Desktop/diskimage.img conv=noerror,sync
dd will take much longer using this option, errors are written as null bytes. fsck / chkdsk the disk afterward.
Notes:
- Using
/dev/rdisk#
(raw disk) in place of/dev/disk#
is much faster - You can check progress, while the command is running, by pressing Ctrl-T
- If you can attach both disks, copy directly:
sudo dd if=/dev/disk2 of=/dev/disk3 bs=64k