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