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