Convert DMG to ISO #

Needed to convert /Applications/Install OS X Mountain Lion.app/Contents/SharedSupport/InstallESD.dmg to an ISO image for use on a Zalman ZM-VE200 SE (formerly the iodd 2501). This hint by lotas did the trick:

hdiutil convert /path/to/filename.dmg -format UDTO -o /path/to/savefile.iso

The conversion only took a few minutes, about the same time it took to complete the initial Mountain Lion setup (admittedly, both the Zalman and the MacBook had solid state drives).

UPDATE: For Mavericks, simply converting InstallESD.dmg to ISO no longer creates a bootable image. However, this script by wurst001 (a simplified version of this one posted by CrEOF) does:

	#!/bin/bash
	ESD=$1
	TMP=$2

	if [ -z "$ESD" ] || [ -z "$TMP" ]; then
		echo usage: "'$0' /path/to/esd /path/to/tmpdir"
		exit 1
	fi
	if ! [ -e "$ESD" ]; then
		echo "file '$ESD' does not exist"
		exit 1
	fi
	if ! [ -e "$TMP" ]; then
		echo "dir '$TMP' does not exist"
		exit 1
	fi

	MPAPP=/Volumes/install_app
	MPIMG=/Volumes/install_img
	IMGSPARSE=$TMP/install.sparseimage
	IMGDVD=$TMP/install.cdr

	detach_all() {
	  if [ -d "$MPAPP" ]; then hdiutil detach "$MPAPP"; fi
	  if [ -d "$MPIMG" ]; then hdiutil detach "$MPIMG"; fi
	}
	exit_all() {
	  echo +++ Command returned with error, aborting ...
	  exit 2
	}

	trap detach_all EXIT
	trap exit_all ERR

	echo +++ Trying to unmount anything from previous run
	detach_all

	echo +++ Mount the installer image
	hdiutil attach "$ESD" -noverify -nobrowse -readonly -mountpoint "$MPAPP"

	echo +++ Convert the boot image to a sparse bundle
	rm -f "$IMGSPARSE"
	hdiutil convert "$MPAPP"/BaseSystem.dmg -format UDSP -o "$IMGSPARSE"

	echo +++ Increase the sparse bundle capacity to accommodate the packages
	hdiutil resize -size 6g "$IMGSPARSE"

	echo +++ Mount the sparse bundle for package addition
	hdiutil attach "$IMGSPARSE" -noverify -nobrowse -readwrite -mountpoint "$MPIMG"

	echo +++ Remove Package link and replace with actual files
	rm -f "$MPIMG"/System/Installation/Packages
	cp -rp "$MPAPP"/Packages "$MPIMG"/System/Installation/

	echo +++ Unmount the installer image
	hdiutil detach "$MPAPP"

	echo +++ Unmount the sparse bundle
	hdiutil detach "$MPIMG"

	echo +++ Resize the partition in the sparse bundle to remove any free space
	hdiutil resize -sectors min "$IMGSPARSE"

	echo +++ Convert the sparse bundle to ISO/CD master
	rm -f "$IMGDVD"
	hdiutil convert "$IMGSPARSE" -format UDTO -o "$IMGDVD"

	echo +++ Remove the sparse bundle
	rm "$IMGSPARSE"


	echo "Done"
	echo "Find your DVD at '$IMGDVD'"

/mac | Sep 13, 2012


Subscribe or visit the archives.