dot.profile revision 1.12
1# $NetBSD: dot.profile,v 1.12 2000/10/30 23:13:10 pk Exp $
2#
3# Copyright (c) 2000 The NetBSD Foundation, Inc.
4# All rights reserved.
5#
6# This code is derived from software contributed to The NetBSD Foundation
7# by Paul Kranenburg.
8#
9# Redistribution and use in source and binary forms, with or without
10# modification, are permitted provided that the following conditions
11# are met:
12# 1. Redistributions of source code must retain the above copyright
13#    notice, this list of conditions and the following disclaimer.
14# 2. Redistributions in binary form must reproduce the above copyright
15#    notice, this list of conditions and the following disclaimer in the
16#    documentation and/or other materials provided with the distribution.
17# 3. All advertising materials mentioning features or use of this software
18#    must display the following acknowledgement:
19#        This product includes software developed by the NetBSD
20#        Foundation, Inc. and its contributors.
21# 4. Neither the name of The NetBSD Foundation nor the names of its
22#    contributors may be used to endorse or promote products derived
23#    from this software without specific prior written permission.
24#
25# THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
26# ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
27# TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
28# PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS
29# BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
30# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
31# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
32# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
33# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
34# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
35# POSSIBILITY OF SUCH DAMAGE.
36#
37
38PATH=/sbin:/bin:/usr/bin:/usr/sbin:/
39export PATH
40HOME=/
41export HOME
42
43umask 022
44
45INSTFS_MP=/instfs
46MINIROOT_FSSIZE=10000
47
48if [ "${BOOTFS_DONEPROFILE}" != "YES" ]; then
49
50	BOOTFS_DONEPROFILE=YES
51	export BOOTFS_DONEPROFILE
52
53	# mount root read-write
54	mount_ffs -o update /dev/md0a /
55
56	# mount /instfs
57	mount_mfs -s $MINIROOT_FSSIZE swap $INSTFS_MP
58fi
59
60# A cat simulator
61cat()
62{
63	local l
64	while read l; do
65		echo "$l"
66	done
67}
68
69_resp=""
70getresp() {
71	read _resp
72	if [ "$_resp" = "" ]; then
73		_resp=$1
74	fi
75}
76
77# Load instfs
78
79floppy()
80{
81	local dev
82	cat <<EOF
83First, remove the boot disk from the floppy station.
84
85Next, insert the floppy disk labeled \`instfs' into the disk drive.
86The question below allows you to specify the device name of the floppy
87drive.  Usually, the default device will do just fine.
88EOF
89	dev="/dev/rfd0a"
90	echo -n "Floppy device to load the installation utilities from [$dev]: "
91	getresp "$dev"; dev="$_resp"
92
93	echo "Extracting installation utilities... "
94	(cd $INSTFS_MP && tar zxpf $dev) || return 1
95}
96
97tape()
98{
99	local dev fn bs
100	cat <<EOF
101By default, the installation utilities are located in the second tape file
102on the NetBSD/sparc installation tape. In case your tape layout is different,
103choose the appropriate tape file number below.
104If the installation tape was written with a different block size than
105the default suggested by this installation procedure, you have the
106opportunity to change that as well.
107
108EOF
109	dev="/dev/nrst0"
110	echo -n "Tape device to load the installation utilities from [$dev]: "
111	getresp "$dev"; dev="$_resp"
112
113	fn=2
114	echo -n "Tape file number [$fn]: "
115	getresp "$fn"; fn="$_resp"
116
117	bs=4k
118	echo -n "Tape block size [$bs]: "
119	getresp "$bs"; bs="$_resp"
120
121	echo "Positioning tape... "
122	mt -f $dev asf $(($fn - 1))
123	[ $? = 0 ] || return 1
124
125	echo "Extracting installation utilities... "
126	(cd $INSTFS_MP && tar zxpbf $bs $dev) || return 1
127}
128
129cdrom()
130{
131	local dev tf rval
132	cat <<EOF
133The installation utilities are located on the ISO CD9660 filesystem on the
134NetBSD/sparc CD-ROM. We need to mount the filesystem from the CD-ROM device
135which you can specify below. Note: after the installation utilities are
136extracted this filesystem will be unmounted again.
137
138EOF
139
140	rval=0
141	dev="/dev/cd0a"
142	echo -n "CD-ROM device to use [$dev]: "
143	getresp "$dev"; dev="$_resp"
144
145	mount_cd9660 -o rdonly $dev /cdrom || return 1
146
147	tf=/cdrom/installation/bootfs/instfs.tgz
148	(cd $INSTFS_MP && tar zxpf $tf) || rval=1
149	umount /cdrom
150	return $rval
151}
152
153cat <<EOF
154Welcome to the NetBSD/sparc microroot setup utility.
155
156We've just completed the first stage of a two-stage procedure to load a
157fully functional NetBSD installation environment on your machine.  In the
158second stage which is to follow now, a set of additional installation
159utilities must be load from your NetBSD/sparc installation medium.
160
161EOF
162
163while :; do
164	cat <<EOF
165This procedure supports one of the following media:
166
167	1) cdrom
168	2) tape
169	3) floppy
170
171EOF
172	echo -n "Installation medium to load the additional utilities from: "
173	read answer
174	echo ""
175	case "$answer" in
176		1|cdrom)	_func=cdrom;;
177		2|tape)		_func=tape;;
178		3|floppy)	_func=floppy;;
179		*)		echo "option not supported"; continue;;
180	esac
181	$_func && break
182done
183
184# switch to /instfs, and pretend we logged in there.
185chroot $INSTFS_MP /bin/sh /.profile
186
187#
188echo "Back in microroot; halting machine..."
189halt
190