Home | History | Annotate | Line # | Download | only in script-installer
dot.instutils revision 1.6
      1 # $NetBSD: dot.instutils,v 1.6 2000/06/14 06:48:57 cgd Exp $
      2 #
      3 # Copyright (c) 1994 Christopher G. Demetriou
      4 # All rights reserved.
      5 # 
      6 # Redistribution and use in source and binary forms, with or without
      7 # modification, are permitted provided that the following conditions
      8 # are met:
      9 # 1. Redistributions of source code must retain the above copyright
     10 #    notice, this list of conditions and the following disclaimer.
     11 # 2. Redistributions in binary form must reproduce the above copyright
     12 #    notice, this list of conditions and the following disclaimer in the
     13 #    documentation and/or other materials provided with the distribution.
     14 # 3. All advertising materials mentioning features or use of this software
     15 #    must display the following acknowledgement:
     16 #	This product includes software developed by Christopher G. Demetriou.
     17 # 4. The name of the author may not be used to endorse or promote products
     18 #    derived from this software without specific prior written permission
     19 #
     20 # THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
     21 # IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
     22 # OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
     23 # IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
     24 # INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
     25 # NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
     26 # DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
     27 # THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
     28 # (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
     29 # THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
     30 
     31 # Installation configuration utilities (functions), to get NetBSD configured
     32 # reasonably once it is installed on the hard disk.  These are meant to be
     33 # invoked from the shell prompt, by people installing NetBSD.
     34 
     35 config_int()
     36 {
     37 	local intf resp ifname ifaddr ifflags
     38 	intf=$1
     39 	case "$intf" in
     40 		""|lo*|ppp*|sl*|tun*)
     41 			return 0;
     42 			;;
     43 		*)
     44 			;;
     45 	esac
     46 		
     47 	echo -n "Configure" $intf "? [y]"
     48 	read resp
     49 	case "$resp" in
     50 	n*|N*)
     51 		return 0;
     52 		;;
     53 	*)
     54 		;;
     55 	esac
     56 
     57 	echo -n "What is the hostname for this interface? [$hname] "
     58 	read ifname
     59 	if [ "$ifname" = "" ]; then
     60 		ifname=$hname
     61 	fi
     62 	ifaddr=
     63 	while [ "$ifaddr" = "" ]; do
     64 		echo -n "What is the IP address associated with "
     65 		echo -n "interface ${intf}? "
     66 		read ifaddr
     67 	done
     68 	echo "$ifaddr	$ifname `echo $ifname | sed -e s/\.$dname//`" \
     69 	    >> ${ETC}/hosts
     70 
     71 	echo -n "Does this interface have a special netmask? [n] "
     72 	read resp
     73 	case "$resp" in
     74 		y*)
     75 			echo -n "What is the netmask? [0xffffff00] "
     76 			read ifnetmask
     77 			if [ "$ifnetmask" = "" ]; then
     78 				ifnetmask=0xffffff00
     79 			fi
     80 			ifnetmask_arg="netmask $ifnetmask"
     81 			;;
     82 		*)
     83 			ifnetmask=
     84 			ifnetmask_arg=
     85 			;;
     86 	esac
     87 
     88 	echo -n "Does this interface need a special media type? [n] "
     89 	read resp
     90 	case "$resp" in
     91 		y*)
     92 			echo -n "What media type? [10baseT/UTP] "
     93 			read ifflags
     94 			if [ "$ifflags" = "" ]; then
     95 				ifflags="10baseT/UTP"
     96 			fi
     97 			ifflags_arg="media $ifflags"
     98 			;;
     99 		*)
    100 			ifflags=
    101 			ifflags_arg=
    102 			;;
    103 	esac
    104 	echo "inet $ifname $ifnetmask_arg $ifflags_arg" > ${ETC}/ifconfig.$intf
    105 }
    106 
    107 
    108 Configure()
    109 {
    110 	DEV=/dev
    111 	ETC=/etc
    112 	ROOT=/
    113 	if [ ! -f /etc/fstab ]; then
    114 		DEV=/mnt/dev
    115 		ETC=/mnt/etc
    116 		ROOT=/mnt
    117 	fi
    118 
    119 	echo	"You will now be prompted for information about this"
    120 	echo	"machine.  If you hit return, the default answer (in"
    121 	echo	"brackets) will be used."
    122 
    123 	echo	""
    124 	echo -n	"What is this machine's hostname? [unknown.host.domain] "
    125 	read hname
    126 	if [ "$hname" = "" ]; then
    127 		hname=unknown.host.domain
    128 	fi
    129 	echo $hname > ${ETC}/myname
    130 	proto_domain=`echo $hname | sed -e 's/[^.]*\.//'`
    131 
    132 	echo	""
    133 	echo	"What DNS domain is this machine in (this is NOT its YP"
    134 	echo -n	"domain name)? [$proto_domain] "
    135 	read dname
    136 	if [ "$dname" = "" ]; then
    137 		dname=$proto_domain
    138 	fi
    139 
    140 	echo	""
    141 	if [ -e $ETC/sendmail.cf ]; then
    142 		echo	"WARNING: A default sendmail.cf exists, and probably"
    143 		echo	"needs to be tuned and/or replaced, to work properly at"
    144 		echo	"your site!"
    145 	else
    146 		echo	"WARNING: No default sendmail.cf installed.  Did you"
    147 		echo	"forget to install the 'etc' distribution?"
    148 	fi
    149 
    150 	echo	"127.0.0.1	localhost localhost.$dname" > ${ETC}/hosts
    151 
    152 	echo	""
    153 	echo -n	"Configure network interfaces? [y] "
    154         read resp
    155         case "$resp" in
    156 	n*)
    157 		;;
    158 	*)
    159 		for if in `ifconfig -l`
    160 		do
    161 			config_int $if
    162 		done
    163 		;;
    164 	esac
    165 
    166 	
    167 	echo	""
    168 	echo -n	"Making device nodes (may take a while)..."
    169 	cd ${DEV}
    170 	sh MAKEDEV all
    171 	echo	" done."
    172 
    173 	sync
    174 
    175 	if [ ! -f ${ROOT}/netbsd ]
    176 	then
    177 		echo "You have not unpacked the kernel installation"
    178 		echo "set. You must do so before you reboot."
    179 	fi
    180 }
    181 
    182 # Upgrade cleanup utilities (functions), to make sure a recently-upgraded
    183 # system is safely runnable.  These are meant to be invoked from the shell
    184 # prompt, by people installing NetBSD.
    185 
    186 Cleanup()
    187 {
    188 	upgrade_dir=/
    189 
    190 	if [ ! -f /etc/fstab ]; then
    191 		upgrade_dir=/mnt
    192 	fi
    193 
    194 	echo	"Cleaning up miscellaneous files in /etc..."
    195 	mv $upgrade_dir/etc/rc.bak $upgrade_dir/etc/rc
    196 	chroot $upgrade_dir /usr/sbin/pwd_mkdb -p /etc/master.passwd
    197 	chroot $upgrade_dir /bin/rm /etc/sendmail.fc > /dev/null 2>&1
    198 	sync
    199 	echo	"Done."
    200 
    201 	echo	""
    202 	echo	"All that's left to do now is to install a new NetBSD kernel"
    203 	echo	"on your hard disk.  You should now halt your machine using"
    204 	echo	"the 'halt' command.  Once the machine is halted, replace the"
    205 	echo	"installation floppy with the kernel-copy floppy and hit any"
    206 	echo	"key to reboot.  Use the kernel-copy floppy to copy a kernel"
    207 	echo	"to your hard disk."
    208 }
    209