Raspberry Pi 3 NOOBS Raspbian Setup on Mac OS

New Out Of the Box Software (NOOBS) is recommended by The Raspberry Pi Foundation and sold pre-installed on an SD card that is recommended for use by many retailers.

I used the Offline and network install but there is also a NOOBS LITE Network install only. As of 6 August 2016, this is a 1024 MB zip file that will take some time to download.

Mac OS Command-Line Method:

diskutil list
/dev/disk0 (internal, physical):
#: TYPE NAME SIZE IDENTIFIER
0: GUID_partition_scheme *500.3 GB disk0
1: EFI EFI 209.7 MB disk0s1
2: Apple_CoreStorage SSD 499.4 GB disk0s2
3: Apple_Boot Recovery HD 650.0 MB disk0s3
/dev/disk1 (internal, virtual):
#: TYPE NAME SIZE IDENTIFIER
0: Apple_HFS SSD +499.1 GB disk1
Logical Volume on disk0s2
REDACTED-DISK-INFO-THIS-WILLbeAhexID
Unlocked Encrypted
/dev/disk2 (internal, physical):
#: TYPE NAME SIZE IDENTIFIER
0: FDisk_partition_scheme *31.1 GB disk2
1: Windows_FAT_32 NO NAME 31.1 GB disk2s1

# *** BE VERY CAREFUL to choose the correct device for your SD card. ***

sudo diskutil eraseDisk FAT32 QRUQSP MBRFormat /dev/disk2
Password:
Started erase on disk2
Unmounting disk
Creating the partition map
Waiting for the disks to reappear
Formatting disk2s1 as MS-DOS (FAT32) with name QRUQSP
512 bytes per physical sector
/dev/rdisk2s1: 60713984 sectors in 1897312 FAT32 clusters (16384 bytes/cluster)
bps=512 spc=32 res=32 nft=2 mid=0xf8 spt=32 hds=255 hid=8192 drv=0x80 bsec=60743680 bspf=14823 rdcl=2 infs=1 bkbs=6
Mounting disk
Finished erase on disk2

# Check to make sure that the format worked correctly

diskutil list /dev/disk2
/dev/disk2 (internal, physical):
#: TYPE NAME SIZE IDENTIFIER
0: FDisk_partition_scheme *31.1 GB disk2
1: DOS_FAT_32 QRUQSP 31.1 GB disk2s1

# Once formatted, cd into the CD Card

cd /Volumes/QRUQSP

# Download the the NOOBS Offline and network install image.

wget downloads.raspberrypi.org/NOOBS_latest

# Unzip the image.

unzip NOOBS_latest

# If the above command fails, then try the command below to catch other variations of filenames that might result from downloading the NOOBS archive image.

unzip NOOBS*

# Eject the CD card from your Mac

cd /; /usr/bin/hdiutil unmount /Volumes/QRUQSP
hdiutil: unmount: LetIOKitSettleDown: (timed out)
"/Volumes/QRUQSP" unmounted successfully.

# Insert the SD card into the RaspBerry Pi 3
# Connect the RaspBerry Pi 3 HDMI port to a monitor or TV and connect the USB ports to keyboard and mouse in order to boot the NOOBS image.
# Then connect a power supply to the micro usb port Once HDMI, keyboard and mouse are connected.

###### Many photos taken on Samsung phone of Raspbian install.

### In Mac OS use System Preferences, "Sharing" -> "Internet Sharing" to "Share your connection from: Wi-Fi" on to share the internet from WiFi to Ethernet. This makes

# We can ssh to the raspberry once the Raspbian image is installed.

ssh pi@192.168.2.3
pi@192.168.2.3's password: raspberry

The programs included with the Debian GNU/Linux system are free software;
the exact distribution terms for each program are described in the
individual files in /usr/share/doc/*/copyright.

Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent
permitted by applicable law.
Last login: Sat Aug 6 19:51:20 2016 from 192.168.2.1
pi@raspberrypi:~ $

# Now, once we have the RaspBerry Pi configured as desired we can clone the SD card image for use by others who do not have an HDMI monitor, keyboard and mouse.

# halt the Raspberry Pi
halt

# Insert the SD card into the MacBook

# Unmount the SD card

diskutil unmountDisk /dev/disk2

# *** THE ONLY METHOD THAT WORKS? :( is to create a copy of the disk image using dd only without gzip compression

sudo dd bs=256m if=/dev/rdisk2 of=qruqsp_sd_image.dmg
115+1 records in
115+1 records out
31104958464 bytes transferred in 810.192658 secs (38392052 bytes/sec)

# NOTE: This dd only method takes about 15 minutes to copy a 32 GB SD card image.

# But without zip compression the disk image is almost as big as the SD card itself.

ls -lh qruqsp_sd_image.dmg
-rw-r--r-- 1 root staff 29G Aug 7 14:13 qruqsp_sd_image.dmg

# THIS METHOD DOES NOT APPEAR TO WORK? :( Create a copy of the disk image using dd and gzip to compress as follows:

sudo dd bs=256m if=/dev/rdisk2 | gzip > qruqsp_sd_image.gz
115+1 records in
115+1 records out
31104958464 bytes transferred in 1146.910298 secs (27120655 bytes/sec)

# This method takes about 19 minutes to copy a 32 GB SD card image and the image is compressed to 3.3G

ls -lh qruqsp_sd_image.gz
-rw-rw-r-- 1 calving staff 3.3G Aug 7 16:38 qruqsp_sd_image.gz
# THIS METHOD DOES NOT APPEAR TO WORK using dd and zip at the same time with the following syntax:

sudo dd bs=256m if=/dev/rdisk2 | zip qruqsp_sd_image.zip -
adding: -115+1 records in
115+1 records out
31104958464 bytes transferred in 1119.110072 secs (27794369 bytes/sec)
(deflated 89%)

# This method takes about 20 minutes to copy a 32 GB SD card image and the image is compressed to 3.3G

ls -lh qruqsp_sd_image.zip
-rw-rw-r-- 1 calving staff 3.3G Aug 7 14:33 qruqsp_sd_image.zip

### *** WARNING unzip belches out an error using this method. See below for errors ***

### After creating an image of the SD card it can be written to a new SD card as follows

# Unmount the SD card

diskutil unmountDisk /dev/disk2

# Format the new CD card that will receive the disk image ** Is this necessary???

sudo diskutil eraseDisk FAT32 QRUQSP MBRFormat /dev/disk2
Started erase on disk2
Unmounting disk
Creating the partition map
Waiting for the disks to reappear
Formatting disk2s1 as MS-DOS (FAT32) with name QRUQSP
512 bytes per physical sector
/dev/rdisk2s1: 60713984 sectors in 1897312 FAT32 clusters (16384 bytes/cluster)
bps=512 spc=32 res=32 nft=2 mid=0xf8 spt=32 hds=255 hid=8192 drv=0x80 bsec=60743680 bspf=14823 rdcl=2 infs=1 bkbs=6
Mounting disk
Finished erase on disk2

# Unmount the SD card again

diskutil unmountDisk /dev/disk2

# The only working method is to use dd only to write the disk image uses syntax:
sudo dd bs=256m if=qruqsp_sd_image.dmg of=/dev/rdisk2

# METHOD DOES NOT APPEAR TO WORK using dd and zip at the same time with the following syntax:

gzip -dc qruqsp_sd_image.gz | sudo dd of=/dev/rdisk2

# Copy the disk image back onto the SD card.

# The alternative method using only dd yses the syntax as follows:

sudo dd bs=256m if=qruqsp_sd_image.dmg of=/dev/rdisk2

# METHOD DOES NOT APPEAR TO WORK using dd and zip at the same time with the following syntax:

unzip -b qruqsp_sd_image.zip | sudo dd bs=256m of=/dev/rdisk2
warning [qruqsp_sd_image.zip]: 76 extra bytes at beginning or within zipfile
(attempting to process anyway)
error [qruqsp_sd_image.zip]: reported length of central directory is
-76 bytes too long (Atari STZip zipfile? J.H.Holm ZIPSPLIT 1.1
zipfile?). Compensating...

note: didn't find end-of-central-dir signature at end of central dir.
(please check that you have transferred or created the zipfile in the
appropriate BINARY mode and that you have compiled UnZip properly)
0+0 records in
0+0 records out
0 bytes transferred in 0.000013 secs (0 bytes/sec)

# Take the SD card out of the MacBook, insert it into the Raspberry Pi and boot it.

### CHALLENGE: If using the default DHCP configuration of Raspian then we have to determine the IP address of the raspberry Pi by logging into the Wi-Fi router or using tcpdump or similar because the MacBook is basically just a bridge when using Internet Sharing on Mac OS.