The objectives for the first day are:

  • Learn the release location and naming/numbering scheme used by FreeBSD, OpenBSD, DragonflyBSD, and NetBSD.
  • Download the latest release install ISOs for each operating system.
  • Practice installing each operating system to real hardware or a virtual machine to gain familiarity with the different installers.
  • End with working installations of each operating system to use for further practice.

These objectives may be simple, but they are important.  The result of today's lab will form the basis of all future labs, so it deserves some time.  It will also take some time to download the four install images.




FreeBSD has a helpful release engineering (RELENG) page:  http://www.freebsd.org/releng/

There are different branches for each major, minor, and development versions.  The important concepts here are the differences between a RELEASE, STABLE, and CURRENT.  Briefly, CURRENT is the unstable, cutting-edge development branch that should usually not be used in production.  STABLE is the active development branch associated with the current official release.  STABLE is suitable for production environments that want the most up-to-date features, bugfixes, and security fixes.  Every now and then, a STABLE snapshot becomes a minor RELEASE.  A RELEASE is immutable except for security updates.

Know that the latest release is 8.1 and that 9.0 is being worked on in -CURRENT.

More information here.


NetBSD has a page on formal releases here: http://www.netbsd.org/releases/formal.html

NetBSD also has a -CURRENT branch with the latest unstable development code.  Formal Releases are intended for production use and are updated with security and bug fixes.  Both release 4 and release 5 are currently supported, with the latest release being NetBSD-5.0.2.


OpenBSD also has -STABLE and -CURRENT branches (http://www.openbsd.org/stable.html and http://www.openbsd.org/faq/current.html)

As usual, CURRENT is unsuitable for production and STABLE tracks the latest features and fixes.  The latest release of OpenBSD is 4.7, with 4.8 coming out in a matter of weeks.


DragonflyBSD has -DEVELOPMENT and -RELEASE branches which are similar to CURRENT and STABLE in other BSD operating systems.  The current release is DragonflyBSD-2.6.3


Obtaining Installation Images


Read the announcement page for the latest release: http://www.freebsd.org/releases/8.1R/announce.html  Pay attention to the availability section which describes the various downloadable images.  The DVD and memstick images are the most complete.  The livefs image is only useful for repairs, not for installation.  The bootonly image supports network installations and the disc1 cd image contains enough to install a release but has no binary packages.  I'm going to get the i386 DVD image for my development environment: http://www.freebsd.org/where.html


We can follow the download links right off the main page to an FTP ISO mirror.  Remembering that the latest release is 5.0.2, there are countless files listed on the FTP site: 2 for every architecture supported.  I'm going to get the i386cd-5.0.2.iso image.


OpenBSD has boot-only ISOs for network installs and full-install CD ISO images for networkless installs.  The only way to get the precompiled binaries is to order the official CD set.  I'm going to download the install47.iso image from the /pub/OpenBSD/4.7/i386/ directory of a mirror.


DragonflyBSD make it very easy to choose a download.  I'm going to get the i386 CD file from http://www.dragonflybsd.org/download/ and then extract dfly-i386-2.6.3_REL.iso from it.


Setting up a virtual environment

I don't want to mess with a quad-boot system, four real computers, or swapping 4 drives in and out of a single computer.  I'm going to save myself a little time and space by creating 4 separate virtual machines in VirtualBox.  I'm not going to cover the details of that here.  There must be a dozen how-to's that cover this topic thoroughly already. 

The only thing I will point out with VirtualBox is how to overcome certain bugs:

You may experience kernel panics with installing FreeBSD.  If so, change your virtual hard drive controller from IDE to SATA and the problems will go away.

VirtualBox and OpenBSD do not get along well.  Try changing the OS Type in VirtualBox to "FreeBSD" when installing OpenBSD.  The segfaults tend to go away once you get the OS installed.

VirtualBox just HATES NetBSD.  To get it to run without crashing, manually start the VM with a syntax like this: 
$ VBoxSDL –nopatm –startvm <name of your vm>

Use "FreeBSD" as the OS Type for DragonflyBSD.  At the installer boot menu, choose option 6:  Boot DragonFly Without AHCI Driver.


Installing FreeBSD

FreeBSD uses a text menu-based installer called sysinstall.  Follow the installation guide in the handbook: http://www.freebsd.org/doc/handbook/install-start.html  Be sure to click the "Next" links on the handbook website and read the extensive pages documenting the various menu sections of sysinstall.  Don't skip the post-install section, these steps are relevant to the BSDA exam as well.

Installing NetBSD

NetBSD uses a test menu-based installer called sysinst.  It sounds similar to FreeBSD's sysinstall, but it is more basic.  Follow the example installation here: http://www.netbsd.org/docs/guide/en/chap-exinst.html

Installing OpenBSD

This will be the most manual installation since there are no menus or abstractions of fdisk and disklabel.  Your guide is here: http://www.openbsd.org/faq/faq4.html.  Take note of the following quote from the wiki:

A BSDA candidate should be familiar with the different installation methods, the options presented once the installer is started (Install/Upgrade/Shell), and setting up disks using fdisk(8) and disklabel(8). The candidate should also know the different installation sets to be installed and what each one adds to the system, how to merge changes in case of update. After the first reboot the BSDA applicant should be able to add and delete users and groups, to add and remove packages and to secure the system. These points will be discussed in greater depth later in the book.

We'll learn the user and package management another day.  For now, let's just focus on getting all the operating systems installed and get comfortable with the different installers.

Installing DragonflyBSD

DragonflyBSD uses the BSD Installer.  It's a fairly simple and lightweight text menu-based installer.  Follow the short instructions here: http://www.dragonflybsd.org/docs/newhandbook/Installation/ and you should be done in no time.


Wrapping up

Although "Install four operating systems" sounds like simple task to devote a whole day to, there's actually quite a lot of ground to cover.  Spend some time on each BSD's home page and try to remember what the current stable version is for each operating system.  It wouldn't hurt to practice navigating to the correct download location for each release ISO a couple of times, too.

I don't think it's enough to simply get each of these operating systems installed once and then move on.  I would run through the full process of booting the install media and installing each OS several times until it starts to feel like second nature.  I don't know about you, but my personal objective is to really understand what I'm doing and feel comfortable should I ever have to do this again in the future.  The whole point of the BSD certs is to demonstrate real, practical knowledge and not to braindump in the style of bootcamp training.