How To Create Disk Image on Mac OS X With dd Command nixCraft Updated Tutorials/Posts

How do I create or write to images to disk on Apple Mac OS X (macOS) Unix operating system with dd command?

You can use dd command to:

  1. Create new disk images from USB or SD card
  2. Write images to disk or USB or SD card

You also need to use diskutil command manipulates the structure of local disks including listing and unmouting disks before you create or write images to disk.

Please be careful when running the following commands, as you might destroy important data or disk.

How To Create Disk Image on Mac OS X With dd Command

The procedure is as follows:

  1. Open the Terminal app
  2. Get disk list with the diskutil list
  3. To create the disk image: dd if=/dev/DISK of=image.dd bs=512
  4. To write the disk image: dd if=image.dd of=/dev/DISK

Let us see all commands in details.

1. Create disk image with dd command

Open the Terminal application and type the following command to list disks:
$ diskutil list
Sample outputs:

How To Create Disk Image on Mac OS X With dd Command - Insert in your SD card, or USB pen/HDD, and see /dev/diskN name
Fig.01: Insert in your SD card, or USB pen/HDD, and see /dev/diskN name

In this example my SD card size is 4GB and located at /dev/disk2.

2. Unmount the disk

Unmount the disk called /dev/disk2:
$ diskutil unmountDisk /dev/disk2
Sample outputs:

Unmount of all volumes on disk2 was successful

3. Create the disk image with dd

Finally create the disk image of the entire disk /dev/disk2:
$ sudo dd if=/dev/disk2 bs=512
$ sudo dd if=/dev/disk2 bs=1m
$ sudo dd if=/dev/disk2 bs=64k
Sample outputs:

60504+0 records in
60504+0 records out
3965190144 bytes transferred in 839.664927 secs (4722348 bytes/sec)

You can create compressed disk image as follows:
$ sudo dd if=/dev/disk2 bs=64K | gzip -c > backup.disk.img.dd.gz

  • dd : Command name
  • if=/dev/disk2 : Input disk name
  • : Output image name
  • bs=64k or bs=1m or bs=512 : Set both input and output block size to n bytes.
  • gzip -c > backup.disk.img.dd.gz : Create compressed disk image using gzip

You can verify your disk with file command:
$ file disk-name-here.img.dd

disk-name-here.img.dd: x86 boot sector; partition 1: ID=0xc, starthead 130, startsector 8192, 114688 sectors; partition 2: ID=0x83, starthead 165, startsector 122880, 6277120 sectors, code offset 0xb8

How do I write dd images to disk again?

The syntax is as follows:
$ diskutil list
$ diskutil unmountDisk /dev/disk2
$ sudo dd of=/dev/disk2
### Restores compressed image and write /dev/disk2 ###
$ sudo sh -c 'gunzip -c backup.disk.img.dd.gz | dd of=/dev/disk2'

See dd command man page for more info.

Not a fan of command line?

You can use ‘Disk Utility’ GUI tool to create and restore images. First ‘Open Disk Utility’ by visiting the Applications > Utilities folder:

Fig. 02: Disk utility in action
Fig. 02: Disk utility in action

Choose File > New > Image from “Untitled”. Next, enter a name for the disk image, then choose where to save it:

Fig.03: Saving SD card image
Fig.03: Saving SD card image

Etcher app

Etcher is an SD card flasher app that is simple for end users, extensible for developers, and works on any platform including macOS. However, it is written in JS, HTML, node.js and Electron. So if you want to download external and fat app go here. Personally, I recommend and use the CLI or inbuilt apps.

Get 15% off on Linux Foundation certified SysAdmin, Progamming, Kubernetes/Containers and Open Stack certification & course. Use “CYBER15” coupon code.

Posted by: Vivek Gite

The author is the creator of nixCraft and a seasoned sysadmin, DevOps engineer, and a trainer for the Linux operating system/Unix shell scripting. Get the latest tutorials on SysAdmin, Linux/Unix and open source topics via RSS/XML feed or weekly email newsletter.

Facebook Comments

More Stuff

Kate Matthews Theatre & Costume Design This is one reason I’ve been so damn busy recently… I’ve been trying to avoid taking new freelance work on, because I have enou...
How to setup a UFW firewall on Ubuntu 18.04 LTS server nixCraft How do I setup a firewall with UFW (uncomplicated firewall) on an Ubuntu Linux 18.04 LTS server to restrict traffic on my personal Ubuntu web-server ...
Linux Find Wireless Wifi Driver Chipset Information nixCraft Updat... How do I find out Wireless driver chipset information under a Linux operating system? How do I get wireless card chipeset information without opening...
Sysadmin tools, secrets of Kconfig/kbuild, 11 KDE apps, tcpdump, L... For more discussion on open source and the role of the CIO in the enterprise, join us at The opinions expressed on t...
Spread the love

Posted by News Monkey