NOTE: Before proceeding, ensure that the machine you will use as your ops server is properly connected to your network and that all of the required software is available either through the network or some other media.
Boot the FreeBSD installation CD on the machine you will use as your ops server. You will want to do an "Install" and then select your keymap and hostname. When it asks about optional components, only select "lib32" and "src", you do not want "ports" since you will be loading pre-built packages from Emulab.
When it asks about partitioning the disk, choose "Auto (UFS)". It will identify all the disks on the machine and ask which you want to install FreeBSD on. Select the first disk and "Entire Disk". Proceed with the remainder of the install.
Before partitioning, note that the following directories will need to exist on partitions that have enough space to hold them:
/usr/testbed/ Needs space for testbed software and logs. Several (3-4) GB should be enough.
/users/ Needs space for user home directories. The amount of space required depends on how many users you expect to have. Generally, though, we suggest that users store large files related to their projects in the
/proj/ Needs space for project files. We recommend that this be larger than
/users, to encourage people to store files here, which aids per-project accountability.
/groups/ Needs enough space for files shared by the sub-groups of projects. These are primarily used by classes, if any.
/share/ Exported read-only to all nodes. We use it for providing experimenters with the source for the FreeBSD and Linux versions we run as well as common packages and RPMs. This could require anything from 1GB to 20GB+ depending on what you want to make available.
You may want to enforce quotas on the user-writable filesystems. This is the main reason you'd want to keep them in separate filesystems (i.e., so people can have different
/proj quotas). If you do not think you will ever use quotas, then you could make
/proj part of the same filesystem.
Note that since
/share is exported read-only, FreeBSD requires that it be on a separate filesystem from anything that is exported read-write. So while
/users, /proj and
/groups can be on the same filesystem,
Make sure that no matter how you decide to partition things up, you make symbolic links to the appropriate places. For example, if you make one big filesystem called
/z that has
/users, /proj, and
/groups in it, make sure you:
ln -s /z/users /users ln -s /z/proj /proj ln -s /z/groups /groups ...
In other words, we assume the existence of
/users, proj, and
When prompted, continue by selecting the 'Developer' distribution set - this will install full sources. When it asks if you want to install the ports collection, answer no. Do not install any packages at this time. You will get a chance to do so later.
Near the end of the installation, you will be asked if you wish to install or configure several optional items. Apart from setting the hostname, configuring your network devices, enabling SSH logins (if desired), and setting your time zone and root password, you should skip additional configuration.
Do not create any user accounts yet, and just log in as root for the time being. Our software will create user accounts later, once you get boss set up correctly. If you already created any users, delete them with the "pw" command and make sure their home directories are removed as well!
After exiting the sysinstall tool and rebooting, you should login as root and run freebsd-update to pick up security patches:
freebsd-update fetch freebsd-update install