install.md revision 1.18 1 1.1 thorpej #!/bin/sh
2 1.1 thorpej #
3 1.18 tsutsui # $NetBSD: install.md,v 1.18 2020/12/05 18:16:11 tsutsui Exp $
4 1.1 thorpej #
5 1.1 thorpej # Copyright (c) 1996 The NetBSD Foundation, Inc.
6 1.1 thorpej # All rights reserved.
7 1.1 thorpej #
8 1.1 thorpej # This code is derived from software contributed to The NetBSD Foundation
9 1.1 thorpej # by Jason R. Thorpe.
10 1.1 thorpej #
11 1.1 thorpej # Redistribution and use in source and binary forms, with or without
12 1.1 thorpej # modification, are permitted provided that the following conditions
13 1.1 thorpej # are met:
14 1.1 thorpej # 1. Redistributions of source code must retain the above copyright
15 1.1 thorpej # notice, this list of conditions and the following disclaimer.
16 1.1 thorpej # 2. Redistributions in binary form must reproduce the above copyright
17 1.1 thorpej # notice, this list of conditions and the following disclaimer in the
18 1.1 thorpej # documentation and/or other materials provided with the distribution.
19 1.1 thorpej #
20 1.1 thorpej # THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
21 1.1 thorpej # ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
22 1.1 thorpej # TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
23 1.6 jtc # PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS
24 1.6 jtc # BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
25 1.1 thorpej # CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
26 1.1 thorpej # SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
27 1.1 thorpej # INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
28 1.1 thorpej # CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
29 1.1 thorpej # ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
30 1.1 thorpej # POSSIBILITY OF SUCH DAMAGE.
31 1.1 thorpej #
32 1.1 thorpej
33 1.1 thorpej #
34 1.1 thorpej # machine dependent section of installation/upgrade script
35 1.1 thorpej #
36 1.1 thorpej
37 1.4 thorpej # Machine-dependent install sets
38 1.18 tsutsui MDSETS="kern-GENERIC xbase xcomp xetc xfont xserver"
39 1.4 thorpej
40 1.1 thorpej md_set_term() {
41 1.1 thorpej if [ ! -z "$TERM" ]; then
42 1.1 thorpej return
43 1.1 thorpej fi
44 1.15 tsutsui echo -n "Specify terminal type [vt100]: "
45 1.15 tsutsui getresp "vt100"
46 1.1 thorpej TERM="$resp"
47 1.1 thorpej export TERM
48 1.1 thorpej # XXX call tset?
49 1.5 thorpej }
50 1.5 thorpej
51 1.5 thorpej md_makerootwritable() {
52 1.5 thorpej # Was: do_mfs_mount "/tmp" "2048"
53 1.5 thorpej # /tmp is the mount point
54 1.5 thorpej # 2048 is the size in DEV_BIZE blocks
55 1.5 thorpej
56 1.5 thorpej umount /tmp > /dev/null 2>&1
57 1.5 thorpej if ! mount_mfs -s 2048 swap /tmp ; then
58 1.5 thorpej cat << \__mfs_failed_1
59 1.5 thorpej
60 1.5 thorpej FATAL ERROR: Can't mount the memory filesystem.
61 1.5 thorpej
62 1.5 thorpej __mfs_failed_1
63 1.5 thorpej exit
64 1.5 thorpej fi
65 1.5 thorpej
66 1.5 thorpej # Bleh. Give mount_mfs a chance to DTRT.
67 1.5 thorpej sleep 2
68 1.1 thorpej }
69 1.1 thorpej
70 1.1 thorpej md_get_diskdevs() {
71 1.1 thorpej # return available disk devices
72 1.17 christos mi_filter_dmesg | awk -F : '/^rd[0-9]*:./ { print $1; }' | sort -u
73 1.17 christos mi_filter_dmesg | awk -F : '/^sd[0-9]*:.*sectors/ { print $1; }' | sort -u
74 1.1 thorpej }
75 1.1 thorpej
76 1.1 thorpej md_get_cddevs() {
77 1.1 thorpej # return available CD-ROM devices
78 1.17 christos mi_filter_dmesg | awk -F : '/^cd[0-9]*:/ { print $1; }' | sort -u
79 1.1 thorpej }
80 1.1 thorpej
81 1.1 thorpej md_get_ifdevs() {
82 1.1 thorpej # return available network interfaces
83 1.17 christos mi_filter_dmesg | awk -F : '/^le[0-9]*:/ { print $1; }' | sort -u
84 1.1 thorpej }
85 1.1 thorpej
86 1.1 thorpej md_installboot() {
87 1.1 thorpej # $1 is the root disk
88 1.1 thorpej
89 1.1 thorpej echo -n "Installing boot block..."
90 1.11 tsutsui /usr/sbin/installboot -v /dev/r${1}c /usr/mdec/uboot.lif
91 1.1 thorpej echo "done."
92 1.1 thorpej }
93 1.1 thorpej
94 1.8 he grep_check_q () {
95 1.8 he pattern=$1; shift
96 1.8 he awk 'BEGIN{ es=1; } /'"$pattern"'/{ es=0; } END{ exit es; }' "$@"
97 1.8 he }
98 1.8 he
99 1.8 he plain_grep () {
100 1.8 he pattern=$1; shift
101 1.8 he awk "/$pattern/"'{ print; }' "$@"
102 1.8 he }
103 1.8 he
104 1.1 thorpej md_checkfordisklabel() {
105 1.1 thorpej # $1 is the disk to check
106 1.1 thorpej
107 1.1 thorpej disklabel -r $1 > /dev/null 2> /tmp/checkfordisklabel
108 1.8 he if grep_check_q "no disk label" /tmp/checkfordisklabel; then
109 1.1 thorpej rval="1"
110 1.8 he elif grep_check_q "disk label corrupted" /tmp/checkfordisklabel; then
111 1.1 thorpej rval="2"
112 1.1 thorpej else
113 1.1 thorpej rval="0"
114 1.1 thorpej fi
115 1.1 thorpej
116 1.1 thorpej rm -f /tmp/checkfordisklabel
117 1.1 thorpej }
118 1.1 thorpej
119 1.1 thorpej hp300_init_label_scsi_disk() {
120 1.1 thorpej # $1 is the disk to label
121 1.1 thorpej
122 1.1 thorpej # Name the disks we install in the temporary fstab.
123 1.16 christos if [ -z "${_disk_instance}" ]; then
124 1.1 thorpej _disk_instance="0"
125 1.1 thorpej else
126 1.16 christos _disk_instance=$(expr $_disk_instance + 1)
127 1.1 thorpej fi
128 1.1 thorpej _cur_disk_name="install-disk-${_disk_instance}"
129 1.1 thorpej
130 1.1 thorpej # Get geometry information from the user.
131 1.1 thorpej more << \__scsi_label_1
132 1.1 thorpej
133 1.1 thorpej You will need to provide some information about your disk's geometry.
134 1.1 thorpej Geometry info for SCSI disks was printed at boot time. If that information
135 1.1 thorpej is not available, use the information provided in your disk's manual.
136 1.1 thorpej Please note that the geometry printed at boot time is preferred.
137 1.1 thorpej
138 1.1 thorpej IMPORTANT NOTE: due to a limitation in the disklabel(8) program, the
139 1.1 thorpej number of cylinders on the disk will be increased by 1 so that the initial
140 1.1 thorpej label can be placed on disk for editing. When the disklabel editor appears,
141 1.1 thorpej make absolutely certain you subtract 1 from the total number of cylinders,
142 1.1 thorpej and adjust the size of partition 'c' such that:
143 1.1 thorpej
144 1.1 thorpej size = (sectors per track) * (tracks per cyl) * (total cylinders)
145 1.1 thorpej
146 1.1 thorpej Note that the disklabel editor will be run twice; once to set the size of
147 1.1 thorpej partition 'c' and correct the geometry, and again so that you may correctly
148 1.1 thorpej edit the partition map. This is to work around the afore mentioned
149 1.1 thorpej limitation in disklabel(8). Apologies offered in advance.
150 1.1 thorpej
151 1.1 thorpej __scsi_label_1
152 1.1 thorpej
153 1.1 thorpej # Give the opportunity to review the boot messages.
154 1.1 thorpej echo -n "Review boot messages now? [y] "
155 1.1 thorpej getresp "y"
156 1.1 thorpej case "$resp" in
157 1.1 thorpej y*|Y*)
158 1.1 thorpej (echo ""; dmesg; echo "") | more
159 1.1 thorpej ;;
160 1.1 thorpej
161 1.1 thorpej *)
162 1.1 thorpej ;;
163 1.1 thorpej esac
164 1.1 thorpej
165 1.1 thorpej echo ""
166 1.1 thorpej echo -n "Number of bytes per disk sector? [512] "
167 1.1 thorpej getresp "512"
168 1.1 thorpej _secsize="$resp"
169 1.1 thorpej
170 1.1 thorpej resp="" # force one iteration
171 1.16 christos while [ -z "${resp}" ]; do
172 1.1 thorpej echo -n "Number of cylinders? "
173 1.1 thorpej getresp ""
174 1.1 thorpej done
175 1.1 thorpej _cylinders="$resp"
176 1.16 christos _fudge_cyl=$(expr $_cylinders + 1)
177 1.1 thorpej
178 1.1 thorpej resp="" # force one iteration
179 1.16 christos while [ -z "${resp}" ]; do
180 1.1 thorpej echo -n "Number of tracks (heads)? "
181 1.1 thorpej getresp ""
182 1.1 thorpej done
183 1.1 thorpej _tracks_per_cyl="$resp"
184 1.1 thorpej
185 1.1 thorpej resp="" # force one iteration
186 1.16 christos while [ -z "${resp}" ]; do
187 1.1 thorpej echo -n "Number of disk sectors (blocks)? "
188 1.1 thorpej getresp ""
189 1.1 thorpej done
190 1.1 thorpej _nsectors="$resp"
191 1.1 thorpej
192 1.1 thorpej # Calculate some values we need.
193 1.16 christos _sec_per_cyl=$(expr $_nsectors / $_cylinders)
194 1.16 christos _sec_per_track=$(expr $_sec_per_cyl / $_tracks_per_cyl)
195 1.16 christos _new_c_size=$(expr $_sec_per_track \* $_tracks_per_cyl \* $_cylinders)
196 1.1 thorpej
197 1.1 thorpej # Emit a disktab entry, suitable for getting started.
198 1.16 christos # What we have is a 'c' partition with the total number of
199 1.16 christos # blocks, and an 'a' partition with 1 sector; just large enough
200 1.1 thorpej # to open. Don't ask.
201 1.1 thorpej echo "" >> /etc/disktab
202 1.1 thorpej echo "# Created by install" >> /etc/disktab
203 1.1 thorpej echo "${_cur_disk_name}:\\" >> /etc/disktab
204 1.1 thorpej echo -n " :ty=winchester:ns#${_sec_per_track}:" >> /etc/disktab
205 1.1 thorpej echo "nt#${_tracks_per_cyl}:nc#${_fudge_cyl}:\\" >> /etc/disktab
206 1.1 thorpej echo " :pa#1:\\" >> /etc/disktab
207 1.1 thorpej echo " :pc#${_nsectors}:" >> /etc/disktab
208 1.1 thorpej
209 1.1 thorpej # Ok, here's what we need to do. First of all, we install
210 1.16 christos # this initial label by opening the 'c' partition of the disk
211 1.16 christos # and using the '-r' flag for disklabel(8). However, because
212 1.1 thorpej # of limitations in disklabel(8), we've had to fudge the number
213 1.1 thorpej # of cylinders up 1 so that disklabel(8) doesn't complain about
214 1.16 christos # 'c' running past the end of the disk, which can be quite
215 1.1 thorpej # common even with OEM HP drives! So, we've given ourselves
216 1.16 christos # an 'a' partition, which is the minimum needed to open the disk
217 1.1 thorpej # so that we can perform the DIOCWDLABEL ioctl. So, once the
218 1.16 christos # initial label is installed, we open the 'a' partition so that
219 1.1 thorpej # we can fix up the number of cylinders and make the size of
220 1.16 christos # 'c' come out to (ncyl * ntracks_per_cyl * nsec_per_track).
221 1.16 christos # After that's done, we re-open 'c' and let the user actually
222 1.1 thorpej # edit the partition table. It's horrible, I know. Bleh.
223 1.1 thorpej
224 1.1 thorpej disklabel -W ${1}
225 1.1 thorpej if ! disklabel -w -r ${1} ${_cur_disk_name}; then
226 1.1 thorpej echo ""
227 1.1 thorpej echo "ERROR: can't bootstrap disklabel!"
228 1.1 thorpej rval="1"
229 1.1 thorpej return
230 1.1 thorpej fi
231 1.1 thorpej
232 1.1 thorpej echo ""
233 1.1 thorpej echo "The disklabel editor will now start. During this phase, you"
234 1.1 thorpej echo "must reset the 'cylinders' value to ${_cylinders}, and adjust"
235 1.1 thorpej echo "the size of partition 'c' to ${_new_c_size}. Do not modify"
236 1.1 thorpej echo "the partition map at this time. You will have the opportunity"
237 1.1 thorpej echo "to do so in a moment."
238 1.1 thorpej echo ""
239 1.1 thorpej echo -n "Press <return> to continue. "
240 1.1 thorpej getresp ""
241 1.1 thorpej
242 1.1 thorpej disklabel -W ${1}
243 1.1 thorpej if ! disklabel -e /dev/r${1}a; then
244 1.1 thorpej echo ""
245 1.1 thorpej echo "ERROR: can't fixup geometry!"
246 1.1 thorpej rval="1"
247 1.1 thorpej return
248 1.1 thorpej fi
249 1.1 thorpej
250 1.1 thorpej cat << \__explain_motives_2
251 1.1 thorpej
252 1.1 thorpej Now that you have corrected the geometry of your disk, you may edit the
253 1.1 thorpej partition map. Don't forget to fill in the fsize (frag size), bsize
254 1.1 thorpej (filesystem block size), and cpg (cylinders per group) values. If you
255 1.1 thorpej are unsure what these should be, use:
256 1.1 thorpej
257 1.1 thorpej fsize: 1024
258 1.1 thorpej bsize: 4096
259 1.1 thorpej cpg: 16
260 1.1 thorpej
261 1.1 thorpej __explain_motives_2
262 1.1 thorpej echo -n "Press <return> to continue. "
263 1.1 thorpej getresp ""
264 1.1 thorpej
265 1.1 thorpej rval="0"
266 1.1 thorpej return
267 1.1 thorpej }
268 1.1 thorpej
269 1.1 thorpej hp300_init_label_hpib_disk() {
270 1.1 thorpej # $1 is the disk to label
271 1.1 thorpej
272 1.1 thorpej # We look though the boot messages attempting to find
273 1.1 thorpej # the model number for the provided disk.
274 1.1 thorpej _hpib_disktype=""
275 1.8 he if dmesg | grep_check_q "${1}: "; then
276 1.16 christos _hpib_disktype=HP$(dmesg | plain_grep "${1}: " | sort -u | \
277 1.16 christos awk '{print $2}')
278 1.1 thorpej fi
279 1.16 christos if [ -z "${_hpib_disktype}" ]; then
280 1.1 thorpej echo ""
281 1.1 thorpej echo "ERROR: $1 doesn't appear to exist?!"
282 1.1 thorpej rval="1"
283 1.1 thorpej return
284 1.1 thorpej fi
285 1.1 thorpej
286 1.1 thorpej # Peer through /etc/disktab to see if the disk has a "default"
287 1.1 thorpej # layout. If it doesn't, we have to treat it like a SCSI disk;
288 1.1 thorpej # i.e. prompt for geometry, and create a default to place
289 1.1 thorpej # on the disk.
290 1.8 he if ! grep_check_q "${_hpib_disktype}[:|]" /etc/disktab; then
291 1.1 thorpej echo ""
292 1.1 thorpej echo "WARNING: can't find defaults for $1 ($_hpib_disktype)"
293 1.1 thorpej echo ""
294 1.1 thorpej hp300_init_label_scsi_disk $1
295 1.1 thorpej return
296 1.1 thorpej fi
297 1.1 thorpej
298 1.1 thorpej # We've found the defaults. Now use them to place an initial
299 1.1 thorpej # disklabel on the disk.
300 1.1 thorpej # XXX What kind of ugliness to we have to deal with to get around
301 1.1 thorpej # XXX stupidity on the part of disklabel semantics?
302 1.1 thorpej disklabel -W ${1}
303 1.1 thorpej if ! disklabel -r -w ${1} $_hpib_disktype; then
304 1.1 thorpej # Error message displayed by disklabel(8)
305 1.1 thorpej echo ""
306 1.1 thorpej echo "ERROR: can't install default label!"
307 1.1 thorpej echo ""
308 1.1 thorpej echo -n "Try a different method? [y] "
309 1.1 thorpej getresp "y"
310 1.1 thorpej case "$resp" in
311 1.1 thorpej y*|Y*)
312 1.1 thorpej hp300_init_label_scsi_disk $1
313 1.1 thorpej return
314 1.1 thorpej ;;
315 1.1 thorpej
316 1.1 thorpej *)
317 1.1 thorpej rval="1"
318 1.1 thorpej return
319 1.1 thorpej ;;
320 1.1 thorpej esac
321 1.1 thorpej fi
322 1.1 thorpej
323 1.1 thorpej rval="0"
324 1.1 thorpej return
325 1.1 thorpej }
326 1.1 thorpej
327 1.1 thorpej md_labeldisk() {
328 1.1 thorpej # $1 is the disk to label
329 1.1 thorpej
330 1.1 thorpej # Check to see if there is a disklabel present on the device.
331 1.1 thorpej # If so, we can just edit it. If not, we must first install
332 1.1 thorpej # a default label.
333 1.1 thorpej md_checkfordisklabel $1
334 1.1 thorpej case "$rval" in
335 1.1 thorpej 0)
336 1.1 thorpej # Go ahead and just edit the disklabel.
337 1.1 thorpej disklabel -W $1
338 1.1 thorpej disklabel -e $1
339 1.1 thorpej ;;
340 1.1 thorpej
341 1.1 thorpej *)
342 1.1 thorpej echo -n "No disklabel present, installing a default for type: "
343 1.1 thorpej case "$1" in
344 1.1 thorpej rd*)
345 1.1 thorpej echo "HP-IB"
346 1.1 thorpej hp300_init_label_hpib_disk $1
347 1.1 thorpej ;;
348 1.1 thorpej
349 1.1 thorpej sd*)
350 1.1 thorpej echo "SCSI"
351 1.1 thorpej hp300_init_label_scsi_disk $1
352 1.1 thorpej ;;
353 1.1 thorpej
354 1.1 thorpej *)
355 1.1 thorpej # Shouldn't happen, but...
356 1.1 thorpej echo "unknown?! Giving up."
357 1.1 thorpej return;
358 1.1 thorpej ;;
359 1.1 thorpej esac
360 1.1 thorpej
361 1.1 thorpej # Check to see if installing the default was
362 1.1 thorpej # successful. If so, go ahead and pop into the
363 1.1 thorpej # disklabel editor.
364 1.16 christos if [ "${rval}" != "0" ]; then
365 1.1 thorpej echo "Sorry, can't label this disk."
366 1.1 thorpej echo ""
367 1.1 thorpej return;
368 1.1 thorpej fi
369 1.1 thorpej
370 1.1 thorpej # We have some defaults installed. Pop into
371 1.1 thorpej # the disklabel editor.
372 1.1 thorpej disklabel -W $1
373 1.1 thorpej if ! disklabel -e $1; then
374 1.1 thorpej echo ""
375 1.1 thorpej echo "ERROR: couldn't set partition map for $1"
376 1.1 thorpej echo ""
377 1.1 thorpej fi
378 1.1 thorpej esac
379 1.1 thorpej }
380 1.1 thorpej
381 1.1 thorpej md_prep_disklabel() {
382 1.1 thorpej # $1 is the root disk
383 1.1 thorpej
384 1.1 thorpej # Make sure there's a disklabel there. If there isn't, puke after
385 1.1 thorpej # disklabel prints the error message.
386 1.1 thorpej md_checkfordisklabel $1
387 1.1 thorpej case "$resp" in
388 1.1 thorpej 1)
389 1.1 thorpej cat << \__md_prep_disklabel_1
390 1.1 thorpej
391 1.1 thorpej FATAL ERROR: There is no disklabel present on the root disk! You must
392 1.1 thorpej label the disk with SYS_INST before continuing.
393 1.1 thorpej
394 1.1 thorpej __md_prep_disklabel_1
395 1.1 thorpej exit
396 1.1 thorpej ;;
397 1.1 thorpej
398 1.1 thorpej 2)
399 1.1 thorpej cat << \__md_prep_disklabel_2
400 1.1 thorpej
401 1.1 thorpej FATAL ERROR: The disklabel on the root disk is corrupted! You must
402 1.1 thorpej re-label the disk with SYS_INST before continuing.
403 1.1 thorpej
404 1.1 thorpej __md_prep_disklabel_2
405 1.1 thorpej exit
406 1.1 thorpej ;;
407 1.1 thorpej
408 1.1 thorpej *)
409 1.1 thorpej ;;
410 1.1 thorpej esac
411 1.1 thorpej
412 1.1 thorpej # Give the user the opportinuty to edit the root disklabel.
413 1.1 thorpej cat << \__md_prep_disklabel_3
414 1.1 thorpej
415 1.1 thorpej You have already placed a disklabel onto the target root disk.
416 1.1 thorpej However, due to the limitations of the standalone program used
417 1.1 thorpej you may want to edit that label to change partition type information.
418 1.1 thorpej You will be given the opporunity to do that now. Note that you may
419 1.1 thorpej not change the size or location of any presently open partition.
420 1.1 thorpej
421 1.1 thorpej __md_prep_disklabel_3
422 1.1 thorpej echo -n "Do you wish to edit the root disklabel? [y] "
423 1.1 thorpej getresp "y"
424 1.1 thorpej case "$resp" in
425 1.1 thorpej y*|Y*)
426 1.1 thorpej disklabel -W $1
427 1.1 thorpej disklabel -e $1
428 1.1 thorpej ;;
429 1.1 thorpej
430 1.1 thorpej *)
431 1.1 thorpej ;;
432 1.1 thorpej esac
433 1.1 thorpej
434 1.1 thorpej cat << \__md_prep_disklabel_4
435 1.1 thorpej
436 1.1 thorpej You will now be given the opportunity to place disklabels on any additional
437 1.1 thorpej disks on your system.
438 1.1 thorpej __md_prep_disklabel_4
439 1.1 thorpej
440 1.16 christos _DKDEVS=$(rmel ${ROOTDISK} ${_DKDEVS})
441 1.16 christos resp="not-done" # force at least one iteration
442 1.16 christos while [ "$resp" != "done" ]; do
443 1.1 thorpej labelmoredisks
444 1.1 thorpej done
445 1.2 thorpej }
446 1.2 thorpej
447 1.2 thorpej md_copy_kernel() {
448 1.12 tsutsui if [ ! -f /mnt/netbsd ]; then
449 1.12 tsutsui echo -n "No kernel set extracted. Copying miniroot kernel..."
450 1.12 tsutsui cp -p /netbsd /mnt/netbsd
451 1.12 tsutsui echo "done."
452 1.7 gmcgarry
453 1.12 tsutsui cat << __md_copy_kernel_1
454 1.7 gmcgarry
455 1.7 gmcgarry The INSTALL kernel from the miniroot has been copied to your root disk.
456 1.7 gmcgarry It has minimal facilities enabled. The first thing you should do after
457 1.7 gmcgarry installation is install an appropriate kernel for your machine (such as
458 1.7 gmcgarry the GENERIC kernel).
459 1.7 gmcgarry
460 1.7 gmcgarry __md_copy_kernel_1
461 1.12 tsutsui echo -n "Press <return> to continue. "
462 1.12 tsutsui getresp ""
463 1.12 tsutsui fi
464 1.1 thorpej }
465 1.1 thorpej
466 1.1 thorpej # Note, while they might not seem machine-dependent, the
467 1.1 thorpej # welcome banner and the punt message may contain information
468 1.1 thorpej # and/or instructions specific to the type of machine.
469 1.1 thorpej
470 1.1 thorpej md_welcome_banner() {
471 1.1 thorpej (
472 1.1 thorpej echo ""
473 1.1 thorpej echo "Welcome to the NetBSD/hp300 ${VERSION} installation program."
474 1.1 thorpej cat << \__welcome_banner_1
475 1.1 thorpej
476 1.1 thorpej This program is designed to help you install NetBSD on your system in a
477 1.1 thorpej simple and rational way. You'll be asked several questions, and it would
478 1.1 thorpej probably be useful to have your disk's hardware manual, the installation
479 1.1 thorpej notes, and a calculator handy.
480 1.1 thorpej
481 1.1 thorpej In particular, you will need to know some reasonably detailed
482 1.1 thorpej information about your disk's geometry. This program can determine
483 1.1 thorpej some limited information about certain specific types of HP-IB disks.
484 1.1 thorpej If you have SCSI disks, however, prior knowledge of disk geometry
485 1.1 thorpej is absolutely essential. The kernel will attempt to display geometry
486 1.1 thorpej information for SCSI disks during boot, if possible. If you did not
487 1.1 thorpej make it note of it before, you may wish to reboot and jot down your
488 1.1 thorpej disk's geometry before proceeding.
489 1.1 thorpej
490 1.1 thorpej As with anything which modifies your hard disk's contents, this
491 1.1 thorpej program can cause SIGNIFICANT data loss, and you are advised
492 1.1 thorpej to make sure your hard drive is backed up before beginning the
493 1.1 thorpej installation process.
494 1.1 thorpej
495 1.1 thorpej Default answers are displyed in brackets after the questions.
496 1.1 thorpej You can hit Control-C at any time to quit, but if you do so at a
497 1.1 thorpej prompt, you may have to hit return. Also, quitting in the middle of
498 1.1 thorpej installation may leave your system in an inconsistent state.
499 1.1 thorpej
500 1.1 thorpej __welcome_banner_1
501 1.1 thorpej ) | more
502 1.1 thorpej }
503 1.1 thorpej
504 1.1 thorpej md_not_going_to_install() {
505 1.1 thorpej cat << \__not_going_to_install_1
506 1.1 thorpej
507 1.1 thorpej OK, then. Enter 'halt' at the prompt to halt the machine. Once the
508 1.1 thorpej machine has halted, power-cycle the system to load new boot code.
509 1.1 thorpej
510 1.1 thorpej __not_going_to_install_1
511 1.1 thorpej }
512 1.1 thorpej
513 1.1 thorpej md_congrats() {
514 1.1 thorpej cat << \__congratulations_1
515 1.1 thorpej
516 1.1 thorpej CONGRATULATIONS! You have successfully installed NetBSD! To boot the
517 1.1 thorpej installed system, enter halt at the command prompt. Once the system has
518 1.1 thorpej halted, power-cycle the machine in order to load new boot code. Make sure
519 1.1 thorpej you boot from the root disk.
520 1.1 thorpej
521 1.1 thorpej __congratulations_1
522 1.1 thorpej }
523 1.1 thorpej
524 1.4 thorpej md_native_fstype() {
525 1.4 thorpej # Nothing to do.
526 1.4 thorpej }
527 1.4 thorpej
528 1.4 thorpej md_native_fsopts() {
529 1.4 thorpej # Nothing to do.
530 1.4 thorpej }
531