OSX – Imaging an SD card for use on a Raspberry Pi

My new Pi and it’s memory card arrived at the house yesterday afternoon. I got everything unboxed, downloaded the latest image from the Pi website and fired up Disk Utility on my Mac and was ready to start imaging. But it’s not quite that simple, the Disk Utility can’t verify the image as being valid, so we have to do this from the command line. But relax, it’s not hard to do.

First insert the SD card into the card reader, open a command prompt and run this command:

elmo:~ jgs$ df -h
Filesystem Size Used Avail Capacity iused ifree %iused Mounted on
/dev/disk1s1 29Gi 2.1Mi 29Gi 1% 0 0 100% /Volumes/NO NAME

You’ll end up with a lot more that what I’m showing you above, but in the interests of keeping it simple, I cropped out the extra disks and drives attached.  You’ll want to locate the SD card you plan on using either by the size of the disk or the name. Mine was new out of the box and was actually called “NO NAME” so it was easy to find.

Next fire up Disk Utility, and under the name of the SD card “unmount” any partitions that are listed, but don’t eject the media.

So we’ve identified the drive as /dev/disk1. It’s very important to make sure you have the correct disk, running the command we’re about to run has the potential to erase your entire hard disk if not used carefully. Always triple check the destination.

Once you’ve done that, go back to your terminal window and run this command – but alter it first to fit your system!!  The if (input file) parameter should point to the .img file and the of (output file) should point to the SD card.

sudo dd bs=1m if=/path/to/file/2012-12-16-wheezy-raspbian.img of=/dev/disk1

From the command line there won’t be any output while the program executes, which is slightly annoying, but there’s a way to force it to show us the progress. There are several ways to do this, depending on the OS you’re running, and sometimes these commands are not interchangeable and can kill the process. For OSX you’ll want to open a new terminal window and run this command:

sudo pkill -INFO -x dd

This will instruct the process running in the original terminal window to pause for a moment, report it’s status, and resume. You can gauge the completion percentage based on the size of the image you’re copying (mine was about 1.9 GB and took around a half hour to copy). The output will look like this:

392+0 records in
391+0 records out
409993216 bytes transferred in 335.052687 secs (1223668 bytes/sec)

And that’s pretty much it. Once it completes, eject the SD card, plug it into the Pi and have at it!

Published by

Greg Stewart

Coffee addict and Automattician @ WordPress.com. I work on the Akismet team.

Leave a reply below!

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s