|
|
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](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):
|
|
|
```
|
|
|
boss> cd /tftpboot
|
|
|
boss> sudo mv pxeboot72/pxeboot.emu-{sio,vga} pxeboot.emu
|
|
|
boss> sudo mv frisbee82 frisbee
|
|
|
boss> sudo mv freebsd82 freebsd
|
|
|
boss> sudo mv freebsd82.newnode freebsd.newnode
|
|
|
```
|
|
|
|
|
|
For the `pxeboot.emu` file, you should pick either the 'sio' variant, or
|
|
|
the 'vga' variant, then rename it to `pxeboot.emu`.
|
|
|
|
|
|
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](#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,
|
|
|
or the *emulab-devel* repository.
|
|
|
|
|
|
### Easy Method
|
|
|
|
|
|
Recent version of Emulab provide a script to handle all of the localization
|
|
|
and preparation:
|
|
|
```
|
|
|
boss> sudo /usr/testbed/sbin/localize_mfs /tftpboot/frisbee
|
|
|
boss> sudo /usr/testbed/sbin/localize_mfs /tftpboot/freebsd
|
|
|
boss> 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. |