Skip to content. | Skip to navigation

Personal tools


You are here: Home / Wiki / Newstuff / Mfsimport


MFS Import

MFS Import

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


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.


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.


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.


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).


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 "47" (based on FreeBSD 4.7), "62", (based on FreeBSD 6.2--you get the picture), "72", and "73". Not all versions are in any given tarball.

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):

pxeboot62/pxeboot.emu-{sio,vga} (pick one and rename to "pxeboot.emu",then copy it to /tftpboot)
frisbee73 (rename to "frisbee")
freebsd73 (rename to "freebsd")
freebsd73.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 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 XXX 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:

sudo /usr/testbed/sbin/localize_mfs /tftpboot/frisbee
sudo /usr/testbed/sbin/localize_mfs /tftpboot/freebsd
sudo /usr/testbed/sbin/localize_mfs /tftpboot/freebsd.newnode

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.