dot.profile revision 1.13
1# $NetBSD: dot.profile,v 1.13 2000/10/31 20:53:04 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 bsa
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.
104
105EOF
106	dev="/dev/nrst0"
107	echo -n "Tape device to load the installation utilities from [$dev]: "
108	getresp "$dev"; dev="$_resp"
109
110	fn=2
111	echo -n "Tape file number [$fn]: "
112	getresp "$fn"; fn="$_resp"
113
114	echo -n "Tape block size (use only if you know you need it): "
115	getresp ""; if [ "$_resp" != "" ]; then
116		bsa="-b $_resp"
117	fi
118
119	echo "Positioning tape... "
120	mt -f $dev asf $(($fn - 1))
121	[ $? = 0 ] || return 1
122
123	echo "Extracting installation utilities... "
124	(cd $INSTFS_MP && tar $bsa -z -x -p -f $dev) || return 1
125}
126
127cdrom()
128{
129	local dev tf rval
130	cat <<EOF
131The installation utilities are located on the ISO CD9660 filesystem on the
132NetBSD/sparc CD-ROM. We need to mount the filesystem from the CD-ROM device
133which you can specify below. Note: after the installation utilities are
134extracted this filesystem will be unmounted again.
135
136EOF
137
138	rval=0
139	dev="/dev/cd0a"
140	echo -n "CD-ROM device to use [$dev]: "
141	getresp "$dev"; dev="$_resp"
142
143	mount_cd9660 -o rdonly $dev /cdrom || return 1
144
145	tf=/cdrom/installation/bootfs/instfs.tgz
146	(cd $INSTFS_MP && tar zxpf $tf) || rval=1
147	umount /cdrom
148	return $rval
149}
150
151cat <<EOF
152Welcome to the NetBSD/sparc microroot setup utility.
153
154We've just completed the first stage of a two-stage procedure to load a
155fully functional NetBSD installation environment on your machine.  In the
156second stage which is to follow now, a set of additional installation
157utilities must be load from your NetBSD/sparc installation medium.
158
159EOF
160
161while :; do
162	cat <<EOF
163This procedure supports one of the following media:
164
165	1) cdrom
166	2) tape
167	3) floppy
168
169EOF
170	echo -n "Installation medium to load the additional utilities from: "
171	read answer
172	echo ""
173	case "$answer" in
174		1|cdrom)	_func=cdrom;;
175		2|tape)		_func=tape;;
176		3|floppy)	_func=floppy;;
177		*)		echo "option not supported"; continue;;
178	esac
179	$_func && break
180done
181
182# switch to /instfs, and pretend we logged in there.
183chroot $INSTFS_MP /bin/sh /.profile
184
185#
186echo "Back in microroot; halting machine..."
187halt
188