Mfsimport

MFS Import

MFS Import

To import a new version of the Emulab MFSs, first go to the Emulab
website and download an MFS tarball. Unless you have been pointed to
a specific tarball by Emulab staff, you should download the
current stable MFS tarball, which can always be
found at http://www.emulab.net/downloads/tftpboot-latest.tar.gz.

Note: if you are in the middle of installing a new Emulab, your
MFSs have already been setup for you by the installation script. This
page contains instructions for updating your MFSs, should you ever
need to do that

The MFS tarball that you downloaded has a number of directories:

freebsd*

Kernel/MFS for a PXE-booted memory-based FreeBSD system.
We use this MFS for creating disk images and general maintenance
tasks on a node (e.g., when the node's disk is scrogged).
The MFS contains a pretty small set of utilities.

frisbee*

Kernel/MFS for a PXE-booted memory-based FreeBSD system.
This MFS is considerably smaller than the "freebsd" one.
It is used to reload node disks with frisbee. Since it may be loaded
simultaneously by many nodes to reload their disks, we wanted
this to be as small as possible. Not intended as an interactive
environment--in particular there is no sshd running--its rc.local script
invokes frisbee and then reboots.

freebsd*.newnode

Kernel/MFS for a PXE-booted memory-based FreeBSD system.
A specialized version of the freebsd MFS for loading on nodes
which are not yet part of Emulab. Has a generic kernel and specialized
scripts for figuring out the network connections, etc.

pxeboot*/pxeboot.emu-{sio,vga,null}

This is a specialized version of the FreeBSD boot loader.
In each of these directories, there are three versions of the boot loader:
serial-line (-sio), VGA (-vga), and null (-null) console versions
of our standard PXE-booted startup. Whichever you choose should
be renamed as /tftpboot/pxeboot.emu (or whatever your boss dhcpd.conf
file says).

Installation

First unpack the tarball into /tftpboot. If you are updating
your MFSs, then be sure to save off the old versions.

Next, you have to choose which version of the various MFSes to use. Naming
is based on which version of FreeBSD they are derived from. In the
tarball, there are one or more of "62" (based on FreeBSD 6.2),
"72" (based on FreeBSD 7.2--you get the picture), and "82".

As a general rule of thumb, try the most recent version first as it will have
the most support for recent hardware. Only try the older versions if you
issues with newer versions. If the latest version doesn't support your NIC
or disk, then contact us. There is no point trying an older version in this
case.

For the pxeboot boot loader, there are fewer issues related to recent hardware
since it uses the machine BIOS for IO. But still, use the most recent version
in the tarball.

In summary, we recommend (for the latest tarball):

pxeboot72/pxeboot.emu-{sio,vga} (pick one and rename to "pxeboot.emu",then copy it to /tftpboot)
frisbee82 (rename to "frisbee")
freebsd82 (rename to "freebsd")
freebsd82.newnode (rename to "freebsd.newnode")

After choosing your MFSes, you should have three generic MFSes (frisbee,
freebsd, freebsd.newnode). The three MFSes unloaded are "generic" in the
sense that they don't have any of your (or our) Emulab keys or passwords.
Now proceed to localization in the next section.

Localization

Localization is the process of adding your site's ssh keys and
password, timezone info, etc., to each of the MFSs. If your testbed is
running at least the stable-20120409 tag of the
emulab-stable repository, this is really easy. If
not, skip to the secondary method below.

Easy Method

Recent version of Emulab provide a script to handle all of the localization
and preparation. For each of the three MFS (frisbee, freebsd,
freebsd.newnode), you will want to this on boss:

Slow Method

For each of the three MFS (frisbee, freebsd, freebsd.newnode), you will
want to go the corresponding directory in /tftpboot, look at the
README file. Follow the instructions. The most important thing is that once
you are finished going through the instructions in the README, that you run
the prepare script in of the MFS directories.

Trouble Spots

If you don't have VGA or serial lines, and it appears that nodes are not
booting, try using pxeboot.emu-null which gives you a non-interactive version
of the boot loader. Some sites have had problems with "phantom" serial line
input from a non-existent serial line causing the -sio version of the boot
loader to drop into interactive mode. Make sure you replace the loader.conf
file in the three subdirectories with the -null version as well.