Home | History | Annotate | Line # | Download | only in sparc
install.md revision 1.6
      1 #	$NetBSD: install.md,v 1.6 1996/06/26 21:35:32 pk 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 md_set_term() {
     44 	if [ ! -z "$TERM" ]; then
     45 		return
     46 	fi
     47 	echo -n "Specify terminal type [sun]: "
     48 	getresp "sun"
     49 	TERM="$resp"
     50 	export TERM
     51 }
     52 
     53 md_get_diskdevs() {
     54 	# return available disk devices
     55 	dmesg | egrep "(^sd[0-9] |^x[dy][0-9] )" | cut -d" " -f1 | sort -u
     56 }
     57 
     58 md_get_cddevs() {
     59 	# return available CDROM devices
     60 	dmesg | grep "^cd[0-9] " | cut -d" " -f1 | sort -u
     61 }
     62 
     63 md_get_ifdevs() {
     64 	# return available network devices
     65 	dmesg | egrep "(^le[0-9] |^ie[0-9] )" | cut -d" " -f1 | sort -u
     66 }
     67 
     68 md_get_partition_range() {
     69     # return range of valid partition letters
     70     echo "[a-h]"
     71 }
     72 
     73 md_installboot() {
     74 	echo "Installing boot block..."
     75 	/usr/mdec/binstall ffs /mnt
     76 }
     77 
     78 md_native_fstype() {
     79 }
     80 
     81 md_native_fsopts() {
     82 }
     83 
     84 md_checkfordisklabel() {
     85 	# $1 is the disk to check
     86 	local rval
     87 
     88 	disklabel $1 > /dev/null 2> /tmp/checkfordisklabel
     89 	if grep "no disk label" /tmp/checkfordisklabel; then
     90 		rval=1
     91 	elif grep "disk label corrupted" /tmp/checkfordisklabel; then
     92 		rval=2
     93 	else
     94 		rval=0
     95 	fi
     96 
     97 	rm -f /tmp/checkfordisklabel
     98 	return $rval
     99 }
    100 
    101 md_prep_disklabel()
    102 {
    103 	local _disk
    104 
    105 	_disk=$1
    106 	md_checkfordisklabel $_disk
    107 	case $? in
    108 	0)
    109 		echo -n "Do you wish to edit the disklabel on $_disk? [y]"
    110 		;;
    111 	1)
    112 		echo "WARNING: Disk $_disk has no label"
    113 		echo -n "Do you want to create one with the disklabel editor? [y]"
    114 		;;
    115 	2)
    116 		echo "WARNING: Label on disk $_disk is corrupted"
    117 		echo -n "Do you want to try and repair the damage using the disklabel editor? [y]"
    118 		;;
    119 	esac
    120 
    121 	getresp "y"
    122 	case "$resp" in
    123 	y*|Y*) ;;
    124 	*)	return ;;
    125 	esac
    126 
    127 	# display example
    128 	cat << \__md_prep_disklabel_1
    129 
    130 Here is an example of what the partition information will look like once
    131 you have entered the disklabel editor. Disk partition sizes and offsets
    132 are in sector (most likely 512 bytes) units. Make sure these size/offset
    133 pairs are on cylinder boundaries (the number of sector per cylinder is
    134 given in the `sectors/cylinder' entry, which is not shown here).
    135 
    136 Do not change any parameters except the partition layout and the label name.
    137 It's probably also wisest not to touch the `8 partitions:' line, even
    138 in case you have defined less than eight partitions.
    139 
    140 [Example]
    141 8 partitions:
    142 #        size   offset    fstype   [fsize bsize   cpg]
    143   a:    50176        0    4.2BSD     1024  8192    16   # (Cyl.    0 - 111)
    144   b:    64512    50176      swap                        # (Cyl.  112 - 255)
    145   c:   640192        0   unknown                        # (Cyl.    0 - 1428)
    146   d:   525504   114688    4.2BSD     1024  8192    16   # (Cyl.  256 - 1428)
    147 [End of example]
    148 
    149 __md_prep_disklabel_1
    150 	echo -n "Press [Enter] to continue "
    151 	getresp ""
    152 	disklabel -W ${_disk}
    153 	disklabel -e ${_disk}
    154 }
    155 
    156 md_copy_kernel() {
    157 	echo -n "Copying kernel..."
    158 	cp -p /netbsd /mnt/netbsd
    159 	echo "done."
    160 }
    161 
    162 md_welcome_banner() {
    163 {
    164 	if [ "$MODE" = "install" ]; then
    165 		echo ""
    166 		echo "Welcome to the NetBSD/sparc ${VERSION} installation program."
    167 		cat << \__welcome_banner_1
    168 
    169 This program is designed to help you put NetBSD on your disk,
    170 in a simple and rational way.  You'll be asked several questions,
    171 and it would probably be useful to have your disk's hardware
    172 manual, the installation notes, and a calculator handy.
    173 __welcome_banner_1
    174 
    175 	else
    176 		echo ""
    177 		echo "Welcome to the NetBSD/sparc ${VERSION} upgrade program."
    178 		cat << \__welcome_banner_2
    179 
    180 This program is designed to help you upgrade your NetBSD system in a
    181 simple and rational way.
    182 
    183 As a reminder, installing the `etc' binary set is NOT recommended.
    184 Once the rest of your system has been upgraded, you should manually
    185 merge any changes to files in the `etc' set into those files which
    186 already exist on your system.
    187 __welcome_banner_2
    188 	fi
    189 
    190 cat << \__welcome_banner_3
    191 
    192 As with anything which modifies your disk's contents, this
    193 program can cause SIGNIFICANT data loss, and you are advised
    194 to make sure your data is backed up before beginning the
    195 installation process.
    196 
    197 Default answers are displyed in brackets after the questions.
    198 You can hit Control-C at any time to quit, but if you do so at a
    199 prompt, you may have to hit return.  Also, quitting in the middle of
    200 installation may leave your system in an inconsistent state.
    201 
    202 __welcome_banner_3
    203 } | more
    204 }
    205 
    206 md_not_going_to_install() {
    207 	cat << \__not_going_to_install_1
    208 
    209 OK, then.  Enter `halt' at the prompt to halt the machine.  Once the
    210 machine has halted, power-cycle the system to load new boot code.
    211 
    212 __not_going_to_install_1
    213 }
    214 
    215 md_congrats() {
    216 	local what;
    217 	if [ "$MODE" = "install" ]; then
    218 		what="installed";
    219 	else
    220 		what="upgraded";
    221 	fi
    222 	cat << __congratulations_1
    223 
    224 CONGRATULATIONS!  You have successfully $what NetBSD!
    225 To boot the installed system, enter halt at the command prompt. Once the
    226 system has halted, reset the machine and boot from the disk.
    227 
    228 __congratulations_1
    229 }
    230