diff options
author | Theo de Raadt <deraadt@cvs.openbsd.org> | 1996-09-05 21:27:39 +0000 |
---|---|---|
committer | Theo de Raadt <deraadt@cvs.openbsd.org> | 1996-09-05 21:27:39 +0000 |
commit | 59436c90b065edbbd368ed8679d5be33153d4fcc (patch) | |
tree | 2b6543cda0aa334b4d05e91f21b85211da5ffde5 /distrib/arm32/floppies | |
parent | ff0f2a750cbaf08bb2ec918bdabe6ad55177f066 (diff) |
sync to netbsd
Diffstat (limited to 'distrib/arm32/floppies')
24 files changed, 2747 insertions, 0 deletions
diff --git a/distrib/arm32/floppies/Makefile b/distrib/arm32/floppies/Makefile new file mode 100644 index 00000000000..59f797e5089 --- /dev/null +++ b/distrib/arm32/floppies/Makefile @@ -0,0 +1,5 @@ +# $NetBSD: Makefile,v 1.1 1996/05/16 19:58:49 mark Exp $ + +SUBDIR= inst upgr + +.include <bsd.subdir.mk> diff --git a/distrib/arm32/floppies/Makefile.inc b/distrib/arm32/floppies/Makefile.inc new file mode 100644 index 00000000000..8d7cd5bf352 --- /dev/null +++ b/distrib/arm32/floppies/Makefile.inc @@ -0,0 +1,5 @@ +# $NetBSD: Makefile.inc,v 1.1 1996/05/16 19:58:50 mark Exp $ + +# Revision is 1.1 +# all these private copies of the version number really lose. +REV= 11 diff --git a/distrib/arm32/floppies/inst-common/Makefile.inc b/distrib/arm32/floppies/inst-common/Makefile.inc new file mode 100644 index 00000000000..cbde1681f24 --- /dev/null +++ b/distrib/arm32/floppies/inst-common/Makefile.inc @@ -0,0 +1,49 @@ +# $NetBSD: Makefile.inc,v 1.1 1996/05/16 19:59:03 mark Exp $ + +# TOP is assumed to be defined by Makefile including this one. + +CBIN= instbin +COMMONDIR= ${TOP}/inst-common + +MOUNT_POINT?= /mnt +VND?= vnd0 +VND_DEV= /dev/${VND}a +VND_RDEV= /dev/r${VND}a +IMAGE?= xxx-${REV}.fs +MDEC= ${DESTDIR}/usr/mdec + +LISTS= ${COMMONDIR}/list ${.CURDIR}/list +CRUNCHCONF= ${COMMONDIR}/${CBIN}.conf +MTREE= ${COMMONDIR}/mtree.conf + +all: ${CBIN} + dd if=/dev/zero of=${IMAGE} bs=144k count=10 + vnconfig -v -c ${VND_DEV} ${IMAGE} + newfs -O -m 0 -o space -i 5120 -c 80 ${VND_RDEV} floppy + mount ${VND_DEV} ${MOUNT_POINT} + mtree -def ${MTREE} -p ${MOUNT_POINT}/ -u + TOPDIR=${TOP} CURDIR=${.CURDIR} OBJDIR=${.OBJDIR} \ + TARGDIR=${MOUNT_POINT} sh ${TOP}/runlist.sh ${LISTS} + @echo "" + @df -i ${MOUNT_POINT} + @echo "" + umount ${MOUNT_POINT} + vnconfig -u ${VND_DEV} + cat /*bin/* > /dev/null + +unconfig: + -umount -f ${MOUNT_POINT} + -vnconfig -u ${VND_DEV} + -/bin/rm -f ${IMAGE} + +${CBIN}.mk ${CBIN}.cache ${CBIN}.c: ${CRUNCHCONF} + crunchgen -D ${TOP}/../../.. -L ${DESTDIR}/usr/lib ${CRUNCHCONF} + +${CBIN}: ${CBIN}.mk ${CBIN}.cache ${CBIN}.c + make -f ${CBIN}.mk all + +clean cleandir: + /bin/rm -f core ${IMAGE} ${CBIN} ${CBIN}.mk ${CBIN}.cache *.o *.lo *.c + +.include <bsd.obj.mk> +.include <bsd.subdir.mk> diff --git a/distrib/arm32/floppies/inst-common/dot.commonutils b/distrib/arm32/floppies/inst-common/dot.commonutils new file mode 100644 index 00000000000..cec4d110b7e --- /dev/null +++ b/distrib/arm32/floppies/inst-common/dot.commonutils @@ -0,0 +1,133 @@ +# $NetBSD: dot.commonutils,v 1.1 1996/05/16 19:59:04 mark Exp $ +# +# Copyright (c) 1994 Christopher G. Demetriou +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions +# are met: +# 1. Redistributions of source code must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# 2. Redistributions in binary form must reproduce the above copyright +# notice, this list of conditions and the following disclaimer in the +# documentation and/or other materials provided with the distribution. +# 3. All advertising materials mentioning features or use of this software +# must display the following acknowledgement: +# This product includes software developed by Christopher G. Demetriou. +# 4. The name of the author may not be used to endorse or promote products +# derived from this software without specific prior written permission +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR +# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES +# OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. +# IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, +# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT +# NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF +# THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +# + +# Installation utilites (functions), to get NetBSD installed on +# the hard disk. These are meant to be invoked from the shell prompt, +# by people installing NetBSD. + +# we know that /etc/fstab is only generated on the hard drive +dest_dir=/ +if [ ! -f /etc/fstab ]; then + dest_dir=/mnt/ +fi + +# counter for possible shared library confusion +TAR=/usr/bin/tar +GUNZIP=/usr/bin/gunzip + +Set_tmp_dir() +{ + def_tmp_dir=`pwd` + if [ "$def_tmp_dir" = "/" -o "$def_tmp_dir" = "/mnt" ]; then + def_tmp_dir="$dest_dir"usr/distrib + fi + + echo -n "What directory should be used to find and/or store " + echo "installtion" + echo -n "files? [$def_tmp_dir] " + read tmp_dir + if [ "$tmp_dir" = "" ]; then + tmp_dir=$def_tmp_dir + fi + if [ ! -d "$tmp_dir" ]; then + /bin/rm -rf $tmp_dir + mkdir -p $tmp_dir + fi +} + +Tmp_dir() +{ + if [ "$tmp_dir" = "" ]; then + Set_tmp_dir + fi + cd $tmp_dir +} + +Load_fd() +{ + Tmp_dir + which= + echo "Don't forget that you can't load from the drive you booted from." + echo "unless you booted with a ramdisk." + echo "" + + while [ "$which" != "0" -a "$which" != "1" ]; do + echo -n "Read from which floppy drive ('0' or '1')? [0] " + read which + if [ "X$which" = "X" ]; then + which=0 + fi + done + echo "" + echo "WARNING: during the floppy loading process, you should only" + echo "use Control-C at the prompt." + echo "" + while echo -n \ + "Insert floppy (hit Control-C to terminate, enter to load): " + do + read foo + mount -t msdos /dev/fd${which}a /mnt2 + cp -rp /mnt2/* . + umount /mnt2 + done +} + +Load_tape() +{ + Tmp_dir + echo -n "Which tape drive will you be using? [rst0] " + read which + if [ "X$which" = "X" ]; then + which=rst0 + fi + echo -n "Insert the tape into the tape drive and hit return to " + echo -n "continue..." + read foo + echo "Extracting files from the tape..." + $TAR xvpf --unlink /dev/$which + echo "Done." +} + +Extract() +{ + Tmp_dir + echo -n "Would you like to list the files as they're extracted? [n] " + read verbose + case $verbose in + y*|Y*) + tarverbose=v + ;; + *) + tarverbose= + ;; + esac + cat "$1"* | $GUNZIP | (cd $dest_dir ; $TAR --unlink -xp"$tarverbose"f - ) +} diff --git a/distrib/arm32/floppies/inst-common/inst.sh b/distrib/arm32/floppies/inst-common/inst.sh new file mode 100644 index 00000000000..619dc4d49f7 --- /dev/null +++ b/distrib/arm32/floppies/inst-common/inst.sh @@ -0,0 +1,953 @@ +#!/bin/sh +# +# $NetBSD: inst.sh,v 1.1 1996/05/16 19:59:05 mark Exp $ +# +# Copyright (c) 1995-1996 Mark Brinicombe +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions +# are met: +# 1. Redistributions of source code must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# 2. Redistributions in binary form must reproduce the above copyright +# notice, this list of conditions and the following disclaimer in the +# documentation and/or other materials provided with the distribution. +# 3. All advertising materials mentioning features or use of this software +# must display the following acknowledgement: +# This product includes software developed by Mark Brinicombe. +# 4. The name of the author may not be used to endorse or promote products +# derived from this software without specific prior written permission +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR +# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES +# OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. +# IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, +# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT +# NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF +# THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +# +# from inst,v 1.9 1996/04/18 20:56:14 mark Exp $ +# + +# +# Installation utilites (functions), to get NetBSD installed on +# the hard disk. These are meant to be invoked from the shell prompt, +# by people installing NetBSD. +# + +VERSION=`echo '$Revision: 1.1 $' | cut '-d ' -f2` + +Load_tape() +{ + Tmp_dir + echo -n "Which tape drive will you be using? [rst0] " + read which + if [ "X$which" = "X" ]; then + which=rst0 + fi + echo -n "Insert the tape into the tape drive and hit return to " + echo -n "continue..." + read foo + echo "Extracting files from the tape..." + $TAR xvpf --unlink /dev/$which + echo "Done." +} + + +Get_Dest_Dir() +{ + echo -n "Enter new path to dest directory [$dest_dir] " + read newdir + if [ ! "X$newdir" = "X" ]; then + dest_dir=$newdir + fi +} + + +Get_Distrib_Dir() +{ + echo -n "Enter new path to distrib directory [$distribdir] " + read distribdir + if [ "X$distribdir" = "X" ]; then + distribdir=$destdir/usr/distrib + fi + if [ ! -d $distribdir ]; then + echo -n "$distribdir does not exist, create it [n] " + read yorn + if [ "$yorn" = "y" ]; then + mkdir $distribdir + fi + fi +} + + +Set_Distrib_Dir() +{ + while [ ! -d $distribdir ]; do + echo "Directory $distribdir does not exist" + Get_Distrib_Dir + done + + cd $distribdir +} + + +Load_Msdos_Fd() +{ + echo "Loading sets from msdos floppies" + Set_Distrib_Dir + + which= + while [ "$which" != "0" -a "$which" != "1" ]; do + echo -n "Read from which floppy drive ('0' or '1')? [0] " + read which + if [ "X$which" = "X" ]; then + which=0 + fi + done + + foo= + while [ "X$foo" = "X" ]; do + echo -n "Insert floppy (type s to stop, enter to load): " + read foo + if [ "X$foo" = "X" ]; then + mount -t msdos /dev/fd${which}a /mnt2 + cp -rp /mnt2/* . + umount /mnt2 + fi + done +} + + +Load_Tar_Fd() +{ + echo "Loading sets from tar floppies" + Set_Distrib_Dir + + which= + while [ "$which" != "0" -a "$which" != "1" ]; do + echo -n "Read from which floppy drive ('0' or '1')? [0] " + read which + if [ "X$which" = "X" ]; then + which=0 + fi + done + + foo= + while [ "X$foo" = "X" ]; do + echo -n "Insert floppy (type s to stop, enter to load): " + read foo + if [ "X$foo" = "X" ]; then + tar xf /dev/fd${which}a + fi + done +} + + +Load_Tar_Fd1() +{ + echo "Loading sets from multi-volume tar floppies" + Set_Distrib_Dir + + which= + while [ "$which" != "0" -a "$which" != "1" ]; do + echo -n "Read from which floppy drive ('0' or '1')? [0] " + read which + if [ "X$which" = "X" ]; then + which=0 + fi + done + + foo= + while [ "X$foo" = "X" ]; do + echo -n "Insert floppy (type s to stop, enter to load): " + read foo + if [ "X$foo" = "X" ]; then + tar xfM /dev/fd${which}a + fi + done +} + + +Load_Sets() +{ + res0= + while [ "$res0" != "q" -a "$res0" != "Q" ]; do + echo "" + echo -n "1. Set distrib directory (Currently $distribdir" + if [ ! -d $distribdir ]; then + echo " - non-existant)" + else + echo ")" + fi + echo "2. Load sets from msdos floppies" + echo "3. Load sets from tar floppies" + echo "4. Load sets from multi-volume tar floppies" + echo "Q. Return to previous menu" + echo "" + echo -n "Choice : " + read res0 + case "$res0" in + 1) + Get_Distrib_Dir + ;; + 2) + Load_Msdos_Fd + ;; + 3) + Load_Tar_Fd + ;; + 4) + Load_Tar_Fd1 + ;; + q|Q) +# echo "Returning to previous menu" + ;; + esac + done +} + + +Mount_SCSI_CDROM() +{ + which= + while [ "$which" != "0" -a "$which" != "1" ]; do + echo -n "Mount which CDROM drive ('0' or '1')? [0] " + read which + if [ "X$which" = "X" ]; then + which=0 + fi + done + + mount -r -t cd9660 /dev/cd${which}a /cdrom + if [ ! $? = 0 ]; then + echo "Mount failed" + else + distribdir="/cdrom/usr/distrib" + fi + +} + + +Mount_SCSI_Disc() +{ + echo -n "Mount which SCSI device as CDROM ? [sd0a] " + read which + + mount -r -t cd9660 /dev/${which} /cdrom + if [ ! $? = 0 ]; then + echo "Mount failed" + else + distribdir="/cdrom/usr/distrib" + fi + +} + + +Mount_ATAPI_CDROM() +{ + mount -r -t cd9660 /dev/wcd0a /cdrom + if [ ! $? = 0 ]; then + mount -r -t cd9660 /dev/wcd0a /cdrom + if [ ! $? = 0 ]; then + echo "Mount failed" + else + distribdir="/cdrom/usr/distrib" + fi + else + distribdir="/cdrom/usr/distrib" + fi + +} + + +CDROM_Sets() { + res0= + while [ "$res0" != "q" -a "$res0" != "Q" ]; do + echo "" + echo -n "1. Set distrib directory (Currently $distribdir" + if [ ! -d $distribdir ]; then + echo " - non-existant)" + else + echo ")" + fi + echo -n "2. Mount SCSI CDROM " + if [ ! -b /dev/cd0a ]; then + echo "- Not available" + else + echo "" + fi + echo -n "3. Mount ATAPI CDROM " + if [ ! -b /dev/wcd0a ]; then + echo "- Not available" + else + echo "" + fi + if [ -f /var/inst/developer ]; then + echo "D. Mount SCSI disc as CDROM" + fi + echo "Q. Return to previous menu" + echo "" + echo -n "Choice : " + read res0 + case "$res0" in + 1) + Get_Distrib_Dir + ;; + 2) + Mount_SCSI_CDROM + ;; + 3) + Mount_ATAPI_CDROM + ;; + d|D) + Mount_SCSI_Disc + ;; + q|Q) + ;; + esac + done +} + + +Show_Sets() +{ + Set_Distrib_Dir + sets=`ls *.[sS][eE][tT] 2>/dev/null | sed -e 's/.[sS][eE][tT]//'` + + echo "Loaded sets in $distribdir :" + for set in $sets; do + cat "$set".set 2>/dev/null | grep 'desc:' | cut -f2- + cat "$set".SET 2>/dev/null | grep 'desc:' | cut -f2- + done +} + + +Show_Installed_Sets() +{ + INSTALLDIR=$dest_dir/var/inst/installed + cd $INSTALLDIR + if [ ! $? = 0 ]; then + return + fi + sets=`ls *.[sS][eE][tT] 2>/dev/null | sed -e 's/.[sS][eE][tT]//'` + + echo "Installed sets:" + for set in $sets; do + cat "$set".set 2>/dev/null | grep 'desc:' | cut -f2- + cat "$set".SET 2>/dev/null | grep 'desc:' | cut -f2- + done +} + + +Validate_Sets() +{ + Set_Distrib_Dir + sets=`ls *.[sS][eE][tT] 2>/dev/null | sed -e 's/.[sS][eE][tT]//'` + list="" + + echo "Loaded sets in $distribdir :" + for set in $sets; do + printf "$set\t" + list="$list $set" + done + echo "" + + echo -n "Enter set names or 'all' for all sets : " + read res2 + res2=`echo "$res2" | tr "," " " | tr "[A-Z]" "[a-z]"` + if [ "$res2" = "all" ]; then + res2="$list" + fi + sets="$res2" + + echo "Validating in $distribdir :" + fail="" + for set in $sets; do + setname="set" + if [ ! -f "$set"."$setname" ]; then + setname="SET" + set=`echo $set | tr [a-z] [A-Z]` + fi + p1=`cat $set.$setname 2>/dev/null | grep 'parts:' | cut -f2` + if [ "$p1" = "" ]; then + continue + fi + p2=`ls "$set".[0-9a-z][0-9a-z] 2>/dev/null | wc | awk '{print $1}'` + printf "$set\t:" +# echo "$p1 , $p2" + if [ ! "$p1" = "$p2" ]; then + echo -n " Failed parts check (need $p1, got $p2)" + else + echo -n " Passed parts check" + fi + loop=0 + while [ $loop -lt $p1 ]; do + if [ $loop -lt 10 ]; then + file="0$loop" + else + file=$loop + fi + echo -n " [$file]" + cksum=`cat $set.$setname | grep "cksum.$file:" | cut -f2` + cksum1=`cat "$set".$file 2>&1 | cksum | cut "-d " -f1` + #echo "#$cksum, $cksum1#" + if [ ! "$cksum" = "$cksum1" ]; then + echo -n " part $file failed checksum" + fail="yes" + fi + loop=$(($loop+1)) + done + if [ "$fail" = "" ]; then + echo " Passed checksum" + else + echo "" + fi + done +} + + +Verify_Sets() +{ + Set_Distrib_Dir + sets=`ls *.[sS][eE][tT] 2>/dev/null | sed -e 's/.[sS][eE][tT]//'` + list="" + + echo "Loaded sets in $distribdir :" + for set in $sets; do + printf "$set\t" + list="$list $set" + done + echo "" + + echo -n "Enter set names or 'all' for all sets : " + read res2 + res2=`echo "$res2" | tr "," " " | tr "[A-Z]" "[a-z]"` + if [ "$res2" = "all" ]; then + res2="$list" + fi + sets="$res2" + + echo "Verifing sets in $distribdir :" + for set in $sets; do + setname="set" + if [ ! -f "$set"."$setname" ]; then + setname="SET" + set=`echo $set | tr [a-z] [A-Z]` + fi + printf "$set\t:" + cat "$set".[0-9a-z][0-9a-z] 2>/dev/null | $GUNZIP -t 2>/dev/null 1>/dev/null + if [ ! $? = 0 ]; then + echo " Failed archive integrity" + else + echo " Passed" + fi + done +} + + +Verify_Checksums() +{ + echo -n "Enter name of checksums file : " + read checkfile + if [ "X$checkfile" = "X" ]; then + return + fi + + Set_Distrib_Dir + sets=`ls *.[sS][eE][tT] 2>/dev/null | sed -e 's/.[sS][eE][tT]//'` + list="" + + echo "Available sets in $distribdir :" + for set in $sets; do + printf "$set\t" + list="$list $set" + done + echo "" + + echo -n "Enter set names or 'all' for all sets : " + read res2 + res2=`echo "$res2" | tr "," " " | tr "[A-Z]" "[a-z]"` + if [ "$res2" = "all" ]; then + res2="$list" + fi + sets="$res2" + + TMPFILE1="/tmp/inst.cksum1" + TMPFILE2="/tmp/inst.cksum2" + + echo "Verifing checksums for sets in $distribdir :" + for set in $sets; do + setname="set" + if [ ! -f "$set"."$setname" ]; then + setname="SET" + set=`echo $set | tr [a-z] [A-Z]` + fi + printf "$set\t:" + grep cksum $set.$setname >$TMPFILE1 + egrep -i "`echo ^$set.$setname | sed -e 's/\+/\\\\+/g'`" $checkfile | cut '-d:' -f2- >$TMPFILE2 + cmp -s $TMPFILE1 $TMPFILE2 + if [ $? = 0 ]; then + echo "checksums ok" + else + echo "checksum error" + fi + done + rm -f $TMPFILE1 + rm -f $TMPFILE2 +} + + +Check_Sets() { + res0= + while [ "$res0" != "q" -a "$res0" != "Q" ]; do + echo "" + echo "1. Validate distribution sets (confirm checksums)" + echo "2. Verify distribution sets (integrity check)" + echo "3. Verify checksums (confirm set checksums)" + echo "Q. Return to previous menu" + echo "" + echo -n "Choice : " + read res0 + case "$res0" in + 1) + Validate_Sets + ;; + 2) + Verify_Sets + ;; + 3) + Verify_Checksums + ;; + q|Q) + ;; + esac + done +} + + + + +List_Sets() +{ + Set_Distrib_Dir + sets=`ls *.[sS][eE][tT] 2>/dev/null | sed -e 's/.[sS][eE][tT]//'` + list="" + + echo "Loaded sets in $distribdir :" + for set in $sets; do + printf "$set\t" + list="$list $set" + done + echo "" + + echo -n "Enter set names or 'all' for all sets : " + read res2 + res2=`echo "$res2" | tr "," " " | tr "[A-Z]" "[a-z]"` + if [ "$res2" = "all" ]; then + res2="$list" + fi + sets="$res2" + + echo "Listing contents of sets in $distribdir :" + for set in $sets; do + setname="set" + if [ ! -f "$set"."$setname" ]; then + setname="SET" + set=`echo $set | tr [a-z] [A-Z]` + fi + echo "$set:" + cat "$set".[0-9a-z][0-9a-z] | $GUNZIP | $TAR -tpvf - + done +} + + +Install_Sets() +{ +# Make sure all the directories exist for recording the installation + + INSTALLDIR=$dest_dir/var/inst + if [ ! -d $dest_dir/var ]; then + echo "Creating $dest_dir/var" + mkdir $dest_dir/var + fi + if [ ! -d $INSTALLDIR ]; then + echo "Creating $INSTALLDIR" + mkdir $INSTALLDIR + fi + if [ ! -d $INSTALLDIR/installed ]; then + echo "Creating $INSTALLDIR/installed" + mkdir $INSTALLDIR/installed + fi + if [ ! -d $INSTALLDIR/sets ]; then + echo "Creating $INSTALLDIR/sets" + mkdir $INSTALLDIR/sets + fi + + if [ ! -d $dest_dir/tmp ]; then + echo "Creating $dest_dir/tmp" + mkdir $dest_dir/tmp + chmod 1777 $dest_dir/tmp + fi + +# Set the distribution directory and list all the available sets + + Set_Distrib_Dir + sets=`ls *.[sS][eE][tT] 2>/dev/null | sed -e 's/.[sS][eE][tT]//'` + list="" + + echo "Loaded sets in $distribdir :" + for set in $sets; do + printf "$set\t" + list="$list $set" + done + echo "" + +# Prompt for the sets to install + + echo -n "Enter set names or 'all' for all sets : " + read res2 + res2=`echo "$res2" | tr "," " " | tr "[A-Z]" "[a-z]"` + +# Check for any of the special sets + + if [ "$res2" = "all" ]; then + res2="$list" + fi + + if [ "$res2" = "req" ]; then + res2="base etc misc text kern" + fi + + if [ "$res2" = "std" ]; then + res2="base etc misc text local man kern" + fi + +# Hack to make sure the base set is the first installed + + echo "$res2" | grep base 2>/dev/null >/dev/null + if [ $? = 0 ]; then + res2="base "`echo "$res2" | sed 's/base//'` + fi + + echo "$res2" | grep BASE 2>/dev/null >/dev/null + if [ $? = 0 ]; then + res2="BASE "`echo "$res2" | sed 's/BASE//'` + fi + + echo -n "Would you like to list the files as they're extracted? [n] " + read verbose + case $verbose in + y*|Y*) + tarverbose=v + ;; + *) + tarverbose= + ;; + esac + + for set in $res2; do + setname="set" + if [ ! -f "$set"."$setname" ]; then + setname="SET" + set=`echo $set | tr [a-z] [A-Z]` + fi + +# Test for conflicts + + ok="" + for file in `ls $INSTALLDIR/installed/*.[sS][eE][tT] 2>/dev/null`; do + conflict="`grep conflict: $file | cut -d: -f2- 2>/dev/null`" + echo $conflict | egrep -i "(^|[[:space:]])$set([[:space:]]|$)" 2>/dev/null > /dev/null + if [ $? = 0 ]; then + echo "Set $set conflicts with installed set `basename $file`" + ok="no" + break + fi + done + + if [ ! "$ok" = "" ]; then + continue + fi + + conflicts="`grep conflict: $set.$setname | cut -d: -f2-`" + installed="`(cd $INSTALLDIR/installed ; ls *.[sS][eE][tT]) 2>/dev/null`" + + for conflict in $conflicts ; do + echo $installed | egrep -i "(^|[[:space:]])$conflict.set([[:space:]]|$)" 2>/dev/null > /dev/null + if [ $? = 0 ]; then + echo "Set $set conflicts with installed set $conflict" + ok="no" + break; + fi + done + + if [ ! "$ok" = "" ]; then + continue + fi + + dependancies="`grep depend: $set.$setname | cut -d: -f2-`" + installed="`(cd $INSTALLDIR/installed ; ls *.[sS][eE][tT]) 2>/dev/null`" + + for depend in $dependancies ; do + echo $installed | egrep -i "(^|[[:space:]])$depend\.set([[:space:]]|$)" 2> /dev/null >/dev/null + if [ ! $? = 0 ]; then + echo "Set $depend must be installed before $set" + ok="no" + break; + fi + done + + if [ ! "$ok" = "" ]; then + continue + fi + + if [ -f "$set".00 ]; then + if [ -x "$INSTALLDIR/scripts/$set" ]; then + echo "Running deinstallation script for $set" + (cd $dest_dir ; INSTALLROOT=$dest_dir; export INSTALLROOT ; $INSTALLDIR/scripts/$set deinstall) + fi + + filelist="$dest_dir/tmp/$set.files" + echo "Installing $set" + case $verbose in + y*|Y*) + cat "$set".[0-9a-z][0-9a-z] | $GUNZIP | (cd $dest_dir ; $TAR --unlink -xpvf - | tee $filelist) + ;; + *) + cat "$set".[0-9a-z][0-9a-z] | $GUNZIP | (cd $dest_dir ; $TAR --unlink -xpvf - >$filelist) + ;; + esac + echo "Generating installation information" + cat $filelist | awk '{ print $0 }' > $INSTALLDIR/installed/$set.files +# cat $filelist | awk '{ print $3 $8 }' > $INSTALLDIR/installed/$set.files + rm $filelist + cp $set.$setname $INSTALLDIR/installed/ + +# Run any install script + + if [ -x "$INSTALLDIR/scripts/$set" ]; then + echo "Running installation script for $set" + (cd $dest_dir ; INSTALLROOT=$dest_dir; export INSTALLROOT ; $INSTALLDIR/scripts/$set install) + fi + else + echo "Set $set not available for installation" + fi + sync + done + +# Test for other set requirements + + echo "Checking installed set requirements" + + installed="`(cd $INSTALLDIR/installed ; ls *.[sS][eE][tT]) 2>/dev/null`" + + for set in $installed; do + required="`grep req: $INSTALLDIR/installed/$set | cut -d: -f2- 2>/dev/null`" + for require in $required; do + echo $installed | egrep -i "(^|[[:space:]])$require.set([[:space:]]|$)" 2>/dev/null > /dev/null + if [ ! $? = 0 ]; then + echo "Set $set requires set $require" +# break + fi + done + done +} + + +Deinstall_Sets() +{ +# Make sure all the directories exist for recording the installation + + INSTALLDIR=$dest_dir/var/inst + +# Set the distribution directory and list all the available sets + + cd $INSTALLDIR/installed + sets=`ls *.[sS][eE][tT] 2>/dev/null | sed -e 's/.[sS][eE][tT]//'` + list="" + + echo "Installed sets :" + for set in $sets; do + printf "$set\t" + list="$list $set" + done + echo "" + +# Prompt for the sets to deinstall + + echo -n "Enter set names : " + read res2 + res2=`echo "$res2" | tr "," " " | tr "[A-Z]" "[a-z]"` + + echo -n "Would you like to list the files as they're removed? [n] " + read verbose + + for set in $res2; do + setname="set" + if [ ! -f "$set"."$setname" ]; then + setname="SET" + set=`echo $set | tr [a-z] [A-Z]` + fi + + if [ -f "$set".set ]; then +# Test for dependancies + + ok="" + for file in `ls $INSTALLDIR/installed/*.[sS][eE][tT] 2>/dev/null`; do + depend="`grep depend: $file 2>/dev/null`" + echo $depend | egrep -i "(^|[[:space:]])$set([[:space:]]|$)" 2>/dev/null > /dev/null + if [ $? = 0 ]; then + echo "Installed set $file depends on set $set" + ok="no" + break + fi + done + + if [ ! "$ok" = "" ]; then + continue + fi + + echo "Deinstalling $set" + if [ -x "$INSTALLDIR/scripts/$set" ]; then + echo "Running deinstallation script for $set" + (cd $dest_dir ; INSTALLROOT=$dest_dir; export INSTALLROOT ; $INSTALLDIR/scripts/$set deinstall) + fi + case $verbose in + y*|Y*) + for file in `cat $set.files`; do + echo $file + (cd $dest_dir ; rm $file) 2>/dev/null >/dev/null + done + ;; + *) + cat "$set.files" | (cd $dest_dir ; xargs rm 2>/dev/null >/dev/null ) + ;; + esac + rm "$set.files" + rm "$set.set" + else + echo "Set $set not available for deinstallation" + fi + sync + done + +# Test for other set requirements + + echo "Checking installed set requirements" + + installed="`(cd $INSTALLDIR/installed ; ls *.[sS][eE][tT]) 2>/dev/null`" + + for set in $installed; do + required="`grep req: $INSTALLDIR/installed/$set | cut -d: -f2- 2>/dev/null`" + for require in $required; do + echo $installed | egrep -i "(^|[[:space:]])$require.set([[:space:]]|$)" 2>/dev/null > /dev/null + if [ ! $? = 0 ]; then + echo "Set $set requires set $require" +# break + fi + done + done +} + + +Select_Sets() +{ +} + + +Main_Menu() +{ + res1= + while [ "$res1" != "q" -a "$res1" != "Q" ]; do + echo "" + echo "RiscBSD (NetBSD/arm32) Installer V$VERSION" + echo "" + echo -n "1. Set distrib directory (Currently $distribdir" + if [ ! -d $distribdir ]; then + echo " - non-existant)" + else + echo ")" + fi + echo "2. Load distribution sets onto harddisc" + echo "3. Load distribution sets from CDROM" + echo "4. Show distribution sets" + echo "5. Show installed sets" + echo "6. Check sets (verify/validate)" + echo "7. List contents of distribution sets in $distribdir" + echo "8. Install distribution sets from $distribdir" + echo "D. Deinstall installed sets" + echo "R. Set root directory for install (Currently $dest_dir)" + echo "Q. Quit" + echo "" + echo -n "Choice : " + read res1 + case "$res1" in + 1) + Get_Distrib_Dir + ;; + 2) + Load_Sets + ;; + 3) + CDROM_Sets + ;; + 4) + Show_Sets + ;; + 5) + Show_Installed_Sets + ;; + 6) + Check_Sets + ;; + 7) + List_Sets + ;; + 8) + Install_Sets + ;; + d|D) + Deinstall_Sets + ;; + r|R) + Get_Dest_Dir + ;; + q|Q) +# echo "Quitting" + ;; + esac + done +} + + +# we know that /etc/fstab is only generated on the hard drive +destdir= +dest_dir=/ +if [ ! -f /etc/fstab ]; then + dest_dir=/mnt/ +fi +if [ -f /etc/cdrom ]; then + dest_dir=/mnt/ +fi + +# counter for possible shared library confusion +TAR=/usr/bin/tar +GUNZIP=/usr/bin/gunzip + +distribdir=$destdir/usr/distrib + +#IAM=`whoami` +# +#if [ ! "$IAM" = "root" ]; then +# echo "inst should be run as root" +# exit +#fi + +Main_Menu + +exit diff --git a/distrib/arm32/floppies/inst-common/instbin.conf b/distrib/arm32/floppies/inst-common/instbin.conf new file mode 100644 index 00000000000..dbeac1091bd --- /dev/null +++ b/distrib/arm32/floppies/inst-common/instbin.conf @@ -0,0 +1,29 @@ +# +# $NetBSD: instbin.conf,v 1.1 1996/05/16 19:59:07 mark Exp $ +# + +srcdirs bin sbin usr.bin/less usr.bin usr.sbin gnu/usr.bin + +progs cat chmod chown chroot cp dd df disklabel ed expr fsck_ffs ftp gawk grep +progs gzip ifconfig init less ln ls mkdir mknod mount mount_cd9660 +progs mount_ffs mount_msdos mount_nfs mount_kernfs +progs mv newfs ping printf pwd reboot rm route +progs sed sh shutdown slattach strings stty sync tar test tip umount +progs update cksum wc tee tr cut cmp xargs + +ln chown chgrp +ln fsck_ffs fsck +ln gawk awk +ln grep egrep +ln gzip gzcat gunzip +ln sh -sh # init invokes the shell this way +ln test [ +ln mount_cd9660 cd9660 +ln mount_ffs ffs +ln mount_msdos msdos +ln mount_nfs nfs +ln mount_kernfs kernfs +ln less more +ln reboot halt + +libs -ledit -lutil -ltermcap -lcrypt -ll -lm diff --git a/distrib/arm32/floppies/inst-common/list b/distrib/arm32/floppies/inst-common/list new file mode 100644 index 00000000000..3075cf8e347 --- /dev/null +++ b/distrib/arm32/floppies/inst-common/list @@ -0,0 +1,90 @@ +# $NetBSD: list,v 1.1 1996/05/16 19:59:08 mark Exp $ + +# copy the crunched binary, link to it, and kill it +COPY ${OBJDIR}/instbin instbin +LINK instbin bin/cat +LINK instbin bin/chmod +LINK instbin bin/cp +LINK instbin bin/dd +LINK instbin bin/df +LINK instbin bin/ed +LINK instbin bin/expr +LINK instbin bin/ln +LINK instbin bin/ls +LINK instbin bin/mkdir +LINK instbin bin/mv +LINK instbin bin/pwd +LINK instbin bin/rm +LINK instbin bin/sh +LINK instbin bin/stty +LINK instbin bin/sync +LINK instbin bin/test +LINK instbin bin/[ +LINK instbin sbin/disklabel +LINK instbin sbin/fsck +LINK instbin sbin/fsck_ffs +LINK instbin sbin/halt +LINK instbin sbin/ifconfig +LINK instbin sbin/init +LINK instbin sbin/mknod +LINK instbin sbin/mount +LINK instbin sbin/mount_cd9660 +LINK instbin sbin/mount_ffs +LINK instbin sbin/mount_msdos +LINK instbin sbin/mount_nfs +LINK instbin sbin/mount_kernfs +LINK instbin sbin/newfs +LINK instbin sbin/ping +LINK instbin sbin/reboot +LINK instbin sbin/route +LINK instbin sbin/shutdown +LINK instbin sbin/slattach +LINK instbin sbin/umount +SYMLINK /bin/cat usr/bin/awk +SYMLINK /bin/cat usr/bin/chgrp +SYMLINK /bin/cat usr/bin/cksum +SYMLINK /bin/cat usr/bin/cmp +SYMLINK /bin/cat usr/bin/cut +SYMLINK /bin/cat usr/bin/ftp +SYMLINK /bin/cat usr/bin/gunzip +SYMLINK /bin/cat usr/bin/gzcat +SYMLINK /bin/cat usr/bin/gzip +SYMLINK /bin/cat usr/bin/grep +SYMLINK /bin/cat usr/bin/more +SYMLINK /bin/cat usr/bin/printf +SYMLINK /bin/cat usr/bin/sed +SYMLINK /bin/cat usr/bin/strings +SYMLINK /bin/cat usr/bin/tar +SYMLINK /bin/cat usr/bin/tee +SYMLINK /bin/cat usr/bin/tip +SYMLINK /bin/cat usr/bin/tr +SYMLINK /bin/cat usr/bin/wc +SYMLINK /bin/cat usr/bin/xargs +SYMLINK /bin/cat usr/sbin/chown +SYMLINK /bin/cat usr/sbin/chroot +SYMLINK /bin/cat usr/sbin/update +SPECIAL /bin/rm instbin + +# copy the MAKEDEV script and make some devices +COPY ${DESTDIR}/dev/MAKEDEV dev/MAKEDEV +SPECIAL cd dev; sh MAKEDEV floppy +SPECIAL /bin/rm dev/MAKEDEV + +# we need the contents of /usr/mdec +#COPYDIR ${DESTDIR}/usr/mdec usr/mdec + +# various files that we need in /etc for the install +COPY ${DESTDIR}/etc/group etc/group +COPY ${DESTDIR}/etc/master.passwd etc/master.passwd +COPY ${DESTDIR}/etc/passwd etc/passwd +COPY ${DESTDIR}/etc/protocols etc/protocols +COPY ${DESTDIR}/etc/pwd.db etc/pwd.db +COPY ${DESTDIR}/etc/services etc/services +COPY ${DESTDIR}/etc/spwd.db etc/spwd.db + +# and the common installation tools +COPY ${TOPDIR}/inst-common/dot.commonutils .commonutils +COPY ${TOPDIR}/inst-common/termcap.vt100 usr/share/misc/termcap + +COPY ${TOPDIR}/inst-common/inst.sh usr/local/sbin/inst +SPECIAL /bin/chmod 755 usr/local/sbin/inst diff --git a/distrib/arm32/floppies/inst-common/mtree.conf b/distrib/arm32/floppies/inst-common/mtree.conf new file mode 100644 index 00000000000..d673b106253 --- /dev/null +++ b/distrib/arm32/floppies/inst-common/mtree.conf @@ -0,0 +1,95 @@ +# $NetBSD: mtree.conf,v 1.1 1996/05/16 19:59:09 mark Exp $ + +/set type=dir uname=root gname=wheel mode=0755 +# . +. + +# ./bin +bin +# ./bin +.. + +# ./dev +dev +# ./dev +.. + +# ./etc +etc +# ./etc +.. + +# ./mnt +mnt +# ./mnt +.. + +# ./mnt2 +mnt2 +# ./mnt2 +.. + +# ./kern +kern +# ./kern +.. + +# ./cdrom +cdrom +# ./cdrom +.. + +# ./sbin +sbin +# ./sbin +.. + +# ./tmp +tmp +# ./tmp +.. + +# ./usr +usr + +# ./usr/bin +bin +# ./usr/bin +.. + +# ./usr/mdec +mdec +# ./usr/mdec +.. + +# ./usr/sbin +sbin +# ./usr/sbin +.. + +# ./usr/local +local + +# ./usr/local/sbin +sbin + +# ./usr/local +.. + +# ./usr +.. + +# ./usr/share +share + +# ./usr/share/misc +misc +# ./usr/share/misc +.. + +# ./usr/share +.. + +# ./usr +.. + diff --git a/distrib/arm32/floppies/inst-common/termcap.vt100 b/distrib/arm32/floppies/inst-common/termcap.vt100 new file mode 100644 index 00000000000..57340c7000a --- /dev/null +++ b/distrib/arm32/floppies/inst-common/termcap.vt100 @@ -0,0 +1,49 @@ +# $NetBSD: termcap.vt100,v 1.1 1996/05/16 19:59:11 mark Exp $ +# +# Copyright (c) 1980, 1985, 1989 The Regents of the University of California. +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions +# are met: +# 1. Redistributions of source code must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# 2. Redistributions in binary form must reproduce the above copyright +# notice, this list of conditions and the following disclaimer in the +# documentation and/or other materials provided with the distribution. +# 3. All advertising materials mentioning features or use of this software +# must display the following acknowledgement: +# This product includes software developed by the University of +# California, Berkeley and its contributors. +# 4. Neither the name of the University nor the names of its contributors +# may be used to endorse or promote products derived from this software +# without specific prior written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +# ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +# FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +# OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +# HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +# OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +# SUCH DAMAGE. +# +# @(#)termcap.src 5.109 (Berkeley) 3/8/93 +# +vt100|vt100-am|dec vt100 (w/advanced video):\ + :am:mi:ms:xn:xo:\ + :co#80:it#8:li#24:vt#3:\ + :DO=\E[%dB:K1=\EOq:K2=\EOr:K3=\EOs:K4=\EOp:K5=\EOn:\ + :LE=\E[%dD:RI=\E[%dC:UP=\E[%dA:ae=^O:as=^N:bl=^G:\ + :cd=\E[J:ce=\E[K:cl=\E[H\E[J:cm=\E[%i%d;%dH:cr=^M:\ + :cs=\E[%i%d;%dr:ct=\E[3g:do=^J:ho=\E[H:k0=\EOy:\ + :k1=\EOP:k2=\EOQ:k3=\EOR:k4=\EOS:k5=\EOt:k6=\EOu:\ + :k7=\EOv:k8=\EOl:k9=\EOw:kb=^H:kd=\EOB:ke=\E[?1l\E>:\ + :kl=\EOD:kr=\EOC:ks=\E[?1h\E=:ku=\EOA:le=^H:mb=\E[5m:\ + :md=\E[1m:me=\E[m\017:mr=\E[7m:nd=\E[C:rc=\E8:\ + :..sa=\E[0%?%p1%p6%|%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;%?%p4%t;5%;m%?%p9%t\016%e\017%;:\ + :sc=\E7:se=\E[m:sf=^J:so=\E[7m:sr=\EM:st=\EH:ta=^I:\ + :ue=\E[m:up=\E[A:us=\E[4m: diff --git a/distrib/arm32/floppies/inst/Makefile b/distrib/arm32/floppies/inst/Makefile new file mode 100644 index 00000000000..14f394c6cdd --- /dev/null +++ b/distrib/arm32/floppies/inst/Makefile @@ -0,0 +1,8 @@ +# $NetBSD: Makefile,v 1.1 1996/05/16 19:58:54 mark Exp $ + +TOP= ${.CURDIR}/.. + +.include "${TOP}/Makefile.inc" +IMAGE= inst-${REV}.fs + +.include "${TOP}/inst-common/Makefile.inc" diff --git a/distrib/arm32/floppies/inst/disktab.preinstall b/distrib/arm32/floppies/inst/disktab.preinstall new file mode 100644 index 00000000000..5fe26a7d81c --- /dev/null +++ b/distrib/arm32/floppies/inst/disktab.preinstall @@ -0,0 +1,29 @@ +# Disk geometry and partition layout tables. +# Key: +# dt controller type +# ty type of disk (fixed, removeable, simulated) +# d[0-4] drive-type-dependent parameters +# ns #sectors/track +# nt #tracks/cylinder +# nc #cylinders/disk +# sc #sectors/cylinder, nc*nt default +# su #sectors/unit, sc*nc default +# se sector size, DEV_BSIZE default +# rm rpm, 3600 default +# sf supports bad144-style bad sector forwarding +# sk sector skew per track, default 0 +# cs sector skew per cylinder, default 0 +# hs headswitch time, default 0 +# ts one-cylinder seek time, default 0 +# il sector interleave (n:1), 1 default +# bs boot block size, default BBSIZE +# sb superblock size, default SBSIZE +# o[a-h] partition offsets in sectors +# p[a-h] partition sizes in sectors +# b[a-h] partition block sizes in bytes +# f[a-h] partition fragment sizes in bytes +# t[a-h] partition types (filesystem, swap, etc) +# +# All partition sizes reserve space for bad sector tables. +# (5 cylinders needed for maintenance + replacement sectors) +# diff --git a/distrib/arm32/floppies/inst/dot.hdprofile b/distrib/arm32/floppies/inst/dot.hdprofile new file mode 100644 index 00000000000..b5b68311738 --- /dev/null +++ b/distrib/arm32/floppies/inst/dot.hdprofile @@ -0,0 +1,63 @@ +# $NetBSD: dot.hdprofile,v 1.1 1996/05/16 19:58:57 mark Exp $ +# +# Copyright (c) 1994 Christopher G. Demetriou +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions +# are met: +# 1. Redistributions of source code must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# 2. Redistributions in binary form must reproduce the above copyright +# notice, this list of conditions and the following disclaimer in the +# documentation and/or other materials provided with the distribution. +# 3. All advertising materials mentioning features or use of this software +# must display the following acknowledgement: +# This product includes software developed by Christopher G. Demetriou. +# 4. The name of the author may not be used to endorse or promote products +# derived from this software without specific prior written permission +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR +# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES +# OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. +# IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, +# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT +# NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF +# THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +# + +PATH=/sbin:/bin:/usr/bin:/usr/sbin:/ +export PATH +TERM=vt100 +export TERM + +umask 022 + +if [ "X${DONEPROFILE}" = "X" ]; then + DONEPROFILE=YES + + echo "Checking filesystems..." + fsck -y + + echo "Mounting filesystems..." + mount -a + mount -t kernfs /kern /kern 2>/dev/null >/dev/null + + # set up some sane defaults + echo 'erase ^H, werase ^W, kill ^U, intr ^C' + stty newcrt werase ^W intr ^C kill ^U erase ^H 9600 + echo '' + + # run update, so that installed software is written as it goes. + update + + # pull in the functions that people will use from the shell prompt. + . /.commonutils + . /.instutils + + echo "Follow the installation directions to install the NetBSD" + echo "distribution sets." +fi diff --git a/distrib/arm32/floppies/inst/dot.instutils b/distrib/arm32/floppies/inst/dot.instutils new file mode 100644 index 00000000000..46f29916203 --- /dev/null +++ b/distrib/arm32/floppies/inst/dot.instutils @@ -0,0 +1,157 @@ +# $NetBSD: dot.instutils,v 1.1 1996/05/16 19:58:58 mark Exp $ +# +# Copyright (c) 1994 Christopher G. Demetriou +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions +# are met: +# 1. Redistributions of source code must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# 2. Redistributions in binary form must reproduce the above copyright +# notice, this list of conditions and the following disclaimer in the +# documentation and/or other materials provided with the distribution. +# 3. All advertising materials mentioning features or use of this software +# must display the following acknowledgement: +# This product includes software developed by Christopher G. Demetriou. +# 4. The name of the author may not be used to endorse or promote products +# derived from this software without specific prior written permission +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR +# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES +# OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. +# IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, +# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT +# NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF +# THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +# + +# Installation configuration utilites (functions), to get NetBSD configured +# reasonably once it is installed on the hard disk. These are meant to be +# invoked from the shell prompt, by people installing NetBSD. + +Configure() +{ + DEV=/dev + ETC=/etc + if [ ! -f /etc/fstab ]; then + DEV=/mnt/dev + ETC=/mnt/etc + fi + + echo "You will now be prompted for information about this" + echo "machine. If you hit return, the default answer (in" + echo "brackets) will be used." + + echo "" + echo -n "What is this machine's hostname? [unknown.host.domain] " + read hname + if [ "$hname" = "" ]; then + hname=unknown.host.domain + fi + echo $hname > ${ETC}/myname + proto_domain=`echo $hname | sed -e 's/[^.]*\.//'` + + echo "" + echo "What domain is this machine in (this is NOT its YP" + echo -n "domain name)? [$proto_domain] " + read dname + if [ "$dname" = "" ]; then + dname=$proto_domain + fi + + echo "" + if [ -e $ETC/sendmail.cf ]; then + echo "WARNING: A default sendmail.cf exists, and probably" + echo "needs to be tuned and/or replaced, to work properly at" + echo "your site!" + else + echo "WARNING: No default sendmail.cf installed. Did you" + echo "forget to install the 'etc' distribution?" + fi + + echo "127.0.0.1 localhost localhost.$dname" > ${ETC}/hosts + + echo "" + echo -n "Does this machine have an ethernet interface? [y] " + read resp + case "$resp" in + n*) + ;; + *) + intf= + while [ "$intf" = "" ]; do + echo -n "What is the primary interface name " + echo -n "(e.g. ed0, ep0, etc)? " + read intf + done + echo -n "What is the hostname for this interface? [$hname] " + read ifname + if [ "$ifname" = "" ]; then + ifname=$hname + fi + ifaddr= + while [ "$ifaddr" = "" ]; do + echo -n "What is the IP address associated with " + echo -n "interface ${intf}? " + read ifaddr + done + echo "$ifaddr $ifname `echo $ifname | sed -e s/\.$dname//`" \ + >> ${ETC}/hosts + + echo -n "Does this interface have a special netmask? [n] " + read resp + case "$resp" in + y*) + echo -n "What is the netmask? [0xffffff00] " + read ifnetmask + if [ "$ifnetmask" = "" ]; then + ifnetmask=0xffffff00 + fi + ;; + *) + ifnetmask= + ;; + esac + + echo -n "Does this interface need additional flags? [n] " + read resp + case "$resp" in + y*) + echo -n "What flags? [link0] " + read ifflags + if [ "$ifflags" = "" ]; then + ifflags=link0 + fi + ;; + *) + ifflags= + ;; + esac + echo "inet $ifname $ifnetmask $ifflags" > ${ETC}/hostname.$intf + + echo "" + echo -n "WARNING: if you have any more ethernet interfaces, " + echo "you will have to configure" + echo -n "them by hand. Read the comments in /etc/netstart to " + echo "learn how to do this." + ;; + esac + + echo "" + echo -n "Making device nodes (may take a while)..." + cd ${DEV} + sh MAKEDEV all + echo " done." + + sync + + echo "" + echo "If you haven't already installed a kernel on the hard drive" + echo "using your kernel-copy floppy, do so now. Kernel" + echo "installation instructions can be found in the" + echo "installation notes." +} diff --git a/distrib/arm32/floppies/inst/dot.profile b/distrib/arm32/floppies/inst/dot.profile new file mode 100644 index 00000000000..a1944936935 --- /dev/null +++ b/distrib/arm32/floppies/inst/dot.profile @@ -0,0 +1,59 @@ +# +# Copyright (c) 1994 Christopher G. Demetriou +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions +# are met: +# 1. Redistributions of source code must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# 2. Redistributions in binary form must reproduce the above copyright +# notice, this list of conditions and the following disclaimer in the +# documentation and/or other materials provided with the distribution. +# 3. All advertising materials mentioning features or use of this software +# must display the following acknowledgement: +# This product includes software developed by Christopher G. Demetriou. +# 4. The name of the author may not be used to endorse or promote products +# derived from this software without specific prior written permission +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR +# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES +# OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. +# IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, +# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT +# NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF +# THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +# +# $Id: dot.profile,v 1.1 1996/09/05 21:26:18 deraadt Exp $ + +PATH=/sbin:/bin:/usr/bin:/usr/sbin:/ +export PATH +TERM=vt100 +export TERM + +umask 022 + +if [ "X${DONEPROFILE}" = "X" ]; then + DONEPROFILE=YES + + # set up some sane defaults + echo 'erase ^H, werase ^W, kill ^U, intr ^C' + stty newcrt werase ^W intr ^C kill ^U erase ^H 9600 + echo '' + + # run update, so that installed software is written as it goes. + update + + # mount the kern_fs so that we can examine the dmesg state + mount -t kernfs /kern /kern + + # pull in the functions that people will use from the shell prompt. + . /.commonutils + . /.instutils + + # run the installation script. + install +fi diff --git a/distrib/arm32/floppies/inst/install.sh b/distrib/arm32/floppies/inst/install.sh new file mode 100644 index 00000000000..5d772a421d9 --- /dev/null +++ b/distrib/arm32/floppies/inst/install.sh @@ -0,0 +1,497 @@ +#!/bin/sh +# +# Copyright (c) 1994 Christopher G. Demetriou +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions +# are met: +# 1. Redistributions of source code must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# 2. Redistributions in binary form must reproduce the above copyright +# notice, this list of conditions and the following disclaimer in the +# documentation and/or other materials provided with the distribution. +# 3. All advertising materials mentioning features or use of this software +# must display the following acknowledgement: +# This product includes software developed by Christopher G. Demetriou. +# 4. The name of the author may not be used to endorse or promote products +# derived from this software without specific prior written permission +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR +# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES +# OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. +# IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, +# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT +# NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF +# THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +# +# $Id: install.sh,v 1.1 1996/09/05 21:26:19 deraadt Exp $ + +# NetBSD installation script. +# In a perfect world, this would be a nice C program, with a reasonable +# user interface. + +stty erase ^H + +DT=/etc/disktab # /etc/disktab +FSTABDIR=/mnt/etc # /mnt/etc +#DONTDOIT=echo + +VERSION=1.1 +FSTAB=${FSTABDIR}/fstab + +getresp() { + read resp + if [ "X$resp" = "X" ]; then + resp=$1 + fi +} + +echo "Welcome to the NetBSD ${VERSION} installation program." +echo "" +echo "This program is designed to help you put NetBSD on your hard disk," +echo "in a simple and rational way. You'll be asked several questions," +echo "and it would probably be useful to have your disk's hardware" +echo "manual, the installation notes, and a calculator handy." +echo "" +echo "In particular, you will need to know some reasonably detailed" +echo "information about your disk's geometry, because there is currently" +echo "no way this this program can figure that information out." +echo "" +echo "As with anything which modifies your hard drive's contents, this" +echo "program can cause SIGNIFICANT data loss, and you are advised" +echo "to make sure your hard drive is backed up before beginning the" +echo "installation process." +echo "" +echo "Default answers are displyed in brackets after the questions." +echo "You can hit Control-C at any time to quit, but if you do so at a" +echo "prompt, you may have to hit return. Also, quitting in the middle of" +echo "installation may leave your system in an inconsistent state." +echo "" +echo -n "Proceed with installation? [n] " +getresp "n" +case "$resp" in + y*|Y*) + echo "Cool! Let's get to it..." + ;; + *) + echo "" + echo "OK, then. Enter 'halt' at the prompt to halt the" + echo "machine." + exit + ;; +esac + +echo "" +echo "To do the installation, you'll need to provide some information about" +echo "your disk." +echo "" +echo "NetBSD can be installed on ST506, ESDI, IDE, or SCSI disks." +echo -n "What kind of disk will you be installing on? [IDE] " +getresp "IDE" +case "$resp" in + esdi|ESDI|st506|ST506) + drivetype=wd + echo -n "Does it support _automatic_ sector remapping? [y] " + getresp "y" + case "$resp" in + n*|N*) + sect_fwd="sf:" + ;; + *) + sect_fwd="" + ;; + esac + ;; + ide|IDE) + drivetype=wd + sect_fwd="" + type=ST506 + ;; + scsi|SCSI) + drivetype=sd + sect_fwd="" + type=SCSI + ;; +esac + +# find out what units are possible for that disk, and query the user. +driveunits=`ls /dev/${drivetype}?a | sed -e 's,/dev/\(...\)a,\1,g'` +if [ "X${driveunits}" = "X" ]; then + echo "FATAL ERROR:" + echo "No devices for disks of type '${drivetype}'." + echo "This is probably a bug in the install disks." + echo "Exiting install program." + exit +fi +prefdrive=${drivetype}0 + +echo "" +echo "The following ${drivetype}-type disks are supported by this" +echo "installation procedure:" +echo " "${driveunits} +echo "Note that they may not exist in _your_ machine; the list of" +echo "disks in your machine was printed when the system was booting." +echo "" +while [ "X${drivename}" = "X" ]; do + echo -n "Which disk would like to install on? [${prefdrive}] " + getresp ${prefdrive} + otherdrives=`echo "${driveunits}" | sed -e s,${resp},,` + if [ "X${driveunits}" = "X${otherdrives}" ]; then + echo "" + echo "\"${resp}\" is an invalid drive name. Valid choices" + echo "are: "${driveunits} + echo "" + else + drivename=${resp} + fi +done + +echo "" +echo "Using disk ${drivename}." +echo "" +echo -n "What kind of disk is it? (one word please) [my${drivetype}] " +getresp "my${drivetype}" +labelname=$resp + +echo "" +echo "You will now need to provide some information about your disk's" +echo "geometry. This should either be in the User's Manual for your disk," +echo "or you should have written down what NetBSD printed when booting." +echo "(Note that he geometry that's printed at boot time is preferred.)" +echo "" +echo "You may choose to view the initial boot messages for your system" +echo "again right now if you like." +echo -n "View the boot messages again? [n] " +getresp "n" +case "$resp" in + y*|Y*) + more /kern/msgbuf + ;; + *) + echo "" + ;; +esac + +echo "" +echo "You will now enter the disk geometry information" +echo "" + +echo -n "Number of bytes per disk sector? [512] " +getresp 512 +bytes_per_sect="$resp" + +echo -n "Number of disk cylinders? " +getresp +cyls_per_disk="$resp" + +echo -n "Number of disk tracks (heads) per disk cylinder? " +getresp +tracks_per_cyl="$resp" + +echo -n "Number of disk sectors per disk track? " +getresp +sects_per_track="$resp" + +cylindersize=`expr $sects_per_track \* $tracks_per_cyl` +cylbytes=`expr $cylindersize \* $bytes_per_sect` +disksize=`expr $cylindersize \* $cyls_per_disk` + +echo "" +echo "Your disk has a total of $disksize $bytes_per_sect byte sectors," +echo "arranged as $cyls_per_disk cylinders which contain $cylindersize " +echo "sectors ($cylbytes bytes) each." +echo "" +echo "You can specify partition sizes in cylinders ('c') or sectors ('s')." +while [ "X${sizemult}" = "X" ]; do + echo -n "What units would you like to use? [cylinders] " + getresp cylinders + case "$resp" in + c*|C*) + sizemult=$cylindersize + sizeunit="cylinders" + ;; + s*|S*) + sizemult=1 + sizeunit="sectors" + ;; + *) + echo "" + echo "Enter cylinders ('c') or sectors ('s')." + ;; + esac +done + +if [ $sizeunit = "sectors" ]; then + echo "" + echo "For best disk performance, partitions should begin and end on" + echo "cylinder boundaries. Wherever possible, pick sizes that are" + echo "multiples of the cylinder size ($cylindersize sectors)." +fi + +echo -n "" +echo -n "Size of NetBSD portion of disk (in $sizeunit)? " +getresp +partition=$resp +partition_sects=`expr $resp \* $sizemult` +part_offset=0 +if [ $partition_sects -lt $disksize ]; then + echo -n "Offset of NetBSD portion of disk (in $sizeunit)? " + getresp + part_offset=$resp +fi +badspacesec=0 +if [ "$sect_fwd" = "sf:" ]; then + badspacecyl=`expr $sects_per_track + 126` + badspacecyl=`expr $badspacecyl + $cylindersize - 1` + badspacecyl=`expr $badspacecyl / $cylindersize` + badspacesec=`expr $badspacecyl \* $cylindersize` + echo "" + echo -n "Using $badspacesec sectors ($badspacecyl cylinders) for the " + echo "bad144 bad block table" +fi + +sects_left=`expr $partition_sects - $badspacesec` +units_left=`expr $sects_left / $sizemult` +echo "" +echo "There are $units_left $sizeunit left to allocate." +echo "" +root=0 +while [ $root -eq 0 ]; do + echo -n "Root partition size (in $sizeunit)? " + getresp + case $resp in + [1-9]*) + total=$resp + if [ $total -gt $units_left ]; then + echo -n "Root size is greater than remaining " + echo "free space on disk." + else + root=$resp + fi + ;; + esac +done +root_offset=$part_offset +part_used=`expr $root + $badspacesec / $sizemult` +units_left=`expr $partition - $part_used` +echo "" + +swap=0 +while [ $swap -eq 0 ]; do + echo "$units_left $sizeunit remaining in NetBSD portion of disk." + echo -n "Swap partition size (in $sizeunit)? " + getresp + case $resp in + [1-9]*) + if [ $swap -gt $units_left ]; then + echo -n "Swap size is greater than remaining " + echo "free space on disk." + else + swap=$resp + fi + ;; + esac +done +swap_offset=`expr $root_offset + $root` +part_used=`expr $part_used + $swap` +echo "" + +fragsize=1024 +blocksize=8192 +$DONTDOIT mount -u /dev/rd0 / +cat /etc/disktab.preinstall > $DT +echo "" >> $DT +echo "$labelname|NetBSD installation generated:\\" >> $DT +echo " :dt=${type}:ty=winchester:\\" >> $DT +echo -n " :nc#${cyls_per_disk}:ns#${sects_per_track}" >> $DT +echo ":nt#${tracks_per_cyl}:\\" >> $DT +echo " :se#${bytes_per_sect}:${sect_fwd}\\" >> $DT +_size=`expr $root \* $sizemult` +_offset=`expr $root_offset \* $sizemult` +echo -n " :pa#${_size}:oa#${_offset}" >> $DT +echo ":ta=4.2BSD:ba#${blocksize}:fa#${fragsize}:\\" >> $DT +_size=`expr $swap \* $sizemult` +_offset=`expr $swap_offset \* $sizemult` +echo " :pb#${_size}:ob#${_offset}:tb=swap:\\" >> $DT +_size=`expr $partition \* $sizemult` +echo " :pd#${_size}:od#0:\\" >> $DT + +echo "You will now have to enter information about any other partitions" +echo "to be created in the NetBSD portion of the disk. This process will" +echo "be complete when you've filled up all remaining space in the NetBSD" +echo "portion of the disk." + +while [ $part_used -lt $partition ]; do + part_size=0 + units_left=`expr $partition - $part_used` + while [ $part_size -eq 0 ]; do + echo "" + echo -n "$units_left $sizeunit remaining in NetBSD portion of " + echo "the disk" + echo -n "Next partition size (in $sizeunit)? " + getresp + case $resp in + [1-9]*) + total=`expr $part_used + $resp` + if [ $total -gt $partition ]; then + echo -n "That would make the parition" + echo "too large to fit!" + else + part_size=$resp + part_used=$total + part_name="" + while [ "$part_name" = "" ]; do + echo -n "Mount point? " + getresp + part_name=$resp + done + fi + ;; + esac + done + if [ "$ename" = "" ]; then + ename=$part_name + offset=`expr $part_offset + $root + $swap` + _size=`expr $part_size \* $sizemult` + _offset=`expr $offset \* $sizemult` + echo -n " :pe#${_size}:oe#${_offset}" >> $DT + echo ":te=4.2BSD:be#${blocksize}:fe#${fragsize}:\\" >> $DT + offset=`expr $offset + $part_size` + elif [ "$fname" = "" ]; then + fname=$part_name + _size=`expr $part_size \* $sizemult` + _offset=`expr $offset \* $sizemult` + echo -n " :pf#${_size}:of#${_offset}" >> $DT + echo ":tf=4.2BSD:bf#${blocksize}:ff#${fragsize}:\\" >> $DT + offset=`expr $offset + $part_size` + elif [ "$gname" = "" ]; then + gname=$part_name + _size=`expr $part_size \* $sizemult` + _offset=`expr $offset \* $sizemult` + echo -n " :pg#${_size}:og#${_offset}" >> $DT + echo ":tg=4.2BSD:bg#${blocksize}:fg#${fragsize}:\\" >> $DT + offset=`expr $offset + $part_size` + elif [ "$hname" = "" ]; then + hname=$part_name + _size=`expr $part_size \* $sizemult` + _offset=`expr $offset \* $sizemult` + echo -n " :ph#${_size}:oh#${_offset}" >> $DT + echo ":th=4.2BSD:bh#${blocksize}:fh#${fragsize}:\\" >> $DT + part_used=$partition + fi +done +echo " :pc#${disksize}:oc#0:" >> $DT +sync + +echo "" +echo "THIS IS YOUR LAST CHANCE!!!" +echo "" +echo -n "Are you SURE you want NetBSD installed on your hard drive? (yes/no) " +answer="" +while [ "$answer" = "" ]; do + getresp + case $resp in + yes|YES) + echo "" + echo "Here we go..." + answer=yes + ;; + no|NO) + echo "" + echo -n "OK, then. enter 'halt' to halt the machine. " + exit + ;; + *) + echo -n "I want a yes or no answer... well? " + ;; + esac +done + +echo "" +echo -n "Labeling disk $drivename..." +$DONTDOIT disklabel -w -r $drivename $labelname +echo " done." + +if [ "$sect_fwd" = "sf:" ]; then + echo -n "Initializing bad144 badblock table..." + $DONTDOIT bad144 $drivename 0 + echo " done." +fi + +echo "Initializing root filesystem, and mounting..." +$DONTDOIT newfs /dev/r${drivename}a $name +$DONTDOIT mount -v /dev/${drivename}a /mnt +if [ "$ename" != "" ]; then + echo "" + echo "Initializing $ename filesystem, and mounting..." + $DONTDOIT newfs /dev/r${drivename}e $name + $DONTDOIT mkdir -p /mnt/$ename + $DONTDOIT mount -v /dev/${drivename}e /mnt/$ename +fi +if [ "$fname" != "" ]; then + echo "" + echo "Initializing $fname filesystem, and mounting..." + $DONTDOIT newfs /dev/r${drivename}f $name + $DONTDOIT mkdir -p /mnt/$fname + $DONTDOIT mount -v /dev/${drivename}f /mnt/$fname +fi +if [ "$gname" != "" ]; then + echo "" + echo "Initializing $gname filesystem, and mounting..." + $DONTDOIT newfs /dev/r${drivename}g $name + $DONTDOIT mkdir -p /mnt/$gname + $DONTDOIT mount -v /dev/${drivename}g /mnt/$gname +fi +if [ "$hname" != "" ]; then + echo "" + echo "Initializing $hname filesystem, and mounting..." + $DONTDOIT newfs /dev/r${drivename}h $name + $DONTDOIT mkdir -p /mnt/$hname + $DONTDOIT mount -v /dev/${drivename}h /mnt/$hname +fi + +echo "" +echo "Populating filesystems with bootstrapping binaries and config files" +$DONTDOIT tar --one-file-system -cf - . | (cd /mnt ; tar --unlink -xpf - ) +$DONTDOIT cp /tmp/.hdprofile /mnt/.profile + +echo "" +echo -n "Creating an fstab..." +echo /dev/${drivename}a / ffs rw 1 1 | sed -e s,//,/, > $FSTAB +if [ "$ename" != "" ]; then + echo /dev/${drivename}e /$ename ffs rw 1 2 | sed -e s,//,/, >> $FSTAB +fi +if [ "$fname" != "" ]; then + echo /dev/${drivename}f /$fname ffs rw 1 3 | sed -e s,//,/, >> $FSTAB +fi +if [ "$gname" != "" ]; then + echo /dev/${drivename}g /$gname ffs rw 1 4 | sed -e s,//,/, >> $FSTAB +fi +if [ "$hname" != "" ]; then + echo /dev/${drivename}h /$hname ffs rw 1 5 | sed -e s,//,/, >> $FSTAB +fi +sync +echo " done." + +echo "" +echo "" +echo "OK! The preliminary work of setting up your disk is now complete." +echo "" +echo "The remaining tasks are:" +echo "" +echo "To copy a NetBSD kernel to the hard drive's root filesystem." +echo "Once accomplished, you can boot off the hard drive." +echo "" +echo "To load and install the NetBSD distribution sets." +echo "Currently the hard drive's root filesystem is mounted on /mnt" +echo "" +echo "Consult the installation notes which will describe how to" +echo "install the distribution sets and kernel. Post-installation" +echo "configuration is also discussed therein." +echo "" +echo "GOOD LUCK!" +echo "" diff --git a/distrib/arm32/floppies/inst/list b/distrib/arm32/floppies/inst/list new file mode 100644 index 00000000000..23a9fb8532e --- /dev/null +++ b/distrib/arm32/floppies/inst/list @@ -0,0 +1,11 @@ +# $NetBSD: list,v 1.1 1996/05/16 19:59:01 mark Exp $ + +# the disktab explanation file +COPY disktab.preinstall etc/disktab.preinstall + +# and the installation tools +COPY dot.profile .profile +COPY dot.instutils .instutils +COPY install.sh install +COPY dot.hdprofile tmp/.hdprofile +SPECIAL chmod 755 install diff --git a/distrib/arm32/floppies/list2sh.awk b/distrib/arm32/floppies/list2sh.awk new file mode 100644 index 00000000000..b92d8690460 --- /dev/null +++ b/distrib/arm32/floppies/list2sh.awk @@ -0,0 +1,55 @@ +# $NetBSD: list2sh.awk,v 1.1 1996/05/16 19:58:51 mark Exp $ + +BEGIN { + printf("cd ${CURDIR}\n"); + printf("\n"); +} +/^$/ || /^#/ { + print $0; + next; +} +$1 == "COPY" { + printf("echo '%s'\n", $0); + printf("rm -f ${TARGDIR}/%s\n", $3); + printf("cp %s ${TARGDIR}/%s\n", $2, $3); + next; +} +$1 == "LINK" { + printf("echo '%s'\n", $0); + printf("rm -f ${TARGDIR}/%s\n", $3); + printf("(cd ${TARGDIR}; ln %s %s)\n", $2, $3); + next; +} +$1 == "SYMLINK" { + printf("echo '%s'\n", $0); + printf("rm -f ${TARGDIR}/%s\n", $3); + printf("(cd ${TARGDIR}; ln -s %s %s)\n", $2, $3); + next; +} +$1 == "COPYDIR" { + printf("echo '%s'\n", $0); + printf("(cd ${TARGDIR}/%s && find . ! -name . | xargs /bin/rm -rf)\n", + $3); + printf("(cd %s && find . ! -name . | cpio -pdamu ${TARGDIR}/%s)\n", $2, + $3); + next; +} +$1 == "SPECIAL" { + printf("echo '%s'\n", $0); + printf("(cd ${TARGDIR};"); + for (i = 2; i <= NF; i++) + printf(" %s", $i); + printf(")\n"); + next; +} +{ + printf("echo '%s'\n", $0); + printf("echo 'Unknown keyword \"%s\" at line %d of input.'\n", $1, NR); + printf("exit 1\n"); + exit 1; +} +END { + printf("\n"); + printf("exit 0\n"); + exit 0; +} diff --git a/distrib/arm32/floppies/runlist.sh b/distrib/arm32/floppies/runlist.sh new file mode 100644 index 00000000000..65088762de5 --- /dev/null +++ b/distrib/arm32/floppies/runlist.sh @@ -0,0 +1,13 @@ +# $NetBSD: runlist.sh,v 1.1 1996/05/16 19:58:52 mark Exp $ + +if [ "X$1" = "X-d" ]; then + SHELLCMD=cat + shift +else + SHELLCMD="sh -e" +fi + +( while [ "X$1" != "X" ]; do + cat $1 + shift +done ) | awk -f ${TOPDIR}/list2sh.awk | ${SHELLCMD} diff --git a/distrib/arm32/floppies/upgr/Makefile b/distrib/arm32/floppies/upgr/Makefile new file mode 100644 index 00000000000..ad537b8f004 --- /dev/null +++ b/distrib/arm32/floppies/upgr/Makefile @@ -0,0 +1,8 @@ +# $NetBSD: Makefile,v 1.1 1996/05/16 19:59:15 mark Exp $ + +TOP= ${.CURDIR}/.. + +.include "${TOP}/Makefile.inc" +IMAGE= upgr-${REV}.fs + +.include "${TOP}/inst-common/Makefile.inc" diff --git a/distrib/arm32/floppies/upgr/dot.hdprofile b/distrib/arm32/floppies/upgr/dot.hdprofile new file mode 100644 index 00000000000..ba2e1b50303 --- /dev/null +++ b/distrib/arm32/floppies/upgr/dot.hdprofile @@ -0,0 +1,62 @@ +# $NetBSD: dot.hdprofile,v 1.1 1996/05/16 19:59:17 mark Exp $ +# +# Copyright (c) 1994 Christopher G. Demetriou +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions +# are met: +# 1. Redistributions of source code must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# 2. Redistributions in binary form must reproduce the above copyright +# notice, this list of conditions and the following disclaimer in the +# documentation and/or other materials provided with the distribution. +# 3. All advertising materials mentioning features or use of this software +# must display the following acknowledgement: +# This product includes software developed by Christopher G. Demetriou. +# 4. The name of the author may not be used to endorse or promote products +# derived from this software without specific prior written permission +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR +# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES +# OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. +# IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, +# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT +# NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF +# THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +# + +PATH=/sbin:/bin:/usr/bin:/usr/sbin:/ +export PATH +TERM=vt100 +export TERM + +umask 022 + +if [ "X${DONEPROFILE}" = "X" ]; then + DONEPROFILE=YES + + echo "Checking filesystems..." + fsck -y + + echo "Mounting filesystems..." + mount -a + + # set up some sane defaults + echo 'erase ^H, werase ^W, kill ^U, intr ^C' + stty newcrt werase ^W intr ^C kill ^U erase ^H 9600 + echo '' + + # run update, so that installed software is written as it goes. + update + + # pull in the functions that people will use from the shell prompt. + . /.commonutils + . /.upgrutils + + echo "Follow the installation directions to install the NetBSD" + echo "distribution sets." +fi diff --git a/distrib/arm32/floppies/upgr/dot.profile b/distrib/arm32/floppies/upgr/dot.profile new file mode 100644 index 00000000000..b57227cf8bd --- /dev/null +++ b/distrib/arm32/floppies/upgr/dot.profile @@ -0,0 +1,56 @@ +# $NetBSD +# +# Copyright (c) 1994 Christopher G. Demetriou +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions +# are met: +# 1. Redistributions of source code must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# 2. Redistributions in binary form must reproduce the above copyright +# notice, this list of conditions and the following disclaimer in the +# documentation and/or other materials provided with the distribution. +# 3. All advertising materials mentioning features or use of this software +# must display the following acknowledgement: +# This product includes software developed by Christopher G. Demetriou. +# 4. The name of the author may not be used to endorse or promote products +# derived from this software without specific prior written permission +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR +# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES +# OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. +# IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, +# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT +# NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF +# THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +# + +PATH=/sbin:/bin:/usr/bin:/usr/sbin:/ +export PATH +TERM=vt100 +export TERM + +umask 022 + +if [ "X${DONEPROFILE}" = "X" ]; then + DONEPROFILE=YES + + # set up some sane defaults + echo 'erase ^H, werase ^W, kill ^U, intr ^C' + stty newcrt werase ^W intr ^C kill ^U erase ^H 9600 + echo '' + + # run update, so that installed software is written as it goes. + update + + # pull in the functions that people will use from the shell prompt. + . /.commonutils + . /.upgrutils + + # run the upgrade script. + upgrade +fi diff --git a/distrib/arm32/floppies/upgr/dot.upgrutils b/distrib/arm32/floppies/upgr/dot.upgrutils new file mode 100644 index 00000000000..b0d102d5bd9 --- /dev/null +++ b/distrib/arm32/floppies/upgr/dot.upgrutils @@ -0,0 +1,58 @@ +# $NetBSD: dot.upgrutils,v 1.1 1996/05/16 19:59:19 mark Exp $ +# +# Copyright (c) 1994 Christopher G. Demetriou +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions +# are met: +# 1. Redistributions of source code must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# 2. Redistributions in binary form must reproduce the above copyright +# notice, this list of conditions and the following disclaimer in the +# documentation and/or other materials provided with the distribution. +# 3. All advertising materials mentioning features or use of this software +# must display the following acknowledgement: +# This product includes software developed by Christopher G. Demetriou. +# 4. The name of the author may not be used to endorse or promote products +# derived from this software without specific prior written permission +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR +# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES +# OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. +# IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, +# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT +# NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF +# THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +# + +# Upgrade cleanup utilites (functions), to make sure a recently-upgraded +# system is safely runnable. These are meant to be invoked from the shell +# prompt, by people installing NetBSD. + +Cleanup() +{ + upgrade_dir=/ + + if [ ! -f /etc/fstab ]; then + upgrade_dir=/mnt + fi + + echo "Cleaning up miscellaneous files in /etc..." + mv $upgrade_dir/etc/rc.bak $upgrade_dir/etc/rc + chroot $upgrade_dir /usr/sbin/pwd_mkdb -p /etc/master.passwd + chroot $upgrade_dir /bin/rm /etc/sendmail.fc > /dev/null 2>&1 + sync + echo "Done." + + echo "" + echo "All that's left to do now is to install a new NetBSD kernel" + echo "on your hard disk. You should now halt your machine using" + echo "the 'halt' command. Once the machine is halted, replace the" + echo "installation floppy with the kernel-copy floppy and hit any" + echo "key to reboot. Use the kernel-copy floppy to copy a kernel" + echo "to your hard disk." +} diff --git a/distrib/arm32/floppies/upgr/list b/distrib/arm32/floppies/upgr/list new file mode 100644 index 00000000000..9848d23b4f6 --- /dev/null +++ b/distrib/arm32/floppies/upgr/list @@ -0,0 +1,8 @@ +# $NetBSD: list,v 1.1 1996/05/16 19:59:20 mark Exp $ + +# and the upgrade tools +COPY dot.profile .profile +COPY dot.upgrutils .upgrutils +COPY upgrade.sh upgrade +COPY dot.hdprofile tmp/.hdprofile +SPECIAL chmod 755 upgrade diff --git a/distrib/arm32/floppies/upgr/upgrade.sh b/distrib/arm32/floppies/upgr/upgrade.sh new file mode 100644 index 00000000000..9e9c4dc0cbf --- /dev/null +++ b/distrib/arm32/floppies/upgr/upgrade.sh @@ -0,0 +1,255 @@ +#!/bin/sh +# +# $NetBSD: upgrade.sh,v 1.1 1996/05/16 19:59:21 mark Exp $ +# +# Copyright (c) 1994 Christopher G. Demetriou +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions +# are met: +# 1. Redistributions of source code must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# 2. Redistributions in binary form must reproduce the above copyright +# notice, this list of conditions and the following disclaimer in the +# documentation and/or other materials provided with the distribution. +# 3. All advertising materials mentioning features or use of this software +# must display the following acknowledgement: +# This product includes software developed by Christopher G. Demetriou. +# 4. The name of the author may not be used to endorse or promote products +# derived from this software without specific prior written permission +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR +# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES +# OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. +# IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, +# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT +# NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF +# THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +# + +# NetBSD upgrade script. +# In a perfect world, this would be a nice C program, with a reasonable +# user interface. + +stty erase ^H + +DT=/etc/disktab # /etc/disktab +FSTABDIR=/mnt/etc # /mnt/etc +#DONTDOIT=echo + +VERSION=1.1 +FSTAB=${FSTABDIR}/fstab + +getresp() { + read resp + if [ "X$resp" = "X" ]; then + resp=$1 + fi +} + +echo "Welcome to the NetBSD ${VERSION} upgrade program." +echo "" +echo "This program is designed to help you put the new version of NetBSD" +echo "on your hard disk, in a simple and rational way. To upgrade, you" +echo "must have plenty of free space on all partitions which will be" +echo "upgraded. If you have at least 1MB free on your root partition," +echo "and several free on your /usr patition, you should be fine." +echo "" +echo "As with anything which modifies your hard drive's contents, this" +echo "program can cause SIGNIFICANT data loss, and you are advised" +echo "to make sure your hard drive is backed up before beginning the" +echo "upgrade process." +echo "" +echo "Default answers are displyed in brackets after the questions." +echo "You can hit Control-C at any time to quit, but if you do so at a" +echo "prompt, you may have to hit return. Also, quitting in the middle of" +echo "the upgrade may leave your system in an inconsistent (and unusable)" +echo "state." +echo "" +echo -n "Proceed with upgrade? [n] " +getresp "n" +case "$resp" in + y*|Y*) + echo "Cool! Let's get to it..." + ;; + *) + echo "" + echo "OK, then. Enter 'halt' at the prompt to halt the" + echo "machine." + exit + ;; +esac + +# find out what units are possible, and query the user. +driveunits=`ls /dev/[sw]d?a | sed -e 's,/dev/\(...\)a,\1,g'` +if [ "X${driveunits}" = "X" ]; then + echo "FATAL ERROR:" + echo "No disk devices." + echo "This is probably a bug in the install disks." + echo "Exiting install program." + exit +fi + +echo "" +echo "The following disks are supported by this upgrade procedure:" +echo " "${driveunits} +echo "If your system was previously completely contained within the" +echo "disks listed above (i.e. if your system didn't occupy any space" +echo "on disks NOT listed above), this upgrade disk can upgrade your" +echo "system. If it cannot, hit Control-C at the prompt." +echo "" +while [ "X${drivename}" = "X" ]; do + echo -n "Which disk contains your root partion? " + getresp + otherdrives=`echo "${driveunits}" | sed -e s,${resp},,` + if [ "X${driveunits}" = "X${otherdrives}" ]; then + echo "" + echo "\"${resp}\" is an invalid drive name. Valid choices" + echo "are: "${driveunits} + echo "" + else + drivename=${resp} + fi +done + +echo "" +echo "Root partition is on ${drivename}a." + +echo "" +echo "Would you like to upgrade your file systems to the new file system" +echo -n "format? [y] " +getresp "y" +case "$resp" in + n*|N*) + echo "" + echo "You should upgrade your file systems with 'fsck -c 2'" + echo "as soon as is feasible, because the new file system" + echo "code is better-tested and more performant." + upgradefs=NO + ;; + *) + upgradefs=YES + ;; +esac + +if [ $upgradefs = YES ]; then + echo "" + echo "Upgrading the file system on ${drivename}a..." + + fsck -p -c 2 /dev/r${drivename}a + if [ $? != 0 ]; then + echo "FATAL ERROR: FILE SYSTEM UPGRADE FAILED." + echo "You should probably reboot the machine, fsck your" + echo "disk(s), and try the upgrade procedure again." + exit 1 + fi + echo "Done." +fi + +echo "" +echo "Mounting root partition on /mnt..." +mount /dev/${drivename}a /mnt +if [ $? != 0 ]; then + echo "FATAL ERROR: MOUNT FAILED." + echo "You should verify that your system is set up as you" + echo "described, and re-attempt the upgrade procedure." + exit 1 +fi +echo "Done." + +if [ $upgradefs = YES ]; then + echo "" + echo -n "Copying new fsck binary to your hard disk..." + if [ ! -d /mnt/sbin ]; then + mkdir /mnt/sbin + fi + cp /sbin/fsck /mnt/sbin/fsck + if [ $? != 0 ]; then + echo "FATAL ERROR: COPY FAILED." + echo "It in unclear why this error would occur. It looks" + echo "like you may end up having to upgrade by hand." + exit 1 + fi + echo " Done." + + echo "" + echo "Re-mounting root partition read-only..." + mount -u -o ro /dev/${drivename}a /mnt + if [ $? != 0 ]; then + echo "FATAL ERROR: RE-MOUNT FAILED." + echo "It in unclear why this error would occur. It looks" + echo "like you may end up having to upgrade by hand." + exit 1 + fi + echo "Done." + + echo "" + echo "Upgrading the rest of your file systems..." + chroot /mnt fsck -p -c 2 + if [ $? != 0 ]; then + echo "FATAL ERROR: FILE SYSTEM UPGRADE(S) FAILED." + echo "You should probably reboot the machine, fsck your" + echo "file system(s), and try the upgrade procedure" + echo "again." + exit 1 + fi + echo "Done." + + echo "" + echo "Re-mounting root partition read-write..." + mount -u -o rw /dev/${drivename}a /mnt + if [ $? != 0 ]; then + echo "FATAL ERROR: RE-MOUNT FAILED." + echo "It in unclear why this error would occur. It looks" + echo "like you may end up having to upgrade by hand." + exit 1 + fi + echo "Done." +fi + +echo "" +echo "Updating boot blocks on ${drivename}..." +disklabel -r $drivename > /mnt/tmp/${drivename}.label +if [ $? != 0 ]; then + echo "FATAL ERROR: READ OF DISK LABEL FAILED." + echo "It in unclear why this error would occur. It looks" + echo "like you may end up having to upgrade by hand." + exit 1 +fi +disklabel -R -B $drivename /mnt/tmp/${drivename}.label +if [ $? != 0 ]; then + echo "FATAL ERROR: UPDATE OF DISK LABEL FAILED." + echo "It in unclear why this error would occur. It looks" + echo "like you may end up having to upgrade by hand." + exit 1 +fi +echo "Done." + +echo "" +echo "Copying bootstrapping binaries and config files to the hard drive..." +$DONTDOIT cp /mnt/.profile /mnt/.profile.bak +$DONTDOIT tar --exclude etc --one-file-system -cf - . | (cd /mnt ; tar --unlink -xpf - ) +$DONTDOIT mv /mnt/etc/rc /mnt/etc/rc.bak +$DONTDOIT cp /tmp/.hdprofile /mnt/.profile + +echo "" +echo "Mounting remaining partitions..." +chroot /mnt mount -at ffs > /dev/null 2>&1 +echo "Done." + +echo "" +echo "" +echo "OK! The preliminary work of setting up your disk is now complete," +echo "and you can now upgrade the actual NetBSD software." +echo "" +echo "Right now, your hard disk is mounted on /mnt. You should consult" +echo "the installation notes to determine how to load and install the new" +echo "NetBSD distribution sets, and how to clean up after the upgrade" +echo "software, when you are done." +echo "" +echo "GOOD LUCK!" +echo "" |