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. When it asks for the desired installation mode, select Standard. Use the standard bootloader unless you have special requirements.
Before partitioning, note that the following directories will need to exist
on partitions that have enough space to hold them:
/usr/ Needs space for the ports tree and a system object tree. At least 10GB. Be sure to build with plenty of inodes (the ports tree itself uses about 200000, so be safe and build with at least a million).
/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 directory.
/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.
/scratch/ Optional, large filesystem of "scratch" space. The intent is that this filesystem provides per-project space that is not guaranteed (for the Utah Emulab this means we do not back it up to tape). If used, you would either set no quotas, or higher quotas than for /proj. Most sites probably won't want this.
/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 /users and /proj quotas). If you do not think you will ever use quotas, then you could make /users and /proj part of the same filesystem.
As mentioned, /scratch is optional. If you are not providing "guarantees" such as filesaved or RAIDed disk space and you are not using quotas, you might as well just put all of your space in /proj and not define FSDIR_SCRATCH in the definitions file.
Also 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, /share cannot.
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:
In other words, we assume the existence of /users, proj, and /share (but not /scratch).
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: