Home | History | Annotate | Line # | Download | only in rz25dist
      1 # $NetBSD: rc.hack,v 1.5 2003/01/06 20:30:42 wiz Exp $
      2 
      3 # Hackish /etc/rc to do basic setup for a distribution rz25 image to
      4 # make it slightly easier to use.
      5 
      6 PATH=/sbin:/usr/sbin:/bin:/usr/bin:/alphadist
      7 export PATH
      8 
      9 single_user()
     10 {
     11 	echo "Returning to single-user mode..."
     12 	exit 1
     13 }
     14 
     15 root_dev=`(sysctl -n machdep.root_device) 2> /dev/null`
     16 #echo "root_dev is '$root_dev'"
     17 
     18 if [ X"${root_dev}" = X'' ] || [ X"${root_dev}" = X'??' ]; then
     19 	echo "Can't figure out root device!"
     20 	single_user
     21 fi
     22 
     23 root_dev_base=`expr $root_dev : '\([a-z][a-z]*\)[0-9]*[a-z]'`
     24 root_dev_unit=`expr $root_dev : '[a-z][a-z]*\([0-9]*\)[a-z]'`
     25 root_dev_part=`expr $root_dev : '[a-z][a-z]*[0-9]*\([a-z]\)'`
     26 
     27 #echo $root_dev_base
     28 #echo $root_dev_unit
     29 #echo $root_dev_part
     30 
     31 usr_dev="${root_dev_base}${root_dev_unit}d"
     32 #echo usr_dev = $usr_dev
     33 
     34 case $root_dev_base in
     35 cd|sd|wd)
     36 	;;
     37 
     38 *)
     39 	echo "Unexpected root device type '$root_dev_base'."
     40 	single_user
     41 	;;
     42 esac
     43 
     44 # If /tmp is already writable, we've already been run...  punt!
     45 if [ -w /tmp ]; then
     46 	echo ""
     47 	case $root_dev_base in
     48 	cd)
     49 		echo "Can't boot multi-user from a CD-ROM, because"
     50 		echo "the system can't have been configured."
     51 		echo ""
     52 		echo "Install on a real disk!"
     53 		echo ""
     54 		single_user
     55 		;;
     56 
     57 	sd|wd)
     58 		echo "If you want to boot multi-user, make sure that you've"
     59 		echo "configured the system properly, then run the"
     60 		echo "following:"
     61 		echo ""
     62 		echo "        /bin/rm -f /etc/rc"
     63 		echo "        /bin/cp -p /alphadist/rc.real /etc/rc"
     64 		echo ""
     65 		echo "from single-user mode then exit the single-user shell."
     66 		echo ""
     67 		single_user
     68 		;;
     69 	esac
     70 fi
     71 
     72 case $root_dev_base in
     73 cd)
     74 	echo -n "Remounting root device..."
     75 	mount -u -o ro /dev/$root_dev /
     76 	echo ""
     77 
     78 	echo -n "Mounting /usr..."
     79 	mount -o ro /dev/$usr_dev /usr
     80 	echo ""
     81 
     82 	echo -n "Preparing temporary file systems..."
     83 	mount -t mfs -o -s=6144 swap /tmp
     84 	mount -t mfs -o -s=6144 swap /var/tmp
     85 	mkdir /var/tmp/vi.recover
     86 	chmod -R 1777 /tmp /var/tmp
     87 	echo ""
     88 	;;
     89 
     90 sd|wd)
     91 	echo "Checking root and /usr..."
     92 	fsck -n -t ffs /dev/r$root_dev /dev/r$usr_dev > /dev/null 2>&1
     93 	if [ $? -ne 0 ]; then
     94 		echo "File system check failed!"
     95 		single_user
     96 	fi
     97 
     98 	echo -n "Remounting root device..."
     99 	mount -u /dev/$root_dev /
    100 	echo ""
    101 
    102 	echo -n "Mounting /usr..."
    103 	mount /dev/$usr_dev /usr
    104 	echo ""
    105 	;;
    106 esac
    107 
    108 single_user
    109