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