This isn’t hard, but I have to look up the arguments to diskutil(8)
often
enough and it’s never the first hit on https://www.duckduckgo.com (note to
self, this content really should end up in the handbook:
https://www.freebsd.org/doc/en_US.ISO8859-1/books/handbook/install-pre.html#idp60052432)
Obtain a copy of the memstick
Download a copy of the installation media: ftp://ftp.freebsd.org/pub/FreeBSD/snapshots/ISO-IMAGES/11.0/
For today I’m using ftp://ftp.freebsd.org/pub/FreeBSD/snapshots/ISO-IMAGES/11.0/FreeBSD-11.0-CURRENT-amd64-20150618-r284544-memstick.img.xz and its checksum file (based on the date and the subversion commit version
11.0-CURRENT-amd64-20150618-r284544
): ftp://ftp.freebsd.org/pub/FreeBSD/snapshots/ISO-IMAGES/11.0/CHECKSUM.MD5-FreeBSD-11.0-CURRENT-amd64-20150618-r284544NOTE: Always download the checksum file and verify. While the download is happening you can skip down to step 4.
Unzip the image:
% unxz -kf FreeBSD-11.0-CURRENT-amd64-20150618-r284544-memstick.img.xz
Verify the checksum:
% grep memstick CHECKSUM.MD5-FreeBSD-11.0-CURRENT-amd64-20150618-r284544 MD5 (FreeBSD-11.0-CURRENT-amd64-20150618-r284544-memstick.img) = e87a89c493236da86a1bf785bd7e76f4 MD5 (FreeBSD-11.0-CURRENT-amd64-20150618-r284544-memstick.img.xz) = 811e3c6a3cfe99d8e2da9fb8ab8714c6 MD5 (FreeBSD-11.0-CURRENT-amd64-20150618-r284544-mini-memstick.img) = 93b95aae56a9677359c527dff40b061e MD5 (FreeBSD-11.0-CURRENT-amd64-20150618-r284544-mini-memstick.img.xz) = 3ef36e7bded305a7de2b42e1e4e5502c % md5 FreeBSD-11.0-CURRENT-amd64-20150618-r284544-memstick.img* MD5 (FreeBSD-11.0-CURRENT-amd64-20150618-r284544-memstick.img) = e87a89c493236da86a1bf785bd7e76f4 MD5 (FreeBSD-11.0-CURRENT-amd64-20150618-r284544-memstick.img.xz) = 811e3c6a3cfe99d8e2da9fb8ab8714c6
In this case, yup, the MD5s match. If you downloaded the SHA256 checksum
(which is superior to MD5) but don’t have a dedicated CLI utility, use
openssl(1)
’s dgst
mode:
```shell
% openssl dgst -sha256 FreeBSD-11.0-CURRENT-amd64-20150722-r285794-memstick.img
SHA256(FreeBSD-11.0-CURRENT-amd64-20150722-r285794-memstick.img)= 59e89f44a2d7588a31408a811e95aa3825028478f0af9c15fd16db8a53243e87
% grep memstick CHECKSUM.SHA256-FreeBSD-11.0-CURRENT-amd64-20150722-r285794
SHA256 (FreeBSD-11.0-CURRENT-amd64-20150722-r285794-memstick.img) = 59e89f44a2d7588a31408a811e95aa3825028478f0af9c15fd16db8a53243e87
SHA256 (FreeBSD-11.0-CURRENT-amd64-20150722-r285794-memstick.img.xz) = 61031aab2eb0473ec21650dda70452a5ebc8b4e29bb587b9c765900c6e96c0d2
SHA256 (FreeBSD-11.0-CURRENT-amd64-20150722-r285794-mini-memstick.img) = db9a92668b32cb2e7e6c2a7e70a8f51b58449fe9d30b4fcddc81aa7e217b61be
SHA256 (FreeBSD-11.0-CURRENT-amd64-20150722-r285794-mini-memstick.img.xz) = f92f4a65f008017718405719a87f427125d3df5227dfa967c542b484a8a1e2c3
```
Figure out the USB Device Name
Open
Disk Utility
:% open '/Applications/Utilities/Disk Utility.app'
Obtain the disk name by selecting the USB device and pushing
⌘i
:Record the name of the disk found in the row labeled
Disk Identifier
.NOTE: this could be discovered using
diskutil list
but I want to make sure no one selects the wrong disk. It’s my experience that USB ports on the left of MacBook Pro laptops aredisk3
and the USB port on the right of the laptop isdisk4
, but double check. This is a destructive operation (i.e. “measure twice, cut once”).
Overwrite the USB memstick
Unmount the USB disk using the value found in the previous step (i.e.
/dev/disk4
):% sudo diskutil unmountDisk /dev/disk4 Unmount of all volumes on disk4 was successful
Write out the disk image to the USB device:
% sudo dd if=FreeBSD-11.0-CURRENT-amd64-20150618-r284544-memstick.img of=/dev/disk4 bs=1m conv=sync 717+1 records in 718+0 records out 752877568 bytes transferred in 313.225319 secs (2403629 bytes/sec)
Eject the USB disk:
% sudo diskutil eject /dev/disk4 Disk /dev/disk4 ejected
Profit.