Up to now I have used win32Diskimager.exe in a windows VM to program images onto SDCards for the Raspberry Pi. For some reason having not done this for a while it has stopped working for me, so I decided to program using OSX directly.
Downloading
Firstly I downloaded and unzipped the raspbian image in my Downloads folder, the image I downloaded and unzipped contained 2016-02-09-raspbian-jessie.img.
In the terminal on the mac
cd ~/Downloads
ls -l *.img
this showed
–rwx—— 1 davidcozens staff 4127195136 20 Feb 13:11 2016-02-09-raspbian-jessie.img
Programming the SDCard
I inserted the SDCard into a USB card reader (The internal reader on my MBP didn’t recognise the card), then to identify which device OSX had mounted this as
diskutil list
The output looked like
/dev/disk0 (internal, physical):
#: TYPE NAME SIZE IDENTIFIER
0: GUID_partition_scheme *1.0 TB disk0
1: EFI EFI 209.7 MB disk0s1
2: Apple_CoreStorage Macintosh HD 999.7 GB disk0s2
3: Apple_Boot Recovery HD 650.1 MB disk0s3
/dev/disk1 (internal, virtual):
#: TYPE NAME SIZE IDENTIFIER
0: Apple_HFS Macintosh HD +999.3 GB disk1
Logical Volume on disk0s2
A8176DD4-96DB-4F64-B013-EAA7D075A63B
Unencrypted
/dev/disk2 (external, physical):
#: TYPE NAME SIZE IDENTIFIER
0: FDisk_partition_scheme *8.0 GB disk2
1: Windows_FAT_32 boot 62.9 MB disk2s1
2: Linux 4.1 GB disk2s2
/dev/disk3 (disk image):
#: TYPE NAME SIZE IDENTIFIER
0: GUID_partition_scheme +1.6 TB disk3
1: EFI EFI 209.7 MB disk3s1
2: Apple_HFS Time Machine Backups 1.6 TB disk3s2
/dev/disk6 (external, physical):
#: TYPE NAME SIZE IDENTIFIER
0: *613.9 KB disk6
Now BE VERY CAREFUL to identify the device corresponding to the SDCard. Using the wrong device name in the commands below could erase all of the data on your MAC. Look for the size that matches your SDCard. In my case /dev/disk2 is the SDCard, disk0 and disk1 are the internal HD on my MAC and disk6 is may backup device.
In the commands below I use /dev/diskx to represent the SDCard device name.
Unmount the SDCard
diskutil unmountDisk /dev/diskx
zero out the partition table
sudo dd if=/dev/zero of=/dev/rdiskx bs=1024 count=1
Program the SDcard
sudo dd if=2016-02-09-raspbian-jessie.img of=/dev/rdiskx bs=4m
ensure all data is synced
sync
You should now be safe to remove and use the SDCard.
NOTE: The original post used dd to write to a disk device (/dev/diskx) it is MUCH faster when writing to use the raw disk (/dev/rdiskx). The example has been updated.