Writing the binary image to the media
This step can be a bit tricky.

You could netboot (with PXE) your target computer with the CF card installed and copy everything over the network, but preparing a network bootable system for this purpose isn't quite simple, either. While you are perfecting your miniBSD image though, it may well be worth the effort of setting up a network bootable system so you don't have to physically juggle the CF card from computer to computer. I have an NFS Root Guide that explains how to do this with FreeBSD 6.x (I also have an NFS Root Guide that explains how to do this with Debian Linux.)

If you have a Soekris net4826, network booting is the only option since the flash memory is physically integrated onto the motherboard. If you have a Soekris board where the CF card can be removed, it is probably still easier to setup a network bootable system because the CF card sits in the slot so flush that it is somewhat difficult to remove. Normally, that's not an issue. But if you are working on an image and removing the card several times per hour, you'll soon find that it's easier to just boot the Soekris box via the network and flash the image that way.

Network booting aside, you'll need some kind of adapter in order to connect your CF card to your FreeBSD Host Machine. If your FreeBSD Host Machine is a notebook, you can use a CF -> PCMCIA adapter (enable pccardd and you'll see the card as an ATAPI device, like for example ad8) or a CF -> IDE adapter if it's a desktop machine. Either way, you'll end up with an ad[n] device that represents the CF card (it behaves like an IDE hard disk).

We can now simply transfer the disk image block-by-block onto our flash card. Type the following:

dd if=/usr/minibsd-disk.bin of=/dev/ad[n] bs=8k

(WARNING: Make sure you get the value for [n] right in this command or you might erase your hard disk!)

If you compressed your image, pipe dd through gzcat by typing the following:

gzcat /usr/minibsd-disk.bin.gz | dd of=/dev/ad[n] bs=8k


cat /usr/minibsd-disk.bin.gz | gunzip | dd of=/dev/ad[n] bs=8k

If you want to see the progress, type Ctrl-T.

Once the write has completed, you are ready to try out your new miniBSD system!

I love to get feedback from people who have read my guides. So please, drop me a line and let me know if there's anything I can do to improve the guide.