Restoring an SD card using a multi-partitioned DMG
Use the dd command-line tool.


Mount the SD
Use "Disk Utility":  Select the top level of the SD
card and "Get Info".  Note the "Disk Identifier" (example disk13)
Unmount all of the volume on the SD, if they are mounted, but do NOT removed the SD card.  This is important because the dd will fail if it detects any mounted volumes.


In the Terminal:


If you are not in an Admin account, use "su (admin account name)" to gain admin authority
sudo dd if=/path/to/DMG/file of=/dev/(disk identifier from above) bs=16k


Then wait a long time for the operation to complete.  In a 4 GB copy I performed recently to a CF card, it took 21 minutes to finish.

You will eventually get 3 lines stating records in &amp; out and bytes copied.  Example:

243528+1 records in
243528+1 records out
3989970432 bytes transferred in 1278.252950 secs (3121425 bytes/sec)


In my case I have been copying .img files to CF cards, hopefully it works just as well for DMG's