Commit f1b17f60 authored by Mike Hibler's avatar Mike Hibler

Notes on how to update the two primary MFSes.

parent b94ab44c
On occasion, you may need to update the Emulab software in the disk loader
("frisbee") and admin ("freebsd") MFSes. Here is how you do that.
1. Allocate a FreeBSD 4.7 node from which to do the build/install.
Currently the MFSes are based on FreeBSD 4.7 (see note below) so you
really should do the software build and install from a 4.7 machine.
While I have encountered no problems with installing 4.10 versions
of the few Emulab binaries on to the MFS with a 4.7 kernel, it is
better to stick with all 4.7 if possible. So allocate a test node
with a 4.7 image, call it pc1 in the following.
2. Copy over the MFSes from boss:
scp /tftpboot/freebsd/boot/mfsroot pc1:/tmp/mfsroot.freebsd
scp /tftpboot/frisbee/boot/mfsroot pc1:/tmp/mfsroot.frisbee
3. Ensure you have a testbed source tree visible to the machine
(i.e., in /proj/<yourproj> or /users/<you>), say in /proj/testbed,
and configure a build tree:
mkdir /proj/testbed/tbobj
cd /proj/testbed/tbobj
/proj/testbed/tbsrc/configure
4. Now login to pc1 and update the freebsd (admin) MFS as follows:
sudo vnconfig vn0 /tmp/mfsroot.freebsd
sudo mount /dev/vn0c /mnt
setenv DESTDIR /mnt # or export DESTDIR=/mnt
sudo make mfs-install
this should update the scripts and binaries in the tree rooted at
/mnt. Unmount and unconfig it:
sudo umount /dev/vn0c
sudo vnconfig -u vn0
and scp /tmp/mfsroot.freebsd back into place on boss
(/tftpboot/freebsd/boot/mfsroot). Be sure to save the old mfsroot
off to mfsroot.bak or something first, in case anything goes wrong.
Also, remember to run the prepare script in /tftpboot/freebsd/boot
afterward!
5. Do the same for the frisbee (diskloader) MFS:
sudo vnconfig vn0 /tmp/mfsroot.frisbee
sudo mount /dev/vn0c /mnt
setenv DESTDIR /mnt # or export DESTDIR=/mnt
sudo make frisbee-mfs-install
Note the make target is different! This install is different than
that for the other MFS for historical reasons. Unmount and unconfig it:
sudo umount /dev/vn0c
sudo vnconfig -u vn0
and scp it back into place on boss. Again, remember to save the
old MFS and run the prepare script in /tftpboot/frisbee/boot.
6. Make sure the new versions work. You can just use the node you
allocated for updating to test it. For frisbee do this from boss:
os_load pc1
This will of course clobber the disk on pc1, so don't do it if you
were using the node for something else! Make sure the disk load
runs correctly by watching the console. To test the freebsd MFS do:
node_admin on pc1
which will force it to reboot into the admin MFS. Make sure the
node comes up. You should be able to ssh into it (or login on the
console).
7. All done! If there are any problems, copy back the saved mfsroot
file (and rerun prepare) and contact testbed-ops@emulab.net for
help.
Note about FreeBSD 4.10 and the MFSes:
I tried updating them to FreeBSD 4.10 but encountered occasional data
corruption on machines with older IDE chipsets (specifically, the
venerable Intel BX chipset). The problem would manifest itself as
machines that wouldn't boot or that had filesystem problems, shortly
after loading their disks with a FreeBSD 4.10 frisbee MFS. Machines
with newer chipsets had no such problems. Lacking the time to chase
after this, I stuck with 4.7 instead.
I have not seen this problem with limited testing on a FreeBSD 5.3
based MFS, which is where I hope to move RSN.
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment