Skip to content. | Skip to navigation

Personal tools

Navigation

You are here: Home / Wiki / Mfsimport

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:

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.