FreeNAS Part 1 - bootable USB Stick

As time goes on, storage needs grow.

My RAID-1 IcyBox with 3GB was filling up fast, with less than half a TB left. NAS storage was maxed out (okay, its an older Synology 207+ with 2x 1TB, so nothing to brag about). Something bigger needed to be put together.

As I’m also using a single-drive Synology NAS (DS110J) for Email storage, SMTP and Surveillance Station, I know what Synology’s current NAS OS 4.3 can do (and can’t) - really, it is quite good, even though it has some issues with Jave and uses Flash (of all things) in its GUI.

Needless to say, I find the cost of a four-drive Synology NAS (or any other reputable manufacturer, for that matter) almost prohibitive, considering what you’re getting. By chance, I happened across several blog posts describing
FreeNAS being implemented on an HP ProLiant Microserver. Surprisingly, you can get the current model (N54L) of that server for under 200€ on Amazon!

Since I’d done tests with FreeNAS,
OpenMediaVault and NAS4Free in respective VM’s, I’d come to the conclusion that FreeNAS would be the way to go for my needs. It is based on FreeBSD and offers extremely simple boot from a USB stick image.

In this first part of a series of blog entries on FreeNAS, I’ll detail my first experiences with getting the software to boot from a USB stick.

1. Installation on bootable USB stick

Getting that image onto a stick and getting it to boot proved to be trickier than I expected. Reading several posts on the subject, the procedure that ended up working was as follows:

1) Extract run-time image from installation package

Download the IMG file for the installation package from
here (make sure you choose the “Current Stable Release” on the right side).

There is an IMG inside the IMG used for a stick-based (or CD-based) installation that is the actual run-time image of FreeNAS. I.e.: open the IMG used for installation (which on a Mac is very easy) and copy the file FreeNAS-x64.img.xz to someplace where you’ll find it easily (i.e. the Desktop). The XZ format is a compression type used, for example, by

Then, pop the USB stick you want to install on (at least 2GB in size) into a port and open Terminal. First, you need to find out which disk device connects to the USB stick:

diskutil list

this should list the USB stick in a format similar to this (this is from my system, your device will be different).

0: Untitled *4.1 GB disk3

Next, you’ll want to unmount the stick (don’t eject it!) using the Terminal so that it becomes overwriteable:

diskutil unmountDisk /dev/disk3

Again, your device name may be different.

Lastly, you’ll write the runtime image onto the stick using the dd command:

sudo dd if=path_to_img of=/dev/disk3 bs=64k

Getting the path to the IMG file right is really simple on the Mac: just type in “sudo dd if=“ and then drag and drop the IMG file onto the Terminal window; Terminal will enter the path correctly. The bs qualifier indicates the blocksize to use for the copy. You’ll have to enter the password of an administrator account to run the command.

Copying everything over will take quite awhile; we’re talking over 220 MB after all (and the usual slowness of a USB stick in writing), so don’t be discouraged if, after an hour, the command still hasn’t finished.

Now you can pull the USB stick and pop it into the ProLiant’s internal USB port (on the N54L it is at the bottom left when you open the drive bay door).