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 6PATH=/sbin:/usr/sbin:/bin:/usr/bin:/alphadist 7export PATH 8 9single_user() 10{ 11 echo "Returning to single-user mode..." 12 exit 1 13} 14 15root_dev=`(sysctl -n machdep.root_device) 2> /dev/null` 16#echo "root_dev is '$root_dev'" 17 18if [ X"${root_dev}" = X'' ] || [ X"${root_dev}" = X'??' ]; then 19 echo "Can't figure out root device!" 20 single_user 21fi 22 23root_dev_base=`expr $root_dev : '\([a-z][a-z]*\)[0-9]*[a-z]'` 24root_dev_unit=`expr $root_dev : '[a-z][a-z]*\([0-9]*\)[a-z]'` 25root_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 31usr_dev="${root_dev_base}${root_dev_unit}d" 32#echo usr_dev = $usr_dev 33 34case $root_dev_base in 35cd|sd|wd) 36 ;; 37 38*) 39 echo "Unexpected root device type '$root_dev_base'." 40 single_user 41 ;; 42esac 43 44# If /tmp is already writable, we've already been run... punt! 45if [ -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 70fi 71 72case $root_dev_base in 73cd) 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 90sd|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 ;; 106esac 107 108single_user 109