Sunday, December 14, 2008

Using hdiutil

The hdiutil program is a native Apple command line utility for working with disk images. It uses the DiskImages framework. Disk images (usually with a .dmg, .img, or .iso file name extension) are often used for distributing programs and for burning CDs/DVDs.

Creating a disk image from a folder

hdiutil create test.dmg -srcfolder /path/to/folder/

Once the disk image is created, it can be mounted, copied, or sent like any other file.

Mounting a disk image

To mount (or attach) a disk image, use:

hdiutil mount test.dmg

A mounted disk image appears on the Desktop, in the Finder, and shows up as a directory in /Volumes. All removable media, such as CDs, DVDs, external disks, and USB flash drives are mounted in /Volumes.

Unmounting a disk image

To unmount (or detach) a disk image, use:

hdiutil unmount /dev/device-name

The device name is usually something like /dev/disk3s2. You can also unmount it using the /Volumes/mountpoint if you know where it was mounted:

hdiutil unmount /Volumes/mountpoint

Burning an ISO to CD (or DVD)

First, load a blank CD, then:

hdiutil burn cd-image.iso

Create an encrypted disk image

This creates a 10 MB encrypted disk image and internally formats it as a journaled HFS+ file system (the OS X default):

hdiutil create -encryption -size 10m -volname encdata test.dmg -fs HFS+J

During the creation of the disk image, you will be prompted for a password that will allow access to the contents of the disk image. You must remember the password or anything you put into the image will be lost.