diff options
author | Jason Downs <downsj@cvs.openbsd.org> | 1997-04-21 07:36:12 +0000 |
---|---|---|
committer | Jason Downs <downsj@cvs.openbsd.org> | 1997-04-21 07:36:12 +0000 |
commit | 065838601bc26d5b510b510063e19bfbebffa25d (patch) | |
tree | 297449ca8839f46648c972eedf8d6ae493234e4a /distrib/hp300 | |
parent | b589590030ead87cb21a5ed1b84e7b2509148ea7 (diff) |
miniroot has left the building.
Diffstat (limited to 'distrib/hp300')
-rw-r--r-- | distrib/hp300/miniroot/Makefile | 5 | ||||
-rw-r--r-- | distrib/hp300/miniroot/Makefile.inc | 4 | ||||
-rw-r--r-- | distrib/hp300/miniroot/dot.profile | 78 | ||||
-rw-r--r-- | distrib/hp300/miniroot/inst-common/Makefile.inc | 49 | ||||
-rw-r--r-- | distrib/hp300/miniroot/inst-common/instbin.conf | 27 | ||||
-rw-r--r-- | distrib/hp300/miniroot/inst-common/list | 100 | ||||
-rw-r--r-- | distrib/hp300/miniroot/inst-common/mtree.conf | 83 | ||||
-rw-r--r-- | distrib/hp300/miniroot/inst/Makefile | 8 | ||||
-rw-r--r-- | distrib/hp300/miniroot/inst/dot.profile | 78 | ||||
-rw-r--r-- | distrib/hp300/miniroot/inst/install.sh | 1485 | ||||
-rw-r--r-- | distrib/hp300/miniroot/inst/list | 11 | ||||
-rw-r--r-- | distrib/hp300/miniroot/inst/upgrade.sh | 1043 | ||||
-rw-r--r-- | distrib/hp300/miniroot/install.md | 516 | ||||
-rw-r--r-- | distrib/hp300/miniroot/list | 53 | ||||
-rw-r--r-- | distrib/hp300/miniroot/list2sh.awk | 55 | ||||
-rw-r--r-- | distrib/hp300/miniroot/runlist.sh | 13 |
16 files changed, 0 insertions, 3608 deletions
diff --git a/distrib/hp300/miniroot/Makefile b/distrib/hp300/miniroot/Makefile deleted file mode 100644 index a37f1d50bc5..00000000000 --- a/distrib/hp300/miniroot/Makefile +++ /dev/null @@ -1,5 +0,0 @@ -# $NetBSD: Makefile,v 1.1 1995/10/03 22:47:53 thorpej Exp $ - -SUBDIR= inst - -.include <bsd.subdir.mk> diff --git a/distrib/hp300/miniroot/Makefile.inc b/distrib/hp300/miniroot/Makefile.inc deleted file mode 100644 index 49fab8b07fc..00000000000 --- a/distrib/hp300/miniroot/Makefile.inc +++ /dev/null @@ -1,4 +0,0 @@ -# $NetBSD: Makefile.inc,v 1.2 1995/11/28 23:57:15 jtc Exp $ - -# Revision is 1.1 -REV= 11 diff --git a/distrib/hp300/miniroot/dot.profile b/distrib/hp300/miniroot/dot.profile deleted file mode 100644 index d9f20427482..00000000000 --- a/distrib/hp300/miniroot/dot.profile +++ /dev/null @@ -1,78 +0,0 @@ -# $NetBSD: dot.profile,v 1.1 1996/06/11 08:30:13 thorpej Exp $ -# -# Copyright (c) 1995 Jason R. Thorpe -# 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=hp300h -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 - - # run update, so that installed software is written as it goes. - update - - # get the terminal type - _forceloop="" - while [ "X${_forceloop}" = X"" ]; do - eval `tset -s -m ":?$TERM"` - if [ "X${TERM}" != X"unknown" ]; then - _forceloop="done" - fi - done - - # Installing or upgrading? - _forceloop="" - while [ "X${_forceloop}" = X"" ]; do - echo -n '(I)nstall or (U)pgrade? ' - read _forceloop - case "$_forceloop" in - i*|I*) - /install - ;; - - u*|U*) - /upgrade - ;; - - *) - _forceloop="" - ;; - esac - done -fi diff --git a/distrib/hp300/miniroot/inst-common/Makefile.inc b/distrib/hp300/miniroot/inst-common/Makefile.inc deleted file mode 100644 index ac46658a7ee..00000000000 --- a/distrib/hp300/miniroot/inst-common/Makefile.inc +++ /dev/null @@ -1,49 +0,0 @@ -# $NetBSD: Makefile.inc,v 1.1 1995/10/03 22:48:02 thorpej 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=512k count=10 - vnconfig -v -c ${VND_DEV} ${IMAGE} - newfs -m 0 -o space ${VND_RDEV} miniroot - 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/hp300/miniroot/inst-common/instbin.conf b/distrib/hp300/miniroot/inst-common/instbin.conf deleted file mode 100644 index 8b924a09819..00000000000 --- a/distrib/hp300/miniroot/inst-common/instbin.conf +++ /dev/null @@ -1,27 +0,0 @@ -# $NetBSD: instbin.conf,v 1.4 1995/11/14 10:12:36 thorpej Exp $ -# -# instbin.conf - configuration for hp300 miniroot - -srcdirs bin sbin usr.bin usr.sbin gnu/usr.bin usr.bin/vi - -progs basename cat cut chflags chmod chown chroot cp dd df disklabel -progs dmesg ed expr fsck ftp gawk grep hostname ifconfig init kill ln ls -progs mkdir mknod more mount mount_cd9660 mount_ffs mount_nfs mt mv newfs -progs netstat pax ping pwd reboot rm route rsh sed sh shutdown slattach sleep -progs sort strings stty sync test tip tset umount update - -# XXX catch vi; see above -progs common - -ln chown chgrp -ln gawk awk -ln pax tar -ln sh -sh # init invokes the shell this way -ln test [ -ln mount_cd9660 cd9660 -ln mount_ffs ffs -ln mount_nfs nfs -ln reboot halt -ln common vi # XXX catch vi; see above - -libs -ledit -lutil -lcurses -ltermcap -lcrypt -ll -lz -lm -lkvm diff --git a/distrib/hp300/miniroot/inst-common/list b/distrib/hp300/miniroot/inst-common/list deleted file mode 100644 index 58912444675..00000000000 --- a/distrib/hp300/miniroot/inst-common/list +++ /dev/null @@ -1,100 +0,0 @@ -# $NetBSD: list,v 1.4 1995/11/14 10:12:38 thorpej 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/hostname -LINK instbin bin/ln -LINK instbin bin/ls -LINK instbin bin/kill -LINK instbin bin/mkdir -LINK instbin bin/mt -LINK instbin bin/mv -LINK instbin bin/pwd -LINK instbin bin/rm -LINK instbin bin/sh -LINK instbin bin/stty -LINK instbin bin/sleep -LINK instbin bin/sync -LINK instbin bin/tar -LINK instbin bin/test -LINK instbin bin/[ -LINK instbin sbin/disklabel -LINK instbin sbin/dmesg -LINK instbin sbin/fsck -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_nfs -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 /instbin usr/bin/awk -SYMLINK /instbin usr/bin/basename -SYMLINK /instbin usr/bin/chflags -SYMLINK /instbin usr/bin/chgrp -SYMLINK /instbin usr/bin/cut -SYMLINK /instbin usr/bin/ftp -SYMLINK /instbin usr/bin/grep -SYMLINK /instbin usr/bin/more -SYMLINK /instbin usr/bin/netstat -SYMLINK /instbin usr/bin/rsh -SYMLINK /instbin usr/bin/sed -SYMLINK /instbin usr/bin/strings -SYMLINK /instbin usr/bin/sort -SYMLINK /instbin usr/bin/tip -SYMLINK /instbin usr/bin/tset -SYMLINK /instbin usr/bin/vi -SYMLINK /instbin usr/sbin/chown -SYMLINK /instbin usr/sbin/chroot -SYMLINK /instbin usr/sbin/update - -# We can only get this program this way. -COPY ${DESTDIR}/sbin/mount_mfs sbin/mount_mfs -SPECIAL chmod 555 sbin/mount_mfs - -# Minimize use of MFS -SYMLINK /tmp var/tmp - -# copy the MAKEDEV script and make some devices -COPY ${DESTDIR}/dev/MAKEDEV dev/MAKEDEV -COPY ${DESTDIR}/dev/MAKEDEV.local dev/MAKEDEV.local -SPECIAL cd dev; sh MAKEDEV all -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 -COPY ${DESTDIR}/etc/disktab etc/disktab.shadow -SYMLINK /tmp/disktab.shadow etc/disktab -SYMLINK /tmp/fstab.shadow etc/fstab -SYMLINK /tmp/resolv.conf.shadow etc/resolv.conf -SYMLINK /tmp/hosts etc/hosts - -# the zoneinfo -COPYDIR ${DESTDIR}/usr/share/zoneinfo usr/share/zoneinfo - -# and the termcap file -COPY ${TOPDIR}/../../../share/termcap/termcap.src usr/share/misc/termcap diff --git a/distrib/hp300/miniroot/inst-common/mtree.conf b/distrib/hp300/miniroot/inst-common/mtree.conf deleted file mode 100644 index 0ed90f9af58..00000000000 --- a/distrib/hp300/miniroot/inst-common/mtree.conf +++ /dev/null @@ -1,83 +0,0 @@ -# $NetBSD: mtree.conf,v 1.3 1995/11/14 10:12:39 thorpej 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 -.. - -# ./sbin -sbin -# ./sbin -.. - -# ./tmp -tmp mode=01777 -# ./tmp -.. - -# ./usr -usr - -# ./usr/bin -bin -# ./usr/bin -.. - -# ./usr/mdec -mdec -# ./usr/mdec -.. - -# ./usr/sbin -sbin -# ./usr/sbin -.. - -# ./usr/share -share - -# ./usr/share/misc -misc -# ./usr/share/misc -.. - -# ./usr/share/zoneinfo -zoneinfo -# ./usr/share/zoneinfo -.. - -# ./usr/share -.. - -# ./usr -.. - -# ./var -var - -# ./ -.. diff --git a/distrib/hp300/miniroot/inst/Makefile b/distrib/hp300/miniroot/inst/Makefile deleted file mode 100644 index a56484a0496..00000000000 --- a/distrib/hp300/miniroot/inst/Makefile +++ /dev/null @@ -1,8 +0,0 @@ -# $NetBSD: Makefile,v 1.1 1995/10/03 22:47:58 thorpej Exp $ - -TOP= ${.CURDIR}/.. - -.include "${TOP}/Makefile.inc" -IMAGE= inst-${REV}.fs - -.include "${TOP}/inst-common/Makefile.inc" diff --git a/distrib/hp300/miniroot/inst/dot.profile b/distrib/hp300/miniroot/inst/dot.profile deleted file mode 100644 index 6b89baff4de..00000000000 --- a/distrib/hp300/miniroot/inst/dot.profile +++ /dev/null @@ -1,78 +0,0 @@ -# $NetBSD: dot.profile,v 1.2 1995/11/11 06:24:47 thorpej Exp $ -# -# Copyright (c) 1995 Jason R. Thorpe -# 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=hp300h -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 - - # run update, so that installed software is written as it goes. - update - - # get the terminal type - _forceloop="" - while [ "X${_forceloop}" = X"" ]; do - eval `tset -s -m ":?$TERM"` - if [ "X${TERM}" != X"unknown" ]; then - _forceloop="done" - fi - done - - # Installing or upgrading? - _forceloop="" - while [ "X${_forceloop}" = X"" ]; do - echo -n '(I)nstall or (U)pgrade? ' - read _forceloop - case "$_forceloop" in - i*|I*) - /install - ;; - - u*|U*) - /upgrade - ;; - - *) - _forceloop="" - ;; - esac - done -fi diff --git a/distrib/hp300/miniroot/inst/install.sh b/distrib/hp300/miniroot/inst/install.sh deleted file mode 100644 index 27d87d0d65e..00000000000 --- a/distrib/hp300/miniroot/inst/install.sh +++ /dev/null @@ -1,1485 +0,0 @@ -#!/bin/sh -# $OpenBSD: install.sh,v 1.6 1996/06/29 05:54:09 tholo Exp $ -# $NetBSD: install.sh,v 1.7 1996/02/28 00:44:01 thorpej Exp $ -# -# Copyright (c) 1996 The NetBSD Foundation, Inc. -# All rights reserved. -# -# This code is derived from software contributed to The NetBSD Foundation -# by Jason R. Thorpe. -# -# 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 NetBSD -# Foundation, Inc. and its contributors. -# 4. Neither the name of The NetBSD Foundation 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 NETBSD FOUNDATION, INC. 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. -# - -# OpenBSD installation script. -# In a perfect world, this would be a nice C program, with a reasonable -# user interface. - -VERSION=1.1A -export VERSION # XXX needed in subshell -ROOTDISK="" # filled in below -FILESYSTEMS="/tmp/filesystems" # used thoughout -FQDN="" # domain name - -trap "umount /tmp > /dev/null 2>&1" 0 - -getresp() { - read resp - if [ "X$resp" = "X" ]; then - resp=$1 - fi -} - -isin() { -# test the first argument against the remaining ones, return succes on a match - _a=$1; shift - while [ $# != 0 ]; do - if [ "$_a" = "$1" ]; then return 0; fi - shift - done - return 1 -} - -rmel() { -# remove first argument from list formed by the remaining arguments - _a=$1; shift - while [ $# != 0 ]; do - if [ "$_a" != "$1" ]; then - echo "$1"; - fi - shift - done -} - -twiddle() { -# spin the propeller so we don't get bored - while : ; do - sleep 1; echo -n "/"; - sleep 1; echo -n "-"; - sleep 1; echo -n "\\"; - sleep 1; echo -n "|"; - done > /dev/tty & echo $! -} - -# -# machine dependent section -# -md_get_diskdevs() { - # return available disk devices - dmesg | grep "^rd.*:" | awk -F: '{print $1}' | sort -u - dmesg | grep "^sd.*:*cylinders" | awk -F: '{print $1}' | sort -u -} - -md_get_cddevs() { - # return available CD-ROM devices - dmesg | grep "sd.*:*CD-ROM" | awk -F: '{print $1}' | sort -u -} - -md_get_ifdevs() { - # return available network interfaces - dmesg | grep "^le.*:" | awk -F: '{print $1}' | sort -u -} - -md_installboot() { - # $1 is the root disk - - echo -n "Installing boot block..." - disklabel -W ${1} - disklabel -B ${1} - echo "done." -} - -md_checkfordisklabel() { - # $1 is the disk to check - - disklabel -r $1 > /dev/null 2> /tmp/checkfordisklabel - if grep "no disk label" /tmp/checkfordisklabel; then - rval="1" - elif grep "disk label corrupted" /tmp/checkfordisklabel; then - rval="2" - else - rval="0" - fi - - rm -f /tmp/checkfordisklabel -} - -hp300_init_label_scsi_disk() { - # $1 is the disk to label - - # Name the disks we install in the temporary fstab. - if [ "X${_disk_instance}" = "X" ]; then - _disk_instance="0" - else - _disk_instance=`expr $_disk_instance + 1` - fi - _cur_disk_name="install-disk-${_disk_instance}" - - # Get geometry information from the user. - more << \__scsi_label_1 - -You will need to provide some information about your disk's geometry. -Geometry info for SCSI disks was printed at boot time. If that information -is not available, use the information provided in your disk's manual. -Please note that the geometry printed at boot time is preferred. - -IMPORTANT NOTE: due to a limitation in the disklabel(8) program, the -number of cylinders on the disk will be increased by 1 so that the initial -label can be placed on disk for editing. When the disklabel editor appears, -make absolutely certain you subtract 1 from the total number of cylinders, -and adjust the size of partition 'c' such that: - - size = (sectors per track) * (tracks per cyl) * (total cylinders) - -Note that the disklabel editor will be run twice; once to set the size of -partition 'c' and correct the geometry, and again so that you may correctly -edit the partition map. This is to work around the afore mentioned -limitation in disklabel(8). Apologies offered in advance. - -__scsi_label_1 - - # Give the opportunity to review the boot messages. - echo -n "Review boot messages now? [y] " - getresp "y" - case "$resp" in - y*|Y*) - (echo ""; dmesg; echo "") | more - ;; - - *) - ;; - esac - - echo "" - echo -n "Number of bytes per disk sector? [512] " - getresp "512" - _secsize="$resp" - - resp="" # force one iteration - while [ "X${resp}" = "X" ]; do - echo -n "Number of cylinders? " - getresp "" - done - _cylinders="$resp" - _fudge_cyl=`expr $_cylinders + 1` - - resp="" # force one iteration - while [ "X${resp}" = "X" ]; do - echo -n "Number of tracks (heads)? " - getresp "" - done - _tracks_per_cyl="$resp" - - resp="" # force one iteration - while [ "X${resp}" = "X" ]; do - echo -n "Number of disk sectors (blocks)? " - getresp "" - done - _nsectors="$resp" - - # Calculate some values we need. - _sec_per_cyl=`expr $_nsectors / $_cylinders` - _sec_per_track=`expr $_sec_per_cyl / $_tracks_per_cyl` - _new_c_size=`expr $_sec_per_track \* $_tracks_per_cyl \* $_cylinders` - - # Emit a disktab entry, suitable for getting started. - # What we have is a `c' partition with the total number of - # blocks, and an `a' partition with 1 sector; just large enough - # to open. Don't ask. - echo "" >> /etc/disktab - echo "# Created by install" >> /etc/disktab - echo "${_cur_disk_name}:\\" >> /etc/disktab - echo -n " :ty=winchester:ns#${_sec_per_track}:" >> /etc/disktab - echo "nt#${_tracks_per_cyl}:nc#${_fudge_cyl}:\\" >> /etc/disktab - echo " :pa#1:\\" >> /etc/disktab - echo " :pc#${_nsectors}:" >> /etc/disktab - - # Ok, here's what we need to do. First of all, we install - # this initial label by opening the `c' partition of the disk - # and using the `-r' flag for disklabel(8). However, because - # of limitations in disklabel(8), we've had to fudge the number - # of cylinders up 1 so that disklabel(8) doesn't complain about - # `c' running past the end of the disk, which can be quite - # common even with OEM HP drives! So, we've given ourselves - # an `a' partition, which is the minimum needed to open the disk - # so that we can perform the DIOCWDLABEL ioctl. So, once the - # initial label is installed, we open the `a' partition so that - # we can fix up the number of cylinders and make the size of - # `c' come out to (ncyl * ntracks_per_cyl * nsec_per_track). - # After that's done, we re-open `c' and let the user actually - # edit the partition table. It's horrible, I know. Bleh. - - disklabel -W ${1} - if ! disklabel -w -r ${1} ${_cur_disk_name}; then - echo "" - echo "ERROR: can't bootstrap disklabel!" - rval="1" - return - fi - - echo "" - echo "The disklabel editor will now start. During this phase, you" - echo "must reset the 'cylinders' value to ${_cylinders}, and adjust" - echo "the size of partition 'c' to ${_new_c_size}. Do not modify" - echo "the partition map at this time. You will have the opportunity" - echo "to do so in a moment." - echo "" - echo -n "Press <return> to continue. " - getresp "" - - disklabel -W ${1} - if ! disklabel -e /dev/r${1}a; then - echo "" - echo "ERROR: can't fixup geometry!" - rval="1" - return - fi - - cat << \__explain_motives_2 - -Now that you have corrected the geometry of your disk, you may edit the -partition map. Don't forget to fill in the fsize (frag size), bsize -(filesystem block size), and cpg (cylinders per group) values. If you -are unsure what these should be, use: - - fsize: 1024 - bsize: 4096 - cpg: 16 - -__explain_motives_2 - echo -n "Press <return> to continue. " - getresp "" - - rval="0" - return -} - -hp300_init_label_hpib_disk() { - # $1 is the disk to label - - # We look though the boot messages attempting to find - # the model number for the provided disk. - _hpib_disktype="" - if dmesg | grep "${1}: " > /dev/null 2>&1; then - _hpib_disktype=HP`dmesg | grep "${1}: " | sort -u | \ - awk '{print $2}'` - fi - if [ "X${_hpib_disktype}" = "X" ]; then - echo "" - echo "ERROR: $1 doesn't appear to exist?!" - rval="1" - return - fi - - # Peer through /etc/disktab to see if the disk has a "default" - # layout. If it doesn't, we have to treat it like a SCSI disk; - # i.e. prompt for geometry, and create a default to place - # on the disk. - if ! grep "${_hpib_disktype}[:|]" /etc/disktab > /dev/null \ - 2>&1; then - echo "" - echo "WARNING: can't find defaults for $1 ($_hpib_disktype)" - echo "" - hp300_init_label_scsi_disk $1 - return - fi - - # We've found the defaults. Now use them to place an initial - # disklabel on the disk. - # XXX What kind of ugliness to we have to deal with to get around - # XXX stupidity on the part of disklabel semantics? - disklabel -W ${1} - if ! disklabel -r -w ${1} $_hpib_disktype; then - # Error message displayed by disklabel(8) - echo "" - echo "ERROR: can't install default label!" - echo "" - echo -n "Try a different method? [y] " - getresp "y" - case "$resp" in - y*|Y*) - hp300_init_label_scsi_disk $1 - return - ;; - - *) - rval="1" - return - ;; - esac - fi - - rval="0" - return -} - -md_labeldisk() { - # $1 is the disk to label - - # Check to see if there is a disklabel present on the device. - # If so, we can just edit it. If not, we must first install - # a default label. - md_checkfordisklabel $1 - case "$rval" in - 0) - # Go ahead and just edit the disklabel. - disklabel -W $1 - disklabel -e $1 - ;; - - *) - echo -n "No disklabel present, installing a default for type: " - case "$1" in - rd*) - echo "HP-IB" - hp300_init_label_hpib_disk $1 - ;; - - sd*) - echo "SCSI" - hp300_init_label_scsi_disk $1 - ;; - - *) - # Shouldn't happen, but... - echo "unknown?! Giving up." - return; - ;; - esac - - # Check to see if installing the default was - # successful. If so, go ahead and pop into the - # disklabel editor. - if [ "X${rval}" != X"0" ]; then - echo "Sorry, can't label this disk." - echo "" - return; - fi - - # We have some defaults installed. Pop into - # the disklabel editor. - disklabel -W $1 - if ! disklabel -e $1; then - echo "" - echo "ERROR: couldn't set partition map for $1" - echo "" - fi - esac -} - - # Note, while they might not seem machine-dependent, the - # welcome banner and the punt message may contain information - # and/or instructions specific to the type of machine. - -md_welcome_banner() { -( - echo "" - echo "Welcome to the OpenBSD/hp300 ${VERSION} installation program." - cat << \__welcome_banner_1 - -This program is designed to help you install OpenBSD on your system in a -simple and rational way. You'll be asked several questions, and it would -probably be useful to have your disk's hardware manual, the installation -notes, and a calculator handy. - -In particular, you will need to know some reasonably detailed -information about your disk's geometry. This program can determine -some limited information about certain specific types of HP-IB disks. -If you have SCSI disks, however, prior knowledge of disk geometry -is absolutely essential. The kernel will attempt to display geometry -information for SCSI disks during boot, if possible. If you did not -make it note of it before, you may wish to reboot and jot down your -disk's geometry before proceeding. - -As with anything which modifies your hard disk's contents, this -program can cause SIGNIFICANT data loss, and you are advised -to make sure your hard drive is backed up before beginning the -installation process. - -Default answers are displyed in brackets after the questions. -You can hit Control-C at any time to quit, but if you do so at a -prompt, you may have to hit return. Also, quitting in the middle of -installation may leave your system in an inconsistent state. - -__welcome_banner_1 -) | more -} - -md_not_going_to_install() { - cat << \__not_going_to_install_1 - -OK, then. Enter 'halt' at the prompt to halt the machine. Once the -machine has halted, power-cycle the system to load new boot code. - -__not_going_to_install_1 -} - -md_congrats() { - cat << \__congratulations_1 - -CONGRATULATIONS! You have successfully installed OpenBSD! To boot the -installed system, enter halt at the command prompt. Once the system has -halted, power-cycle the machine in order to load new boot code. Make sure -you boot from the root disk. - -__congratulations_1 -} - -# end of machine dependent section - -do_mfs_mount() { - # $1 is the mount point - # $2 is the size in DEV_BIZE blocks - - umount $1 > /dev/null 2>&1 - if ! mount_mfs -s $2 swap $1 ; then - cat << \__mfs_failed_1 - -FATAL ERROR: Can't mount the memory filesystem. - -__mfs_failed_1 - exit - fi - - # Bleh. Give mount_mfs a chance to DTRT. - sleep 2 -} - -getrootdisk() { - cat << \__getrootdisk_1 - -The installation program needs to know which disk to consider -the root disk. Note the unit number may be different than -the unit number you used in the standalone installation -program. - -Available disks are: - -__getrootdisk_1 - _DKDEVS=`md_get_diskdevs` - echo "$_DKDEVS" - echo "" - echo -n "Which disk is the root disk? " - getresp "" - if isin $resp $_DKDEVS ; then - ROOTDISK="$resp" - else - echo "" - echo "The disk $resp does not exist." - ROOTDISK="" - fi -} - -labelmoredisks() { - cat << \__labelmoredisks_1 - -You may label the following disks: - -__labelmoredisks_1 - echo "$_DKDEVS" - echo "" - echo -n "Label which disk? [done] " - getresp "done" - case "$resp" in - done) - ;; - - *) - if echo "$_DKDEVS" | grep "^$resp" > /dev/null ; then - md_labeldisk $resp - else - echo "" - echo "The disk $resp does not exist." - fi - ;; - esac -} - -addhostent() { - # $1 - IP address - # $2 - symbolic name - - # Create an entry in the hosts table. If no host table - # exists, create one. If the IP address already exists, - # replace it's entry. - if [ ! -f /tmp/hosts ]; then - echo "127.0.0.1 localhost" > /tmp/hosts - fi - - if grep "^$1 " /tmp/hosts > /dev/null; then - grep -v "^$1 " /tmp/hosts > /tmp/hosts.new - mv /tmp/hosts.new /tmp/hosts - fi - - echo "$1 $2 $2.$FQDN" >> /tmp/hosts -} - -addifconfig() { - # $1 - interface name - # $2 - interface symbolic name - # $3 - interface IP address - # $4 - interface netmask - - # Create a hostname.* file for the interface. - echo "inet $2 $4" > /tmp/hostname.$1 - - addhostent $3 $2 -} - -configurenetwork() { - cat << \__configurenetwork_1 - -You may configure the following network interfaces: - -__configurenetwork_1 - - _IFS=`md_get_ifdevs` - echo $_IFS - echo "" - echo -n "Configure which interface? [done] " - getresp "done" - case "$resp" in - done) - ;; - - *) - if isin $resp $_IFS ; then - _interface_name=$resp - - # Keep in the list in case it's misconfigured - # and the user want's to re-do it. - - # Get IP address - resp="" # force one iteration - while [ "X${resp}" = X"" ]; do - echo -n "IP address? " - getresp "" - _interface_ip=$resp - done - - # Get symbolic name - resp="" # force one iteration - while [ "X${resp}" = X"" ]; do - echo -n "Symbolic (host) name? " - getresp "" - _interface_symname=$resp - done - - # Get netmask - resp="" # force one iteration - while [ "X${resp}" = X"" ]; do - echo -n "Netmask? " - getresp "" - _interface_mask=$resp - done - - # Configure the interface. If it - # succeeds, add it to the permanent - # network configuration info. - ifconfig ${_interface_name} down - if ifconfig ${_interface_name} inet \ - ${_interface_ip} \ - netmask ${_interface_mask} up ; then - addifconfig \ - ${_interface_name} \ - ${_interface_symname} \ - ${_interface_ip} \ - ${_interface_mask} - fi - else - echo "" - echo "The interface $resp does not exist." - fi - ;; - esac -} - -install_ftp() { - # Get several parameters from the user, and create - # a shell script that directs the appropriate - # commands into ftp. - cat << \__install_ftp_1 - -This is an automated ftp-based installation process. You will be asked -several questions. The correct set of commands will be placed in a script -that will be fed to ftp(1). - -__install_ftp_1 - # Get server IP address - resp="" # force one iteration - while [ "X${resp}" = X"" ]; do - echo -n "Server IP? [${_ftp_server_ip}] " - getresp "${_ftp_server_ip}" - _ftp_server_ip=$resp - done - - # Get server directory - resp="" # force one iteration - while [ "X${resp}" = X"" ]; do - echo -n "Server directory? [${_ftp_server_dir}] " - getresp "${_ftp_server_dir}" - _ftp_server_dir=$resp - done - - # Get login name - resp="" # force one iteration - while [ "X${resp}" = X"" ]; do - echo -n "Login? [${_ftp_server_login}] " - getresp "${_ftp_server_login}" - _ftp_server_login=$resp - done - - # Get password - resp="" # force one iteration - while [ "X${resp}" = X"" ]; do - echo -n "Password? [${_ftp_server_password}] " - getresp "${_ftp_server_password}" - _ftp_server_password=$resp - done - - # Get list of files for mget. - cat << \__install_ftp_2 - -You will now be asked for files to extract. Enter one file at a time. -When you are done entering files, enter 'done'. - -__install_ftp_2 - echo "#!/bin/sh" > /tmp/ftp-script.sh - echo "cd /mnt" >> /tmp/ftp-script.sh - echo "ftp -i -n $_ftp_server_ip << \__end_commands" >> \ - /tmp/ftp-script.sh - echo "user $_ftp_server_login $_ftp_server_password" >> \ - /tmp/ftp-script.sh - echo "bin" >> /tmp/ftp-script.sh - echo "cd $_ftp_server_dir" >> /tmp/ftp-script.sh - - resp="" # force one interation - while [ "X${resp}" != X"done" ]; do - echo -n "File? [done] " - getresp "done" - if [ "X${resp}" = X"done" ]; then - break - fi - - _ftp_file=`echo ${resp} | awk '{print $1}'` - echo "get ${_ftp_file} |\"tar -xzvpf -\"" >> \ - /tmp/ftp-script.sh - done - - echo "quit" >> /tmp/ftp-script.sh - echo "__end_commands" >> /tmp/ftp-script.sh - - sh /tmp/ftp-script.sh - rm -f /tmp/ftp-script.sh - echo "Extraction complete." -} - -install_common_nfs_cdrom() { - # $1 - directory containing file - - # Get the name of the file. - resp="" # force one iteration - while [ "X${resp}" = X"" ]; do - echo -n "File name? " - getresp "" - done - _common_filename="/mnt2/$1/$resp" - - # Ensure file exists - if [ ! -f $_common_filename ]; then - echo "File $_common_filename does not exist. Check to make" - echo "sure you entered the information properly." - return - fi - - # Extract file - cat $_common_filename | (cd /mnt; tar -xzvpf -) - echo "Extraction complete." -} - -install_cdrom() { - # Get the cdrom device info - cat << \__install_cdrom_1 - -The following CD-ROM devices are installed on your system; please select -the CD-ROM device containing the installation media: - -__install_cdrom_1 - _CDDEVS=`md_get_cddevs` - echo "$_CDDEVS" - echo "" - echo -n "Which is the CD-ROM with the installation media? [abort] " - getresp "abort" - case "$resp" in - abort) - echo "Aborting." - return - ;; - - *) - if isin $resp $_CDDEVS ; then - _cdrom_drive=$resp - else - echo "" - echo "The CD-ROM $resp does not exist." - echo "Aborting." - return - fi - ;; - esac - - # Get partition - resp="" # force one iteration - while [ "X${resp}" = X"" ]; do - echo -n "Partition? [c] " - getresp "c" - case "$resp" in - [a-h]) - _cdrom_partition=$resp - ;; - - *) - echo "Invalid response: $resp" - resp="" # force loop to repeat - ;; - esac - done - - # Ask for filesystem type - cat << \__install_cdrom_2 - -There are two CD-ROM filesystem types currently supported by this program: - 1) ISO-9660 (cd9660) - 2) Berkeley Fast Filesystem (ffs) - -__install_cdrom_2 - resp="" # force one iteration - while [ "X${resp}" = X"" ]; do - echo -n "Which filesystem type? [cd9660] " - getresp "cd9660" - case "$resp" in - cd9660|ffs) - _cdrom_filesystem=$resp - ;; - - *) - echo "Invalid response: $resp" - resp="" # force loop to repeat - ;; - esac - done - - # Mount the CD-ROM - if ! mount -t ${_cdrom_filesystem} -o ro \ - /dev/${_cdrom_drive}${_cdrom_partition} /mnt2 ; then - echo "Cannot mount CD-ROM drive. Aborting." - return - fi - - # Get the directory where the file lives - resp="" # force one iteration - while [ "X${resp}" = X"" ]; do - echo "Enter the directory relative to the mount point that" - echo -n "contains the file. [${_cdrom_directory}] " - getresp "${_cdrom_directory}" - done - _cdrom_directory=$resp - - install_common_nfs_cdrom ${_cdrom_directory} - umount -f /mnt2 > /dev/null 2>&1 -} - -install_nfs() { - # Get the IP address of the server - resp="" # force one iteration - while [ "X${resp}" = X"" ]; do - echo -n "Server IP address? [${_nfs_server_ip}] " - getresp "${_nfs_server_ip}" - done - _nfs_server_ip=$resp - - # Get server path to mount - resp="" # force one iteration - while [ "X${resp}" = X"" ]; do - echo -n "Filesystem on server to mount? [${_nfs_server_path}] " - getresp "${_nfs_server_path}" - done - _nfs_server_path=$resp - - # Determine use of TCP - echo -n "Use TCP transport (only works with capable NFS server)? [n] " - getresp "n" - case "$resp" in - y*|Y*) - _nfs_tcp="-T" - ;; - - *) - _nfs_tcp="" - ;; - esac - - # Mount the server - if ! mount_nfs $_nfs_tcp ${_nfs_server_ip}:${_nfs_server_path} \ - /mnt2 ; then - echo "Cannot mount NFS server. Aborting." - return - fi - - # Get the directory where the file lives - resp="" # force one iteration - while [ "X${resp}" = X"" ]; do - echo "Enter the directory relative to the mount point that" - echo -n "contains the file. [${_nfs_directory}] " - getresp "${_nfs_directory}" - done - _nfs_directory=$resp - - install_common_nfs_cdrom ${_nfs_directory} - umount -f /mnt2 > /dev/null 2>&1 -} - -install_tape() { - # Get the name of the tape from the user. - cat << \__install_tape_1 - -The installation program needs to know which tape device to use. Make -sure you use a "no rewind on close" device. - -__install_tape_1 - _tape=`basename $TAPE` - resp="" # force one iteration - while [ "X${resp}" = X"" ]; do - echo -n "Name of tape device? [${_tape}]" - getresp "${_tape}" - done - _tape=`basename $resp` - TAPE="/dev/${_tape}" - if [ ! -c $TAPE ]; then - echo "$TAPE does not exist or is not a character special file." - echo "Aborting." - return - fi - export TAPE - - # Rewind the tape device - echo -n "Rewinding tape..." - if ! mt rewind ; then - echo "$TAPE may not be attached to the system or may not be" - echo "a tape device. Aborting." - return - fi - echo "done." - - # Get the file number - resp="" # force one iteration - while [ "X${resp}" = X"" ]; do - echo -n "File number? " - getresp "" - case "$resp" in - [1-9]*) - _nskip=`expr $resp - 1` - ;; - - *) - echo "Invalid file number ${resp}." - resp="" # fore loop to repeat - ;; - esac - done - - # Skip to correct file. - echo -n "Skipping to source file..." - if [ "X${_nskip}" != X"0" ]; then - if ! mt fsf $_nskip ; then - echo "Could not skip $_nskip files. Aborting." - return - fi - fi - echo "done." - - cat << \__install_tape_2 - -There are 2 different ways the file can be stored on tape: - - 1) an image of a gzipped tar file - 2) a standard tar image - -__install_tape_2 - resp="" # force one iteration - while [ "X${resp}" = X"" ]; do - getresp "1" - case "$resp" in - 1) - ( - cd /mnt - dd if=$TAPE | tar -xzvpf - - ) - ;; - - 2) - ( - cd /mnt - dd if=$TAPE | tar -xzvpf - - ) - ;; - - *) - echo "Invalid response: $resp." - resp="" # force loop to repeat - ;; - esac - done - echo "Extraction complete." -} - -get_timezone() { -cat << \__get_timezone_1 - -Select a time zone: - -__get_timezone_1 - ls /usr/share/zoneinfo # XXX - echo "" - if [ X"$TZ" = "X" ]; then - TZ=`ls -l /etc/timezone 2>/dev/null | awk -F/ '{print $NF}'` - fi - echo -n "What timezone are you in [$TZ]? " - getresp "$TZ" - case "$resp" in - "") - echo "Timezone defaults to GMT" - TZ="GMT" - ;; - *) - TZ="$resp" - ;; - esac - export TZ -} - -# Good {morning,afternoon,evening,night}. -md_welcome_banner -echo -n "Proceed with installation? [n] " -getresp "n" -case "$resp" in - y*|Y*) - echo "Cool! Let's get to it..." - ;; - *) - md_not_going_to_install - exit - ;; -esac - -# XXX Work around vnode aliasing bug (thanks for the tip, Chris...) -ls -l /dev > /dev/null 2>&1 - -# We don't like it, but it sure makes a few things a lot easier. -do_mfs_mount "/tmp" "2048" - -# Install the shadowed disktab file; lets us write to it for temporary -# purposes without mounting the miniroot read-write. -cp /etc/disktab.shadow /tmp/disktab.shadow - -while [ "X${ROOTDISK}" = "X" ]; do - getrootdisk -done - -# Make sure there's a disklabel there. If there isn't, puke after -# disklabel prints the error message. -md_checkfordisklabel ${ROOTDISK} -case "$resp" in - 1) - cat << \__disklabel_not_present_1 - -FATAL ERROR: There is no disklabel present on the root disk! You must -label the disk with SYS_INST before continuing. - -__disklabel_not_present_1 - exit - ;; - - 2) - cat << \__disklabel_corrupted_1 - -FATAL ERROR: The disklabel on the root disk is corrupted! You must -re-label the disk with SYS_INST before continuing. - -__disklabel_corrupted_1 - exit - ;; - - *) - ;; -esac - -# Give the user the opportinuty to edit the root disklabel. -cat << \__disklabel_notice_1 - -You have already placed a disklabel onto the target root disk. -However, due to the limitations of the standalone program used -you may want to edit that label to change partition type information. -You will be given the opporunity to do that now. Note that you may -not change the size or location of any presently open partition. - -__disklabel_notice_1 -echo -n "Do you wish to edit the root disklabel? [y] " -getresp "y" -case "$resp" in - y*|Y*) - disklabel -W ${ROOTDISK} - disklabel -e ${ROOTDISK} - ;; - - *) - ;; -esac - -cat << \__disklabel_notice_2 - -You will now be given the opportunity to place disklabels on any additional -disks on your system. -__disklabel_notice_2 - -_DKDEVS=`rmel ${ROOTDISK} ${_DKDEVS}` -resp="X" # force at least one iteration -while [ "X$resp" != X"done" ]; do - labelmoredisks -done - -# Assume partition 'a' of $ROOTDISK is for the root filesystem. Loop and -# get the rest. -# XXX ASSUMES THAT THE USER DOESN'T PROVIDE BOGUS INPUT. -cat << \__get_filesystems_1 - -You will now have the opportunity to enter filesystem information. -You will be prompted for device name and mount point (full path, -including the prepending '/' character). - -Note that these do not have to be in any particular order. You will -be given the opportunity to edit the resulting 'fstab' file before -any of the filesystems are mounted. At that time you will be able -to resolve any filesystem order dependencies. - -__get_filesystems_1 - -echo "The following will be used for the root filesystem:" -echo " ${ROOTDISK}a /" - -echo "${ROOTDISK}a /" > ${FILESYSTEMS} - -resp="X" # force at least one iteration -while [ "X$resp" != X"done" ]; do - echo "" - echo -n "Device name? [done] " - getresp "done" - case "$resp" in - done) - ;; - - *) - _device_name=`basename $resp` - - # force at least one iteration - _first_char="X" - while [ "X${_first_char}" != X"/" ]; do - echo -n "Mount point? " - getresp "" - _mount_point=$resp - if [ "X${_mount_point}" = X"/" ]; then - # Invalid response; no multiple roots - _first_char="X" - else - _first_char=`echo ${_mount_point} | \ - cut -c 1` - fi - done - echo "${_device_name} ${_mount_point}" >> \ - ${FILESYSTEMS} - resp="X" # force loop to repeat - ;; - esac -done - -echo "" -echo "You have configured the following devices and mount points:" -echo "" -cat ${FILESYSTEMS} -echo "" -echo "Filesystems will now be created on these devices. If you made any" -echo -n "mistakes, you may edit this now. Edit? [n] " -getresp "n" -case "$resp" in - y*|Y*) - vi ${FILESYSTEMS} - ;; - *) - ;; -esac - -# Loop though the file, place filesystems on each device. -echo "Creating filesystems..." -( - while read line; do - _device_name=`echo $line | awk '{print $1}'` - newfs /dev/r${_device_name} - echo "" - done -) < ${FILESYSTEMS} - -# Get network configuration information, and store it for placement in the -# root filesystem later. -cat << \__network_config_1 -You will now be given the opportunity to configure the network. This will -be useful if you need to transfer the installation sets via FTP or NFS. -Even if you choose not to transfer installation sets that way, this -information will be preserved and copied into the new root filesystem. - -Note, enter all symbolic host names WITHOUT the domain name appended. -I.e. use 'hostname' NOT 'hostname.domain.name'. - -__network_config_1 -echo -n "Configure the network? [y] " -getresp "y" -case "$resp" in - y*|Y*) - echo -n "Enter system hostname: " - resp="" # force at least one iteration - while [ "X${resp}" = X"" ]; do - getresp "" - done - hostname $resp - echo $resp > /tmp/myname - - echo -n "Enter DNS domain name: " - resp="" # force at least one iteration - while [ "X${resp}" = X"" ]; do - getresp "" - done - FQDN=$resp - - resp="" # force at least one iteration - while [ "X${resp}" != X"done" ]; do - configurenetwork - done - - echo -n "Enter IP address of default route: [none] " - getresp "none" - if [ "X${resp}" != X"none" ]; then - route delete default > /dev/null 2>&1 - if route add default $resp > /dev/null ; then - echo $resp > /tmp/mygate - fi - fi - - echo -n "Enter IP address of primary nameserver: [none] " - getresp "none" - if [ "X${resp}" != X"none" ]; then - echo "domain $FQDN" > /tmp/resolv.conf - echo "nameserver $resp" >> /tmp/resolv.conf - echo "search $FQDN" >> /tmp/resolv.conf - - echo -n "Would you like to use the nameserver now? [y] " - getresp "y" - case "$resp" in - y*|Y*) - cp /tmp/resolv.conf \ - /tmp/resolv.conf.shadow - ;; - - *) - ;; - esac - fi - - echo "" - echo "The host table is as follows:" - echo "" - cat /tmp/hosts - echo "" - echo "You may want to edit the host table in the event that" - echo "you need to mount an NFS server." - echo -n "Would you like to edit the host table? [n] " - getresp "n" - case "$resp" in - y*|Y*) - vi /tmp/hosts - ;; - - *) - ;; - esac - - cat << \__network_config_2 - -You will now be given the opportunity to escape to the command shell to -do any additional network configuration you may need. This may include -adding additional routes, if needed. In addition, you might take this -opportunity to redo the default route in the event that it failed above. -If you do change the default route, and wish for that change to carry over -to the installed system, execute the following command at the shell -prompt: - - echo <ip_address_of_gateway> > /tmp/mygate - -where <ip_address_of_gateway> is the IP address of the default router. - -__network_config_2 - echo -n "Escape to shell? [n] " - getresp "n" - case "$resp" in - y*|Y*) - echo "Type 'exit' to return to install." - sh - ;; - - *) - ;; - esac - ;; - *) - ;; -esac - -# Now that the network has been configured, it is safe to configure the -# fstab. -awk '{ - if ($2 == "/") - printf("/dev/%s %s ffs rw 1 1\n", $1, $2) - else - printf("/dev/%s %s ffs rw 1 2\n", $1, $2) -}' < ${FILESYSTEMS} > /tmp/fstab - -echo "The fstab is configured as follows:" -echo "" -cat /tmp/fstab -cat << \__fstab_config_1 - -You may wish to edit the fstab. For example, you may need to resolve -dependencies in the order which the filesystems are mounted. You may -also wish to take this opportunity to place NFS mounts in the fstab. -This would be especially useful if you plan to keep '/usr' on an NFS -server. - -__fstab_config_1 -echo -n "Edit the fstab? [n] " -getresp "n" -case "$resp" in - y*|Y*) - vi /tmp/fstab - ;; - - *) - ;; -esac - -# Now that the 'real' fstab is configured, we munge it into a 'shadow' -# fstab which we'll use for mounting and unmounting all of the target -# filesystems relative to /mnt. Mount all filesystems. -awk '{ - if ($2 == "/") - printf("%s /mnt %s %s %s %s\n", $1, $3, $4, $5, $6) - else - printf("%s /mnt%s %s %s %s %s\n", $1, $2, $3, $4, $5, $6) -}' < /tmp/fstab > /tmp/fstab.shadow - -echo "" - -# Must mount filesystems manually, one at a time, so we can make sure the -# mount points exist. -( - while read line; do - _dev=`echo $line | awk '{print $1}'` - _mp=`echo $line | awk '{print $2}'` - _fstype=`echo $line | awk '{print $3}'` - _opt=`echo $line | awk '{print $4}'` - - # If not the root filesystem, make sure the mount - # point is present. - if [ "X{$_mp}" != X"/mnt" ]; then - mkdir -p $_mp - fi - - # Mount the filesystem. If the mount fails, exit - # with an error condition to tell the outer - # later to bail. - if ! mount -v -t $_fstype -o $_opt $_dev $_mp ; then - # error message displated by mount - exit 1 - fi - done -) < /etc/fstab - -if [ "X${?}" != X"0" ]; then - cat << \__mount_filesystems_1 - -FATAL ERROR: Cannot mount filesystems. Double-check your configuration -and restart the installation process. - -__mount_filesystems_1 - exit -fi - -# Ask the user which media to load the distribution from. -cat << \__install_sets_1 - -It is now time to extract the installation sets onto the hard disk. -Make sure The sets are either on a local device (i.e. tape, CD-ROM) or on a -network server. - -__install_sets_1 -if [ -f /base.tar.gz ]; then - echo -n "Install from sets in the current root filesystem? [y] " - getresp "y" - case "$resp" in - y*|Y*) - for _f in /*.tar.gz; do - echo -n "Install $_f ? [y]" - getresp "y" - case "$resp" in - y*|Y*) - cat $_f | (cd /mnt; tar -xzvpf -) - _yup="TRUE" - ;; - *) - ;; - esac - echo "Extraction complete." - done - ;; - *) - _yup="FALSE" - ;; - esac -else - _yup="FALSE" -fi - -# Go on prodding for alternate locations -resp="" # force at least one iteration -while [ "X${resp}" = X"" ]; do - # If _yup is not FALSE, it means that we extracted sets above. - # If that's the case, bypass the menu the first time. - if [ X"$_yup" = X"FALSE" ]; then - echo -n "Install from (f)tp, (t)ape, (C)D-ROM, or (N)FS? [f] " - getresp "f" - case "$resp" in - f*|F*) - install_ftp - ;; - - t*|T*) - install_tape - ;; - - c*|C*) - install_cdrom - ;; - - n*|N*) - install_nfs - ;; - - *) - echo "Invalid response: $resp" - resp="" - ;; - esac - else - _yup="FALSE" # So we'll ask next time - fi - - # Give the user the opportunity to extract more sets. They don't - # necessarily have to come from the same media. - echo "" - echo -n "Extract more sets? [n] " - getresp "n" - case "$resp" in - y*|Y*) - # Force loop to repeat - resp="" - ;; - - *) - ;; - esac -done - -# Get timezone info -get_timezone - -# Copy in configuration information and make devices in target root. -( - cd /tmp - for file in fstab hostname.* hosts myname mygate resolv.conf; do - if [ -f $file ]; then - echo -n "Copying $file..." - cp $file /mnt/etc/$file - echo "done." - fi - done - - echo -n "Installing timezone link..." - rm -f /mnt/etc/localtime - ln -s /usr/share/zoneinfo/$TZ /mnt/etc/localtime - echo "done." - - echo -n "Making devices..." - pid=`twiddle` - cd /mnt/dev - sh MAKEDEV all - kill $pid - echo "done." - - echo -n "Copying kernel..." - cp /bsd /mnt/bsd - echo "done." - - md_installboot ${ROOTDISK} -) - -# Unmount all filesystems and check their integrity. -echo -n "Syncing disks..." -pid=`twiddle` -sync; sleep 4; sync; sleep 2; sync; sleep 2 -kill $pid -echo "done." - -echo "Unmounting filesystems..." -umount -va - -echo "Checking filesystem integrity..." -fsck -pf - -# Pat on the back. -md_congrats - -# ALL DONE! -exit 0 diff --git a/distrib/hp300/miniroot/inst/list b/distrib/hp300/miniroot/inst/list deleted file mode 100644 index 2d9933af876..00000000000 --- a/distrib/hp300/miniroot/inst/list +++ /dev/null @@ -1,11 +0,0 @@ -# $OpenBSD: list,v 1.4 1996/04/25 21:27:53 niklas Exp $ -# $NetBSD: list,v 1.2 1995/11/14 01:40:42 thorpej Exp $ - -# copy the kernel -COPY ${CURDIR}/../../../../sys/arch/hp300/compile/GENERIC/bsd bsd - -# and the installation tools -COPY dot.profile .profile -COPY install.sh install -COPY upgrade.sh upgrade -SPECIAL chmod 755 install upgrade diff --git a/distrib/hp300/miniroot/inst/upgrade.sh b/distrib/hp300/miniroot/inst/upgrade.sh deleted file mode 100644 index a4b869b1e05..00000000000 --- a/distrib/hp300/miniroot/inst/upgrade.sh +++ /dev/null @@ -1,1043 +0,0 @@ -#!/bin/sh -# $OpenBSD: upgrade.sh,v 1.4 1996/06/29 05:54:10 tholo Exp $ -# $NetBSD: upgrade.sh,v 1.3 1996/02/28 00:44:06 thorpej Exp $ -# -# Copyright (c) 1996 The NetBSD Foundation, Inc. -# All rights reserved. -# -# This code is derived from software contributed to The NetBSD Foundation -# by Jason R. Thorpe. -# -# 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 NetBSD -# Foundation, Inc. and its contributors. -# 4. Neither the name of The NetBSD Foundation 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 NETBSD FOUNDATION, INC. 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. -# - -# OpenBSD installation script. -# In a perfect world, this would be a nice C program, with a reasonable -# user interface. - -VERSION=1.1 -export VERSION # XXX needed in subshell -ROOTDISK="" # filled in below - -trap "umount /tmp > /dev/null 2>&1" 0 - -getresp() { - read resp - if [ "X$resp" = "X" ]; then - resp=$1 - fi -} - -isin() { -# test the first argument against the remaining ones, return succes on a match - _a=$1; shift - while [ $# != 0 ]; do - if [ "$_a" = "$1" ]; then return 0; fi - shift - done - return 1 -} - -twiddle() { -# spin the propeller so we don't get bored - while : ; do - sleep 1; echo -n "/"; - sleep 1; echo -n "-"; - sleep 1; echo -n "\\"; - sleep 1; echo -n "|"; - done > /dev/tty & echo $! -} - -# -# machine dependent section -# -md_get_diskdevs() { - # return available disk devices - dmesg | grep "^rd.*:" | awk -F: '{print $1}' | sort -u - dmesg | grep "^sd.*:*cylinders" | awk -F: '{print $1}' | sort -u -} - -md_get_cddevs() { - # return available CD-ROM devices - dmesg | grep "sd.*:*CD-ROM" | awk -F: '{print $1}' | sort -u -} - -md_installboot() { - # $1 is the root disk - - echo -n "Installing boot block..." - disklabel -W ${1} - disklabel -B ${1} - echo "done." -} - -md_checkfordisklabel() { - disklabel -r $1 > /dev/null 2> /tmp/checkfordisklabel - if grep "no disk label" /tmp/checkfordisklabel; then - rval="1" - elif grep "disk label corrupted" /tmp/checkfordisklabel; then - rval="2" - else - rval="0" - fi - - rm -f /tmp/checkfordisklabel -} - - # Note, while they might not seem machine-dependent, the - # welcome banner and the punt message may contain information - # and/or instructions specific to the type of machine. - -md_welcome_banner() { -( - echo "" - echo "Welcome to the OpenBSD/hp300 ${VERSION} upgrade program." - cat << \__welcome_banner_1 - -This program is designed to help you upgrade your OpenBSD system in a -simple and rational way. - -As a reminder, installing the `etc' binary set is NOT recommended. -Once the rest of your system has been upgraded, you should manually -merge any changes to files in the `etc' set into those files which -already exist on your system. - -As with anything which modifies your hard disk's contents, this -program can cause SIGNIFICANT data loss, and you are advised -to make sure your hard drive is backed up before beginning the -installation process. - -Default answers are displyed in brackets after the questions. -You can hit Control-C at any time to quit, but if you do so at a -prompt, you may have to hit return. Also, quitting in the middle of -installation may leave your system in an inconsistent state. - -__welcome_banner_1 -) | more -} - -md_not_going_to_install() { - cat << \__not_going_to_install_1 - -OK, then. Enter 'halt' at the prompt to halt the machine. Once the -machine has halted, power-cycle the system to load new boot code. - -__not_going_to_install_1 -} - -md_congrats() { - cat << \__congratulations_1 - -CONGRATULATIONS! You have successfully upgraded OpenBSD! To boot the -installed system, enter halt at the command prompt. Once the system has -halted, power-cycle the machine in order to load new boot code. Make sure -you boot from the root disk. - -__congratulations_1 -} - -# end of machine dependent section - -do_mfs_mount() { - # $1 is the mount point - # $2 is the size in DEV_BIZE blocks - - umount $1 > /dev/null 2>&1 - if ! mount_mfs -s $2 swap $1 ; then - cat << \__mfs_failed_1 - -FATAL ERROR: Can't mount the memory filesystem. - -__mfs_failed_1 - exit - fi - - # Bleh. Give mount_mfs a chance to DTRT. - sleep 2 -} - -getrootdisk() { - cat << \__getrootdisk_1 - -The installation program needs to know which disk to consider -the root disk. Note the unit number may be different than -the unit number you used in the standalone installation -program. - -Available disks are: - -__getrootdisk_1 - _DKDEVS=`md_get_diskdevs` - echo "$_DKDEVS" - echo "" - echo -n "Which disk is the root disk? " - getresp "" - if isin $resp $_DKDEVS ; then - ROOTDISK="$resp" - else - echo "" - echo "The disk $resp does not exist." - ROOTDISK="" - fi -} - -install_ftp() { - # Get several parameters from the user, and create - # a shell script that directs the appropriate - # commands into ftp. - cat << \__install_ftp_1 - -This is an automated ftp-based installation process. You will be asked -several questions. The correct set of commands will be placed in a script -that will be fed to ftp(1). - -__install_ftp_1 - # Get server IP address - resp="" # force one iteration - while [ "X${resp}" = X"" ]; do - echo -n "Server IP? [${_ftp_server_ip}] " - getresp "${_ftp_server_ip}" - _ftp_server_ip=$resp - done - - # Get server directory - resp="" # force one iteration - while [ "X${resp}" = X"" ]; do - echo -n "Server directory? [${_ftp_server_dir}] " - getresp "${_ftp_server_dir}" - _ftp_server_dir=$resp - done - - # Get login name - resp="" # force one iteration - while [ "X${resp}" = X"" ]; do - echo -n "Login? [${_ftp_server_login}] " - getresp "${_ftp_server_login}" - _ftp_server_login=$resp - done - - # Get password - resp="" # force one iteration - while [ "X${resp}" = X"" ]; do - echo -n "Password? [${_ftp_server_password}] " - getresp "${_ftp_server_password}" - _ftp_server_password=$resp - done - - # Get list of files for mget. - cat << \__install_ftp_2 - -You will now be asked for files to extract. Enter one file at a time. -When you are done entering files, enter 'done'. - -__install_ftp_2 - echo "#!/bin/sh" > /tmp/ftp-script.sh - echo "cd /mnt" >> /tmp/ftp-script.sh - echo "ftp -i -n $_ftp_server_ip << \__end_commands" >> \ - /tmp/ftp-script.sh - echo "user $_ftp_server_login $_ftp_server_password" >> \ - /tmp/ftp-script.sh - echo "bin" >> /tmp/ftp-script.sh - echo "cd $_ftp_server_dir" >> /tmp/ftp-script.sh - - resp="" # force one interation - while [ "X${resp}" != X"done" ]; do - echo -n "File? [done] " - getresp "done" - if [ "X${resp}" = X"done" ]; then - break - fi - - _ftp_file=`echo ${resp} | awk '{print $1}'` - echo "get ${_ftp_file} |\"tar -xzvpf -\"" >> \ - /tmp/ftp-script.sh - done - - echo "quit" >> /tmp/ftp-script.sh - echo "__end_commands" >> /tmp/ftp-script.sh - - sh /tmp/ftp-script.sh - rm -f /tmp/ftp-script.sh - echo "Extraction complete." -} - -install_common_nfs_cdrom() { - # $1 - directory containing file - - # Get the name of the file. - resp="" # force one iteration - while [ "X${resp}" = X"" ]; do - echo -n "File name? " - getresp "" - done - _common_filename="/mnt2/$1/$resp" - - # Ensure file exists - if [ ! -f $_common_filename ]; then - echo "File $_common_filename does not exist. Check to make" - echo "sure you entered the information properly." - return - fi - - # Extract file - cat $_common_filename | (cd /mnt; tar -xzvpf -) - echo "Extraction complete." -} - -install_cdrom() { - # Get the cdrom device info - cat << \__install_cdrom_1 - -The following CD-ROM devices are installed on your system; please select -the CD-ROM device containing the installation media: - -__install_cdrom_1 - _CDDEVS=`md_get_cddevs` - echo "$_CDDEVS" - echo "" - echo -n "Which is the CD-ROM with the installation media? [abort] " - getresp "abort" - case "$resp" in - abort) - echo "Aborting." - return - ;; - - *) - if isin $resp $_CDDEVS ; then - _cdrom_drive=$resp - else - echo "" - echo "The CD-ROM $resp does not exist." - echo "Aborting." - return - fi - ;; - esac - - # Get partition - resp="" # force one iteration - while [ "X${resp}" = X"" ]; do - echo -n "Partition? [c] " - getresp "c" - case "$resp" in - [a-h]) - _cdrom_partition=$resp - ;; - - *) - echo "Invalid response: $resp" - resp="" # force loop to repeat - ;; - esac - done - - # Ask for filesystem type - cat << \__install_cdrom_2 - -There are two CD-ROM filesystem types currently supported by this program: - 1) ISO-9660 (cd9660) - 2) Berkeley Fast Filesystem (ffs) - -__install_cdrom_2 - resp="" # force one iteration - while [ "X${resp}" = X"" ]; do - echo -n "Which filesystem type? [cd9660] " - getresp "cd9660" - case "$resp" in - cd9660|ffs) - _cdrom_filesystem=$resp - ;; - - *) - echo "Invalid response: $resp" - resp="" # force loop to repeat - ;; - esac - done - - # Mount the CD-ROM - if ! mount -t ${_cdrom_filesystem} -o ro \ - /dev/${_cdrom_drive}${_cdrom_partition} /mnt2 ; then - echo "Cannot mount CD-ROM drive. Aborting." - return - fi - - # Get the directory where the file lives - resp="" # force one iteration - while [ "X${resp}" = X"" ]; do - echo "Enter the directory relative to the mount point that" - echo -n "contains the file. [${_cdrom_directory}] " - getresp "${_cdrom_directory}" - done - _cdrom_directory=$resp - - install_common_nfs_cdrom ${_cdrom_directory} - umount -f /mnt2 > /dev/null 2>&1 -} - -install_nfs() { - # Get the IP address of the server - resp="" # force one iteration - while [ "X${resp}" = X"" ]; do - echo -n "Server IP address? [${_nfs_server_ip}] " - getresp "${_nfs_server_ip}" - done - _nfs_server_ip=$resp - - # Get server path to mount - resp="" # force one iteration - while [ "X${resp}" = X"" ]; do - echo -n "Filesystem on server to mount? [${_nfs_server_path}] " - getresp "${_nfs_server_path}" - done - _nfs_server_path=$resp - - # Determine use of TCP - echo -n "Use TCP transport (only works with capable NFS server)? [n] " - getresp "n" - case "$resp" in - y*|Y*) - _nfs_tcp="-T" - ;; - - *) - _nfs_tcp="" - ;; - esac - - # Mount the server - if ! mount_nfs $_nfs_tcp ${_nfs_server_ip}:${_nfs_server_path} \ - /mnt2 ; then - echo "Cannot mount NFS server. Aborting." - return - fi - - # Get the directory where the file lives - resp="" # force one iteration - while [ "X${resp}" = X"" ]; do - echo "Enter the directory relative to the mount point that" - echo -n "contains the file. [${_nfs_directory}] " - getresp "${_nfs_directory}" - done - _nfs_directory=$resp - - install_common_nfs_cdrom ${_nfs_directory} - umount -f /mnt2 > /dev/null 2>&1 -} - -install_tape() { - # Get the name of the tape from the user. - cat << \__install_tape_1 - -The installation program needs to know which tape device to use. Make -sure you use a "no rewind on close" device. - -__install_tape_1 - _tape=`basename $TAPE` - resp="" # force one iteration - while [ "X${resp}" = X"" ]; do - echo -n "Name of tape device? [${_tape}]" - getresp "${_tape}" - done - _tape=`basename $resp` - TAPE="/dev/${_tape}" - if [ ! -c $TAPE ]; then - echo "$TAPE does not exist or is not a character special file." - echo "Aborting." - return - fi - export TAPE - - # Rewind the tape device - echo -n "Rewinding tape..." - if ! mt rewind ; then - echo "$TAPE may not be attached to the system or may not be" - echo "a tape device. Aborting." - return - fi - echo "done." - - # Get the file number - resp="" # force one iteration - while [ "X${resp}" = X"" ]; do - echo -n "File number? " - getresp "" - case "$resp" in - [1-9]*) - _nskip=`expr $resp - 1` - ;; - - *) - echo "Invalid file number ${resp}." - resp="" # fore loop to repeat - ;; - esac - done - - # Skip to correct file. - echo -n "Skipping to source file..." - if [ "X${_nskip}" != X"0" ]; then - if ! mt fsf $_nskip ; then - echo "Could not skip $_nskip files. Aborting." - return - fi - fi - echo "done." - - cat << \__install_tape_2 - -There are 2 different ways the file can be stored on tape: - - 1) an image of a gzipped tar file - 2) a standard tar image - -__install_tape_2 - resp="" # force one iteration - while [ "X${resp}" = X"" ]; do - getresp "1" - case "$resp" in - 1) - ( - cd /mnt - dd if=$TAPE | tar -xzvpf - - ) - ;; - - 2) - ( - cd /mnt - dd if=$TAPE | tar -xzvpf - - ) - ;; - - *) - echo "Invalid response: $resp." - resp="" # force loop to repeat - ;; - esac - done - echo "Extraction complete." -} - -get_timezone() { -cat << \__get_timezone_1 - -Select a time zone: - -__get_timezone_1 - ls /usr/share/zoneinfo # XXX - echo "" - if [ X"$TZ" = "X" ]; then - TZ=`ls -l /etc/timezone 2>/dev/null | awk -F/ '{print $NF}'` - fi - echo -n "What timezone are you in [$TZ]? " - getresp "$TZ" - case "$resp" in - "") - echo "Timezone defaults to GMT" - TZ="GMT" - ;; - *) - TZ="$resp" - ;; - esac - export TZ -} - -# Much of this is gratuitously stolen from /etc/netstart. -enable_network() { - - # Set up the hostname. - if [ ! -f /mnt/etc/myname ]; then - echo "ERROR: no /etc/myname!" - return 1 - fi - hostname=`cat /mnt/etc/myname` - hostname $hostname - - # configure all the interfaces which we know about. -( - tmp="$IFS" - IFS="$IFS." - set -- `echo /mnt/etc/hostname*` - IFS=$tmp - unset tmp - - while [ $# -ge 2 ] ; do - shift # get rid of "hostname" - ( - read af name mask bcaddr extras - read dt dtaddr - - if [ ! -n "$name" ]; then - echo "/etc/hostname.$1: invalid network configuration file" - exit - fi - - cmd="ifconfig $1 $af $name " - if [ "${dt}" = "dest" ]; then cmd="$cmd $dtaddr"; fi - if [ -n "$mask" ]; then cmd="$cmd netmask $mask"; fi - if [ -n "$bcaddr" -a "X$bcaddr" != "XNONE" ]; then - cmd="$cmd broadcast $bcaddr"; - fi - cmd="$cmd $extras" - - $cmd - ) < /mnt/etc/hostname.$1 - shift - done -) - - # set the address for the loopback interface - ifconfig lo0 inet localhost - - # use loopback, not the wire - route add $hostname localhost - - # /etc/mygate, if it exists, contains the name of my gateway host - # that name must be in /etc/hosts. - if [ -f /mnt/etc/mygate ]; then - route delete default > /dev/null 2>&1 - route add default `cat /mnt/etc/mygate` - fi - - # enable the resolver, if appropriate. - if [ -f /mnt/etc/resolv.conf ]; then - _resolver_enabled="TRUE" - cp /mnt/etc/resolv.conf /tmp/resolv.conf.shadow - fi - - # Display results... - echo "Network interface configuration:" - ifconfig -a - - echo "" - - if [ "X${_resolver_enabled}" = X"TRUE" ]; then - netstat -r - echo "" - echo "Resolver enabled." - else - netstat -rn - echo "" - echo "Resolver not enabled." - fi - - return 0 -} - -# Good {morning,afternoon,evening,night}. -md_welcome_banner -echo -n "Proceed with upgrade? [n] " -getresp "n" -case "$resp" in - y*|Y*) - echo "Cool! Let's get to it..." - ;; - *) - md_not_going_to_install - exit - ;; -esac - -# XXX Work around vnode aliasing bug (thanks for the tip, Chris...) -ls -l /dev > /dev/null 2>&1 - -# We don't like it, but it sure makes a few things a lot easier. -do_mfs_mount "/tmp" "2048" - -while [ "X${ROOTDISK}" = "X" ]; do - getrootdisk -done - -# Make sure there's a disklabel there. If there isn't, puke after -# disklabel prints the error message. -md_checkfordisklabel ${ROOTDISK} -case $rval in - 1) - cat << \__disklabel_not_present_1 - -FATAL ERROR: There is no disklabel present on the root disk! You must -label the disk with SYS_INST before continuing. - -__disklabel_not_present_1 - exit - ;; - - 2) - cat << \__disklabel_corrupted_1 - -FATAL ERROR: The disklabel on the root disk is corrupted! You must -re-label the disk with SYS_INST before continuing. - -__disklabel_corrupted_1 - exit - ;; - - *) - ;; -esac - -# Assume partition 'a' of $ROOTDISK is for the root filesystem. Confirm -# this with the user. Check and mount the root filesystem. -resp="" # force one iteration -while [ "X${resp}" = "X" ]; do - echo -n "Root filesystem? [${ROOTDISK}a] " - getresp "${ROOTDISK}a" - _root_filesystem="/dev/`basename $resp`" - if [ ! -b ${_root_filesystem} ]; then - echo "Sorry, ${resp} is not a block device." - resp="" # force loop to repeat - fi -done - -echo "Checking root filesystem..." -if ! fsck -pf ${_root_filesystem}; then - echo "ERROR: can't check root filesystem!" - exit 1 -fi - -echo "Mounting root filesystem..." -if ! mount -o ro ${_root_filesystem} /mnt; then - echo "ERROR: can't mount root filesystem!" - exit 1 -fi - -# Grab the fstab so we can munge it for our own use. -if [ ! -f /mnt/etc/fstab ]; then - echo "ERROR: no /etc/fstab!" - exit 1 -fi -cp /mnt/etc/fstab /tmp/fstab - -# Grab the hosts table so we can use it. -if [ ! -f /mnt/etc/hosts ]; then - echo "ERROR: no /etc/hosts!" - exit 1 -fi -cp /mnt/etc/hosts /tmp/hosts - -# Start up the network in same/similar configuration as the installed system -# uses. -cat << \__network_config_1 - -The upgrade program would now like to enable the network. It will use the -configuration already stored on the root filesystem. This is required -if you wish to use the network installation capabilities of this program. - -__network_config_1 -echo -n "Enable network? [y] " -getresp "y" -case "$resp" in - y*|Y*) - if ! enable_network; then - echo "ERROR: can't enable network!" - exit 1 - fi - - cat << \__network_config_2 - -You will now be given the opportunity to escape to the command shell to -do any additional network configuration you may need. This may include -adding additional routes, if needed. In addition, you might take this -opportunity to redo the default route in the event that it failed above. - -__network_config_2 - echo -n "Escape to shell? [n] " - getresp "n" - case "$resp" in - y*|Y*) - echo "Type 'exit' to return to upgrade." - sh - ;; - - *) - ;; - esac - ;; - *) - ;; -esac - -# Now that the network has been configured, it is safe to configure the -# fstab. We remove all but ufs/ffs/nfs. -( - rm -f /tmp/fstab.new - while read line; do - _fstype=`echo $line | awk '{print $3}'` - if [ "X${_fstype}" = X"ufs" -o \ - "X${_fstype}" = X"ffs" -o \ - "X${_fstype}" = X"nfs" ]; then - echo $line >> /tmp/fstab.new - fi - done -) < /tmp/fstab - -if [ ! -f /tmp/fstab.new ]; then - echo "ERROR: strange fstab!" - exit 1 -fi - -# Convert ufs to ffs. -sed -e 's/ufs/ffs/' < /tmp/fstab.new > /tmp/fstab -rm -f /tmp/fstab.new - -echo "The fstab is configured as follows:" -echo "" -cat /tmp/fstab -cat << \__fstab_config_1 - -You may wish to edit the fstab. For example, you may need to resolve -dependencies in the order which the filesystems are mounted. Note that -this fstab is only for installation purposes, and will not be copied into -the root filesystem. - -__fstab_config_1 -echo -n "Edit the fstab? [n] " -getresp "n" -case "$resp" in - y*|Y*) - vi /tmp/fstab - ;; - - *) - ;; -esac - -# Now that the 'real' fstab is configured, we munge it into a 'shadow' -# fstab which we'll use for mounting and unmounting all of the target -# filesystems relative to /mnt. Mount all filesystems. -awk '{ - if ($2 == "/") - printf("%s /mnt %s %s %s %s\n", $1, $3, $4, $5, $6) - else - printf("%s /mnt%s %s %s %s %s\n", $1, $2, $3, $4, $5, $6) -}' < /tmp/fstab > /tmp/fstab.shadow - -echo "" - -# Must mount filesystems manually, one at a time, so we can make sure the -# mount points exist. -if ! umount /mnt; then - echo "ERROR: can't unmount previously mounted root!" - exit 1 -fi - -# Check all of the filesystems. -echo "Checking filesystems..." -if ! fsck -pf; then - echo "ERROR: can't check filesystems!" - exit 1 -fi - -( - while read line; do - _dev=`echo $line | awk '{print $1}'` - _mp=`echo $line | awk '{print $2}'` - _fstype=`echo $line | awk '{print $3}'` - _opt=`echo $line | awk '{print $4}'` - - # If not the root filesystem, make sure the mount - # point is present. - if [ "X{$_mp}" != X"/mnt" ]; then - mkdir -p $_mp - fi - - # Mount the filesystem. If the mount fails, exit - # with an error condition to tell the outer - # later to bail. - if ! mount -v -t $_fstype -o $_opt $_dev $_mp ; then - # error message displated by mount - exit 1 - fi - done -) < /etc/fstab - -if [ "X${?}" != X"0" ]; then - cat << \__mount_filesystems_1 - -FATAL ERROR: Cannot mount filesystems. Double-check your configuration -and restart the upgrade process. - -__mount_filesystems_1 - exit -fi - -# Ask the user which media to load the distribution from. -cat << \__install_sets_1 - -It is now time to extract the installation sets onto the hard disk. -Make sure The sets are either on a local device (i.e. tape, CD-ROM) or on a -network server. - -__install_sets_1 -if [ -f /base.tar.gz ]; then - echo -n "Install from sets in the current root filesystem? [y] " - getresp "y" - case "$resp" in - y*|Y*) - for _f in /*.tar.gz; do - echo -n "Install $_f ? [y]" - getresp "y" - case "$resp" in - y*|Y*) - cat $_f | (cd /mnt; tar -xzvpf -) - _yup="TRUE" - ;; - *) - ;; - esac - echo "Extraction complete." - done - ;; - *) - _yup="FALSE" - ;; - esac -else - _yup="FALSE" -fi - -# Go on prodding for alternate locations -resp="" # force at least one iteration -while [ "X${resp}" = X"" ]; do - # If _yup is not FALSE, it means that we extracted sets above. - # If that's the case, bypass the menu the first time. - if [ X"$_yup" = X"FALSE" ]; then - echo -n "Install from (f)tp, (t)ape, (C)D-ROM, or (N)FS? [f] " - getresp "f" - case "$resp" in - f*|F*) - install_ftp - ;; - - t*|T*) - install_tape - ;; - - c*|C*) - install_cdrom - ;; - - n*|N*) - install_nfs - ;; - - *) - echo "Invalid response: $resp" - resp="" - ;; - esac - else - _yup="FALSE" # So we'll ask next time - fi - - # Give the user the opportunity to extract more sets. They don't - # necessarily have to come from the same media. - echo "" - echo -n "Extract more sets? [n] " - getresp "n" - case "$resp" in - y*|Y*) - # Force loop to repeat - resp="" - ;; - - *) - ;; - esac -done - -# Get timezone info -get_timezone - -# Fix up the fstab. -echo -n "Converting ufs to ffs in /etc/fstab..." -sed -e 's/ufs/ffs/' < /mnt/etc/fstab > /tmp/fstab -echo "done." -echo -n "Would you like to edit the resulting fstab? [y] " -getresp "y" -case "$resp" in - y*|Y*) - vi /tmp/fstab - ;; - - *) - ;; -esac - -# Copy in configuration information and make devices in target root. -( - cd /tmp - for file in fstab; do - if [ -f $file ]; then - echo -n "Copying $file..." - cp $file /mnt/etc/$file - echo "done." - fi - done - - echo -n "Installing timezone link..." - rm -f /mnt/etc/localtime - ln -s /usr/share/zoneinfo/$TZ /mnt/etc/localtime - echo "done." - - echo -n "Making devices..." - pid=`twiddle` - cd /mnt/dev - sh MAKEDEV all - kill $pid - echo "done." - - echo -n "Copying kernel..." - cp /bsd /mnt/bsd - echo "done." - - md_installboot ${ROOTDISK} -) - -# Unmount all filesystems and check their integrity. -echo -n "Syncing disks..." -pid=`twiddle` -sync; sleep 4; sync; sleep 2; sync; sleep 2 -kill $pid -echo "done." - -echo "Unmounting filesystems..." -umount -va - -echo "Checking filesystem integrity..." -fsck -pf - -# Pat on the back. -md_congrats - -# ALL DONE! -exit 0 diff --git a/distrib/hp300/miniroot/install.md b/distrib/hp300/miniroot/install.md deleted file mode 100644 index 2df2248154a..00000000000 --- a/distrib/hp300/miniroot/install.md +++ /dev/null @@ -1,516 +0,0 @@ -#!/bin/sh -# -# $NetBSD: install.md,v 1.1.2.4 1996/08/26 15:45:14 gwr Exp $ -# -# Copyright (c) 1996 The NetBSD Foundation, Inc. -# All rights reserved. -# -# This code is derived from software contributed to The NetBSD Foundation -# by Jason R. Thorpe. -# -# 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 NetBSD -# Foundation, Inc. and its contributors. -# 4. Neither the name of The NetBSD Foundation 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 NETBSD FOUNDATION, INC. 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. -# - -# -# machine dependent section of installation/upgrade script -# - -# Machine-dependent install sets -MDSETS="" - -md_set_term() { - if [ ! -z "$TERM" ]; then - return - fi - echo -n "Specify terminal type [hp300h]: " - getresp "hp300h" - TERM="$resp" - export TERM - # XXX call tset? -} - -md_makerootwritable() { - # Was: do_mfs_mount "/tmp" "2048" - # /tmp is the mount point - # 2048 is the size in DEV_BIZE blocks - - umount /tmp > /dev/null 2>&1 - if ! mount_mfs -s 2048 swap /tmp ; then - cat << \__mfs_failed_1 - -FATAL ERROR: Can't mount the memory filesystem. - -__mfs_failed_1 - exit - fi - - # Bleh. Give mount_mfs a chance to DTRT. - sleep 2 -} - -md_get_diskdevs() { - # return available disk devices - dmesg | grep "^rd[0-9]*:." | cut -d":" -f1 | sort -u - dmesg | grep "^sd[0-9]*:.*cylinders" | cut -d":" -f1 | sort -u -} - -md_get_cddevs() { - # return available CD-ROM devices - dmesg | grep "sd[0-9]*:.*CD-ROM" | cut -d":" -f1 | sort -u -} - -md_get_ifdevs() { - # return available network interfaces - dmesg | grep "^le[0-9]*:" | cut -d":" -f1 | sort -u -} - -md_installboot() { - # $1 is the root disk - - echo -n "Installing boot block..." - disklabel -W ${1} - disklabel -B ${1} - echo "done." -} - -md_checkfordisklabel() { - # $1 is the disk to check - - disklabel -r $1 > /dev/null 2> /tmp/checkfordisklabel - if grep "no disk label" /tmp/checkfordisklabel; then - rval="1" - elif grep "disk label corrupted" /tmp/checkfordisklabel; then - rval="2" - else - rval="0" - fi - - rm -f /tmp/checkfordisklabel -} - -hp300_init_label_scsi_disk() { - # $1 is the disk to label - - # Name the disks we install in the temporary fstab. - if [ "X${_disk_instance}" = "X" ]; then - _disk_instance="0" - else - _disk_instance=`expr $_disk_instance + 1` - fi - _cur_disk_name="install-disk-${_disk_instance}" - - # Get geometry information from the user. - more << \__scsi_label_1 - -You will need to provide some information about your disk's geometry. -Geometry info for SCSI disks was printed at boot time. If that information -is not available, use the information provided in your disk's manual. -Please note that the geometry printed at boot time is preferred. - -IMPORTANT NOTE: due to a limitation in the disklabel(8) program, the -number of cylinders on the disk will be increased by 1 so that the initial -label can be placed on disk for editing. When the disklabel editor appears, -make absolutely certain you subtract 1 from the total number of cylinders, -and adjust the size of partition 'c' such that: - - size = (sectors per track) * (tracks per cyl) * (total cylinders) - -Note that the disklabel editor will be run twice; once to set the size of -partition 'c' and correct the geometry, and again so that you may correctly -edit the partition map. This is to work around the afore mentioned -limitation in disklabel(8). Apologies offered in advance. - -__scsi_label_1 - - # Give the opportunity to review the boot messages. - echo -n "Review boot messages now? [y] " - getresp "y" - case "$resp" in - y*|Y*) - (echo ""; dmesg; echo "") | more - ;; - - *) - ;; - esac - - echo "" - echo -n "Number of bytes per disk sector? [512] " - getresp "512" - _secsize="$resp" - - resp="" # force one iteration - while [ "X${resp}" = "X" ]; do - echo -n "Number of cylinders? " - getresp "" - done - _cylinders="$resp" - _fudge_cyl=`expr $_cylinders + 1` - - resp="" # force one iteration - while [ "X${resp}" = "X" ]; do - echo -n "Number of tracks (heads)? " - getresp "" - done - _tracks_per_cyl="$resp" - - resp="" # force one iteration - while [ "X${resp}" = "X" ]; do - echo -n "Number of disk sectors (blocks)? " - getresp "" - done - _nsectors="$resp" - - # Calculate some values we need. - _sec_per_cyl=`expr $_nsectors / $_cylinders` - _sec_per_track=`expr $_sec_per_cyl / $_tracks_per_cyl` - _new_c_size=`expr $_sec_per_track \* $_tracks_per_cyl \* $_cylinders` - - # Emit a disktab entry, suitable for getting started. - # What we have is a `c' partition with the total number of - # blocks, and an `a' partition with 1 sector; just large enough - # to open. Don't ask. - echo "" >> /etc/disktab - echo "# Created by install" >> /etc/disktab - echo "${_cur_disk_name}:\\" >> /etc/disktab - echo -n " :ty=winchester:ns#${_sec_per_track}:" >> /etc/disktab - echo "nt#${_tracks_per_cyl}:nc#${_fudge_cyl}:\\" >> /etc/disktab - echo " :pa#1:\\" >> /etc/disktab - echo " :pc#${_nsectors}:" >> /etc/disktab - - # Ok, here's what we need to do. First of all, we install - # this initial label by opening the `c' partition of the disk - # and using the `-r' flag for disklabel(8). However, because - # of limitations in disklabel(8), we've had to fudge the number - # of cylinders up 1 so that disklabel(8) doesn't complain about - # `c' running past the end of the disk, which can be quite - # common even with OEM HP drives! So, we've given ourselves - # an `a' partition, which is the minimum needed to open the disk - # so that we can perform the DIOCWDLABEL ioctl. So, once the - # initial label is installed, we open the `a' partition so that - # we can fix up the number of cylinders and make the size of - # `c' come out to (ncyl * ntracks_per_cyl * nsec_per_track). - # After that's done, we re-open `c' and let the user actually - # edit the partition table. It's horrible, I know. Bleh. - - disklabel -W ${1} - if ! disklabel -w -r ${1} ${_cur_disk_name}; then - echo "" - echo "ERROR: can't bootstrap disklabel!" - rval="1" - return - fi - - echo "" - echo "The disklabel editor will now start. During this phase, you" - echo "must reset the 'cylinders' value to ${_cylinders}, and adjust" - echo "the size of partition 'c' to ${_new_c_size}. Do not modify" - echo "the partition map at this time. You will have the opportunity" - echo "to do so in a moment." - echo "" - echo -n "Press <return> to continue. " - getresp "" - - disklabel -W ${1} - if ! disklabel -e /dev/r${1}a; then - echo "" - echo "ERROR: can't fixup geometry!" - rval="1" - return - fi - - cat << \__explain_motives_2 - -Now that you have corrected the geometry of your disk, you may edit the -partition map. Don't forget to fill in the fsize (frag size), bsize -(filesystem block size), and cpg (cylinders per group) values. If you -are unsure what these should be, use: - - fsize: 1024 - bsize: 4096 - cpg: 16 - -__explain_motives_2 - echo -n "Press <return> to continue. " - getresp "" - - rval="0" - return -} - -hp300_init_label_hpib_disk() { - # $1 is the disk to label - - # We look though the boot messages attempting to find - # the model number for the provided disk. - _hpib_disktype="" - if dmesg | grep "${1}: " > /dev/null 2>&1; then - _hpib_disktype=HP`dmesg | grep "${1}: " | sort -u | \ - awk '{print $2}'` - fi - if [ "X${_hpib_disktype}" = "X" ]; then - echo "" - echo "ERROR: $1 doesn't appear to exist?!" - rval="1" - return - fi - - # Peer through /etc/disktab to see if the disk has a "default" - # layout. If it doesn't, we have to treat it like a SCSI disk; - # i.e. prompt for geometry, and create a default to place - # on the disk. - if ! grep "${_hpib_disktype}[:|]" /etc/disktab > /dev/null \ - 2>&1; then - echo "" - echo "WARNING: can't find defaults for $1 ($_hpib_disktype)" - echo "" - hp300_init_label_scsi_disk $1 - return - fi - - # We've found the defaults. Now use them to place an initial - # disklabel on the disk. - # XXX What kind of ugliness to we have to deal with to get around - # XXX stupidity on the part of disklabel semantics? - disklabel -W ${1} - if ! disklabel -r -w ${1} $_hpib_disktype; then - # Error message displayed by disklabel(8) - echo "" - echo "ERROR: can't install default label!" - echo "" - echo -n "Try a different method? [y] " - getresp "y" - case "$resp" in - y*|Y*) - hp300_init_label_scsi_disk $1 - return - ;; - - *) - rval="1" - return - ;; - esac - fi - - rval="0" - return -} - -md_labeldisk() { - # $1 is the disk to label - - # Check to see if there is a disklabel present on the device. - # If so, we can just edit it. If not, we must first install - # a default label. - md_checkfordisklabel $1 - case "$rval" in - 0) - # Go ahead and just edit the disklabel. - disklabel -W $1 - disklabel -e $1 - ;; - - *) - echo -n "No disklabel present, installing a default for type: " - case "$1" in - rd*) - echo "HP-IB" - hp300_init_label_hpib_disk $1 - ;; - - sd*) - echo "SCSI" - hp300_init_label_scsi_disk $1 - ;; - - *) - # Shouldn't happen, but... - echo "unknown?! Giving up." - return; - ;; - esac - - # Check to see if installing the default was - # successful. If so, go ahead and pop into the - # disklabel editor. - if [ "X${rval}" != X"0" ]; then - echo "Sorry, can't label this disk." - echo "" - return; - fi - - # We have some defaults installed. Pop into - # the disklabel editor. - disklabel -W $1 - if ! disklabel -e $1; then - echo "" - echo "ERROR: couldn't set partition map for $1" - echo "" - fi - esac -} - -md_prep_disklabel() { - # $1 is the root disk - - # Make sure there's a disklabel there. If there isn't, puke after - # disklabel prints the error message. - md_checkfordisklabel $1 - case "$resp" in - 1) - cat << \__md_prep_disklabel_1 - -FATAL ERROR: There is no disklabel present on the root disk! You must -label the disk with SYS_INST before continuing. - -__md_prep_disklabel_1 - exit - ;; - - 2) - cat << \__md_prep_disklabel_2 - -FATAL ERROR: The disklabel on the root disk is corrupted! You must -re-label the disk with SYS_INST before continuing. - -__md_prep_disklabel_2 - exit - ;; - - *) - ;; - esac - - # Give the user the opportinuty to edit the root disklabel. - cat << \__md_prep_disklabel_3 - -You have already placed a disklabel onto the target root disk. -However, due to the limitations of the standalone program used -you may want to edit that label to change partition type information. -You will be given the opporunity to do that now. Note that you may -not change the size or location of any presently open partition. - -__md_prep_disklabel_3 - echo -n "Do you wish to edit the root disklabel? [y] " - getresp "y" - case "$resp" in - y*|Y*) - disklabel -W $1 - disklabel -e $1 - ;; - - *) - ;; - esac - - cat << \__md_prep_disklabel_4 - -You will now be given the opportunity to place disklabels on any additional -disks on your system. -__md_prep_disklabel_4 - - _DKDEVS=`rmel ${ROOTDISK} ${_DKDEVS}` - resp="X" # force at least one iteration - while [ "X$resp" != X"done" ]; do - labelmoredisks - done -} - -md_copy_kernel() { - echo -n "Copying kernel..." - cp -p /netbsd /mnt/netbsd - echo "done." -} - - # Note, while they might not seem machine-dependent, the - # welcome banner and the punt message may contain information - # and/or instructions specific to the type of machine. - -md_welcome_banner() { -( - echo "" - echo "Welcome to the NetBSD/hp300 ${VERSION} installation program." - cat << \__welcome_banner_1 - -This program is designed to help you install NetBSD on your system in a -simple and rational way. You'll be asked several questions, and it would -probably be useful to have your disk's hardware manual, the installation -notes, and a calculator handy. - -In particular, you will need to know some reasonably detailed -information about your disk's geometry. This program can determine -some limited information about certain specific types of HP-IB disks. -If you have SCSI disks, however, prior knowledge of disk geometry -is absolutely essential. The kernel will attempt to display geometry -information for SCSI disks during boot, if possible. If you did not -make it note of it before, you may wish to reboot and jot down your -disk's geometry before proceeding. - -As with anything which modifies your hard disk's contents, this -program can cause SIGNIFICANT data loss, and you are advised -to make sure your hard drive is backed up before beginning the -installation process. - -Default answers are displyed in brackets after the questions. -You can hit Control-C at any time to quit, but if you do so at a -prompt, you may have to hit return. Also, quitting in the middle of -installation may leave your system in an inconsistent state. - -__welcome_banner_1 -) | more -} - -md_not_going_to_install() { - cat << \__not_going_to_install_1 - -OK, then. Enter 'halt' at the prompt to halt the machine. Once the -machine has halted, power-cycle the system to load new boot code. - -__not_going_to_install_1 -} - -md_congrats() { - cat << \__congratulations_1 - -CONGRATULATIONS! You have successfully installed NetBSD! To boot the -installed system, enter halt at the command prompt. Once the system has -halted, power-cycle the machine in order to load new boot code. Make sure -you boot from the root disk. - -__congratulations_1 -} - -md_native_fstype() { - # Nothing to do. -} - -md_native_fsopts() { - # Nothing to do. -} diff --git a/distrib/hp300/miniroot/list b/distrib/hp300/miniroot/list deleted file mode 100644 index 2e7c557f2ed..00000000000 --- a/distrib/hp300/miniroot/list +++ /dev/null @@ -1,53 +0,0 @@ -# $NetBSD: list,v 1.1.2.1 1996/06/26 19:41:40 thorpej Exp $ - -# hp300 extra's -LINK instbin sbin/disklabel -LINK instbin sbin/dmesg - -SYMLINK ../../instbin usr/bin/basename -SYMLINK ../../instbin usr/bin/cksum usr/bin/sum -SYMLINK ../../instbin usr/bin/cut -SYMLINK ../../instbin usr/bin/gawk usr/bin/awk -SYMLINK ../../instbin usr/bin/grep usr/bin/egrep usr/bin/fgrep -SYMLINK ../../instbin usr/bin/netstat -SYMLINK ../../instbin usr/bin/rsh -SYMLINK ../../instbin usr/bin/strings -SYMLINK ../../instbin usr/bin/tset usr/bin/reset -SYMLINK ../../instbin usr/bin/vi -SYMLINK ../../instbin usr/bin/less usr/bin/more - -# crunchgen source directory specials -CRUNCHSPECIAL vi srcdir usr.bin/vi/build -CRUNCHSPECIAL less srcdir /usr/src/usr.bin/less/less - -# Minimize use of MFS -SYMLINK /tmp var/tmp - -# copy the MAKEDEV script and make some devices -COPY ${DESTDIR}/dev/MAKEDEV dev/MAKEDEV -COPY ${DESTDIR}/dev/MAKEDEV.local dev/MAKEDEV.local -SPECIAL cd dev; sh MAKEDEV all -SPECIAL /bin/rm dev/MAKEDEV - -# we need the contents of /usr/mdec -COPYDIR ${DESTDIR}/usr/mdec usr/mdec - -# the zoneinfo -COPYDIR ${DESTDIR}/usr/share/zoneinfo usr/share/zoneinfo - -# and the termcap file -COPY ${CURDIR}/../../share/termcap/termcap.src usr/share/misc/termcap - -# copy the kernel -COPY ${CURDIR}/../../sys/arch/hp300/compile/GENERIC/netbsd netbsd - -# various files that we need in /etc for the install -COPY ${DESTDIR}/etc/disktab etc/disktab.shadow -SYMLINK /tmp/disktab.shadow etc/disktab -SYMLINK /tmp/fstab.shadow etc/fstab -SYMLINK /tmp/resolv.conf.shadow etc/resolv.conf -SYMLINK /tmp/hosts etc/hosts - -# and the installation tools -COPY ${ARCHDIR}/dot.profile .profile -COPY ${ARCHDIR}/install.md install.md diff --git a/distrib/hp300/miniroot/list2sh.awk b/distrib/hp300/miniroot/list2sh.awk deleted file mode 100644 index ba43187059d..00000000000 --- a/distrib/hp300/miniroot/list2sh.awk +++ /dev/null @@ -1,55 +0,0 @@ -# $NetBSD: list2sh.awk,v 1.1 1995/10/03 22:47:56 thorpej 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/hp300/miniroot/runlist.sh b/distrib/hp300/miniroot/runlist.sh deleted file mode 100644 index 96abe1f2e23..00000000000 --- a/distrib/hp300/miniroot/runlist.sh +++ /dev/null @@ -1,13 +0,0 @@ -# $NetBSD: runlist.sh,v 1.1 1995/10/03 22:47:57 thorpej 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} |