install.md revision 1.8 1 # $NetBSD: install.md,v 1.8 1996/08/26 02:34:44 thorpej Exp $
2 #
3 #
4 # Copyright (c) 1996 The NetBSD Foundation, Inc.
5 # All rights reserved.
6 #
7 # This code is derived from software contributed to The NetBSD Foundation
8 # by Jason R. Thorpe.
9 #
10 # Redistribution and use in source and binary forms, with or without
11 # modification, are permitted provided that the following conditions
12 # are met:
13 # 1. Redistributions of source code must retain the above copyright
14 # notice, this list of conditions and the following disclaimer.
15 # 2. Redistributions in binary form must reproduce the above copyright
16 # notice, this list of conditions and the following disclaimer in the
17 # documentation and/or other materials provided with the distribution.
18 # 3. All advertising materials mentioning features or use of this software
19 # must display the following acknowledgement:
20 # This product includes software developed by the NetBSD
21 # Foundation, Inc. and its contributors.
22 # 4. Neither the name of The NetBSD Foundation nor the names of its
23 # contributors may be used to endorse or promote products derived
24 # from this software without specific prior written permission.
25 #
26 # THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
27 # ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
28 # TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
29 # PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE
30 # LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
31 # CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
32 # SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
33 # INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
34 # CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
35 # ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
36 # POSSIBILITY OF SUCH DAMAGE.
37 #
38
39 #
40 # machine dependent section of installation/upgrade script.
41 #
42
43 # Machine-dependent install sets
44 MDSETS="xbin xman xinc xcon"
45
46 md_set_term() {
47 if [ ! -z "$TERM" ]; then
48 return
49 fi
50 echo -n "Specify terminal type [sun]: "
51 getresp "sun"
52 TERM="$resp"
53 export TERM
54 }
55
56 md_get_diskdevs() {
57 # return available disk devices
58 dmesg | egrep "(^sd[0-9] |^x[dy][0-9] )" | cut -d" " -f1 | sort -u
59 }
60
61 md_get_cddevs() {
62 # return available CDROM devices
63 dmesg | grep "^cd[0-9] " | cut -d" " -f1 | sort -u
64 }
65
66 md_get_ifdevs() {
67 # return available network devices
68 dmesg | egrep "(^le[0-9] |^ie[0-9] )" | cut -d" " -f1 | sort -u
69 }
70
71 md_get_partition_range() {
72 # return range of valid partition letters
73 echo "[a-h]"
74 }
75
76 md_installboot() {
77 echo "Installing boot block..."
78 /usr/mdec/binstall ffs /mnt
79 }
80
81 md_native_fstype() {
82 }
83
84 md_native_fsopts() {
85 }
86
87 md_checkfordisklabel() {
88 # $1 is the disk to check
89 local rval
90
91 disklabel $1 > /dev/null 2> /tmp/checkfordisklabel
92 if grep "no disk label" /tmp/checkfordisklabel; then
93 rval=1
94 elif grep "disk label corrupted" /tmp/checkfordisklabel; then
95 rval=2
96 else
97 rval=0
98 fi
99
100 rm -f /tmp/checkfordisklabel
101 return $rval
102 }
103
104 md_prep_disklabel()
105 {
106 local _disk
107
108 _disk=$1
109 md_checkfordisklabel $_disk
110 case $? in
111 0)
112 echo -n "Do you wish to edit the disklabel on $_disk? [y]"
113 ;;
114 1)
115 echo "WARNING: Disk $_disk has no label"
116 echo -n "Do you want to create one with the disklabel editor? [y]"
117 ;;
118 2)
119 echo "WARNING: Label on disk $_disk is corrupted"
120 echo -n "Do you want to try and repair the damage using the disklabel editor? [y]"
121 ;;
122 esac
123
124 getresp "y"
125 case "$resp" in
126 y*|Y*) ;;
127 *) return ;;
128 esac
129
130 # display example
131 cat << \__md_prep_disklabel_1
132
133 Here is an example of what the partition information will look like once
134 you have entered the disklabel editor. Disk partition sizes and offsets
135 are in sector (most likely 512 bytes) units. Make sure these size/offset
136 pairs are on cylinder boundaries (the number of sector per cylinder is
137 given in the `sectors/cylinder' entry, which is not shown here).
138
139 Do not change any parameters except the partition layout and the label name.
140 It's probably also wisest not to touch the `8 partitions:' line, even
141 in case you have defined less than eight partitions.
142
143 [Example]
144 8 partitions:
145 # size offset fstype [fsize bsize cpg]
146 a: 50176 0 4.2BSD 1024 8192 16 # (Cyl. 0 - 111)
147 b: 64512 50176 swap # (Cyl. 112 - 255)
148 c: 640192 0 unknown # (Cyl. 0 - 1428)
149 d: 525504 114688 4.2BSD 1024 8192 16 # (Cyl. 256 - 1428)
150 [End of example]
151
152 __md_prep_disklabel_1
153 echo -n "Press [Enter] to continue "
154 getresp ""
155 disklabel -W ${_disk}
156 disklabel -e ${_disk}
157 }
158
159 md_copy_kernel() {
160 echo -n "Copying kernel..."
161 cp -p /netbsd /mnt/netbsd
162 echo "done."
163 }
164
165 md_welcome_banner() {
166 {
167 if [ "$MODE" = "install" ]; then
168 echo ""
169 echo "Welcome to the NetBSD/sparc ${VERSION} installation program."
170 cat << \__welcome_banner_1
171
172 This program is designed to help you put NetBSD on your disk,
173 in a simple and rational way. You'll be asked several questions,
174 and it would probably be useful to have your disk's hardware
175 manual, the installation notes, and a calculator handy.
176 __welcome_banner_1
177
178 else
179 echo ""
180 echo "Welcome to the NetBSD/sparc ${VERSION} upgrade program."
181 cat << \__welcome_banner_2
182
183 This program is designed to help you upgrade your NetBSD system in a
184 simple and rational way.
185
186 As a reminder, installing the `etc' binary set is NOT recommended.
187 Once the rest of your system has been upgraded, you should manually
188 merge any changes to files in the `etc' set into those files which
189 already exist on your system.
190 __welcome_banner_2
191 fi
192
193 cat << \__welcome_banner_3
194
195 As with anything which modifies your disk's contents, this
196 program can cause SIGNIFICANT data loss, and you are advised
197 to make sure your data is backed up before beginning the
198 installation process.
199
200 Default answers are displyed in brackets after the questions.
201 You can hit Control-C at any time to quit, but if you do so at a
202 prompt, you may have to hit return. Also, quitting in the middle of
203 installation may leave your system in an inconsistent state.
204
205 __welcome_banner_3
206 } | more
207 }
208
209 md_not_going_to_install() {
210 cat << \__not_going_to_install_1
211
212 OK, then. Enter `halt' at the prompt to halt the machine. Once the
213 machine has halted, power-cycle the system to load new boot code.
214
215 __not_going_to_install_1
216 }
217
218 md_congrats() {
219 local what;
220 if [ "$MODE" = "install" ]; then
221 what="installed";
222 else
223 what="upgraded";
224 fi
225 cat << __congratulations_1
226
227 CONGRATULATIONS! You have successfully $what NetBSD!
228 To boot the installed system, enter halt at the command prompt. Once the
229 system has halted, reset the machine and boot from the disk.
230
231 __congratulations_1
232 }
233