2 # $NetBSD: binstall.sh,v 1.14 2005/12/11 12:19:08 christos Exp $
7 if [ "$VERBOSE" = "1" ]; then
15 echo " -h - display this message"
16 echo " -u - install sparc64 (UltraSPARC) boot block"
17 echo " -U - install sparc boot block"
18 echo " -b<bootprog> - second-stage boot program to install"
19 echo " -f<pathname> - path to device/file image for filesystem"
20 echo " -m<path> - Look for boot programs in <path> (default: /usr/mdec)"
21 echo " -i<progname> - Use the installboot program at <progname>"
22 echo " (default: /usr/sbin/installboot)"
23 echo " -v - verbose mode"
24 echo " -t - test mode (implies -v)"
28 echo "Usage: $0 [options] <"'"net"|"ffs"'"> <directory>"
34 echo "This script copies the boot programs to one of several"
35 echo "commonly used places."
36 echo "When installing an \"ffs\" boot program, this script also runs"
37 echo "installboot(8) which installs the default proto bootblocks into"
38 echo "the appropriate filesystem partition or filesystem image."
44 echo "This script has to be run when the kernel is in 'insecure' mode,"
45 echo "or when applying bootblocks to a file image (ala vnd)."
46 echo "The best way is to run this script in single-user mode."
50 PATH
=/bin
:/usr
/bin
:/sbin
:/usr
/sbin
52 : ${INSTALLBOOT:=/usr/sbin/installboot}
54 : ${OFWBOOTBLK:=ofwboot}
55 if [ "`sysctl -n machdep.cpu_arch`" = 9 ]; then
61 set -- `getopt "b:hf:i:m:tUuv" "$@"`
70 -u) ULTRASPARC
=1; shift ;;
71 -U) ULTRASPARC
=0; shift ;;
72 -b) BOOTPROG
=$2; OFWBOOTBLK
=$2; shift 2 ;;
73 -f) DEV
=$2; shift 2 ;;
74 -m) MDEC
=$2; shift 2 ;;
75 -i) INSTALLBOOT
=$2; shift 2 ;;
76 -t) TEST
=1; VERBOSE
=1; shift ;;
77 -v) VERBOSE
=1; shift ;;
82 if [ "`sysctl -n kern.securelevel`" -gt 0 ] && [ ! -f "$DEV" ]; then
86 DOIT
=${TEST:+echo "=>"}
95 if [ ! -d $DEST ]; then
96 echo "$DEST: not a directory"
100 if [ "$ULTRASPARC" = "1" ]; then
106 BOOTXX
=${MDEC}/bootblk
112 BOOTXX
=${MDEC}/bootxx
117 if [ "$DEV" = "" ]; then
118 # Lookup device mounted on DEST
119 DEV
=`mount | while read line; do
121 vecho "Inspecting \"$line\""
122 if [ "$2" = "on" -a "$3" = "$DEST" ]; then
126 RAW=\`echo -n "$1" |
sed -e 's;/dev/;/dev/r;'\
`
127 if [ ! -c \$RAW ]; then
134 if [ "$DEV" = "" ]; then
135 echo "Cannot find \"$DEST\" in mount table"
140 vecho Boot device
: $DEV
141 vecho Primary boot program
: $BOOTXX
142 vecho Secondary boot program
: $DEST/$targ
144 $DOIT cp -p -f ${MDEC}/${BOOTPROG} $DEST/$targ
146 vecho
${INSTALLBOOT} ${VERBOSE:+-v} -m $machine $DEV ${BOOTXX} $stage2
147 $DOIT ${INSTALLBOOT} ${VERBOSE:+-v} -m $machine $DEV ${BOOTXX} $stage2
151 vecho Network boot program
: $DEST/$boot.
${machine}.netbsd
152 $DOIT cp -p -f ${MDEC}/$netboot $DEST/$boot.
${machine}.netbsd
156 echo "$WHAT: not recognised"