How to BFU a System
Sometimes you want to try out a new feature not yet delivered into Solaris Nevada, and you have apply binaries using BFU. I imagine if you do this all the time, you know all the tricks and gotchas. I don't do it often enough and sometimes get caught up in some details. So here are the steps I tend to use.
First, get the latest BFU package from the ON (OS/Net) Consolidation. I typically only use the SUNWonbld tar file for my hardware.
Download the bits you want to install, such as those for Crossbow Beta or Clearview's snoop on loopback
To make life a little simpler, I add the following to root's .profile file.
if [ -d /opt/onbld ]
then
FASTFS=/opt/onbld/bin/`uname -p`/fastfs ; export FASTFS
BFULD=/opt/onbld/bin/`uname -p`/bfuld ; export BFULD
GZIPBIN=/usr/bin/gzip ; export GZIPBIN
PATH=$PATH:/opt/onbld/bin
fi
Now to apply the bits. After unpacking the bits into a temporary location, lets say /tmp/bfu, install the onbld package.
# pkgadd -d onbld allI re-read my .profile, and verify that the necessary BFU variables are set
Processing package instance from
OS-Net Build Tools(sparc) 11.11,REV=2008.03.18.14.39
Copyright 2008 Sun Microsystems, Inc. All rights reserved.
Use is subject to license terms.
...
Installation of was successful.
#
# . /.profileNow apply the BFU (this one is for Crossbow beta). You must use the full pathname!
# echo $FASTFS
/opt/onbld/bin/sparc/fastfs
# bfu `pwd`/nightly-ndNote that you end up in the BFU shell. Now issue an automatic conflict resolution check.
Copying /opt/onbld/bin/bfu to /tmp/bfu.1000
Executing /tmp/bfu.1000 /tmp/bfu/nightly-nd
...
Entering post-bfu protected environment (shell: ksh).
Edit configuration files as necessary, then reboot.
bfu#
bfu# /opt/onbld/bin/acrIts time to reboot and run with the new bits!
Getting ACR information from /tmp/bfu/nightly-nd... ok
updating //platform/sun4v/boot_archive
Finished. See /tmp/acr.nhaqVi/allresults for complete log.
bfu#
bfu# exit
Exiting post-bfu protected environment. To reenter, type:
LD_NOAUXFLTR=1 LD_LIBRARY_PATH=/tmp/bfulib LD_LIBRARY_PATH_64=/tmp/bfulib/64
PATH=/tmp/bfubin /tmp/bfubin/ksh
#
Note: This article is cited from http://blogs.sun.com/stw/date/20080326.