2003-01-06 23:30:28 +03:00
|
|
|
# $NetBSD: rc.hack,v 1.5 2003/01/06 20:30:42 wiz Exp $
|
1996-06-15 08:04:26 +04:00
|
|
|
|
|
|
|
# Hackish /etc/rc to do basic setup for a distribution rz25 image to
|
|
|
|
# make it slightly easier to use.
|
|
|
|
|
|
|
|
PATH=/sbin:/usr/sbin:/bin:/usr/bin:/alphadist
|
|
|
|
export PATH
|
|
|
|
|
|
|
|
single_user()
|
|
|
|
{
|
|
|
|
echo "Returning to single-user mode..."
|
|
|
|
exit 1
|
|
|
|
}
|
|
|
|
|
|
|
|
root_dev=`(sysctl -n machdep.root_device) 2> /dev/null`
|
|
|
|
#echo "root_dev is '$root_dev'"
|
|
|
|
|
|
|
|
if [ X"${root_dev}" = X'' ] || [ X"${root_dev}" = X'??' ]; then
|
|
|
|
echo "Can't figure out root device!"
|
|
|
|
single_user
|
|
|
|
fi
|
|
|
|
|
|
|
|
root_dev_base=`expr $root_dev : '\([a-z][a-z]*\)[0-9]*[a-z]'`
|
|
|
|
root_dev_unit=`expr $root_dev : '[a-z][a-z]*\([0-9]*\)[a-z]'`
|
|
|
|
root_dev_part=`expr $root_dev : '[a-z][a-z]*[0-9]*\([a-z]\)'`
|
|
|
|
|
|
|
|
#echo $root_dev_base
|
|
|
|
#echo $root_dev_unit
|
|
|
|
#echo $root_dev_part
|
|
|
|
|
|
|
|
usr_dev="${root_dev_base}${root_dev_unit}d"
|
|
|
|
#echo usr_dev = $usr_dev
|
|
|
|
|
|
|
|
case $root_dev_base in
|
1997-02-17 23:15:40 +03:00
|
|
|
cd|sd|wd)
|
1996-06-15 08:04:26 +04:00
|
|
|
;;
|
|
|
|
|
|
|
|
*)
|
|
|
|
echo "Unexpected root device type '$root_dev_base'."
|
|
|
|
single_user
|
|
|
|
;;
|
|
|
|
esac
|
|
|
|
|
2003-01-06 23:30:28 +03:00
|
|
|
# If /tmp is already writable, we've already been run... punt!
|
1996-06-15 08:04:26 +04:00
|
|
|
if [ -w /tmp ]; then
|
|
|
|
echo ""
|
|
|
|
case $root_dev_base in
|
|
|
|
cd)
|
|
|
|
echo "Can't boot multi-user from a CD-ROM, because"
|
|
|
|
echo "the system can't have been configured."
|
|
|
|
echo ""
|
|
|
|
echo "Install on a real disk!"
|
|
|
|
echo ""
|
|
|
|
single_user
|
|
|
|
;;
|
|
|
|
|
1997-02-17 23:15:40 +03:00
|
|
|
sd|wd)
|
1996-06-15 08:04:26 +04:00
|
|
|
echo "If you want to boot multi-user, make sure that you've"
|
|
|
|
echo "configured the system properly, then run the"
|
|
|
|
echo "following:"
|
|
|
|
echo ""
|
|
|
|
echo " /bin/rm -f /etc/rc"
|
|
|
|
echo " /bin/cp -p /alphadist/rc.real /etc/rc"
|
|
|
|
echo ""
|
|
|
|
echo "from single-user mode then exit the single-user shell."
|
|
|
|
echo ""
|
|
|
|
single_user
|
|
|
|
;;
|
|
|
|
esac
|
|
|
|
fi
|
|
|
|
|
|
|
|
case $root_dev_base in
|
|
|
|
cd)
|
|
|
|
echo -n "Remounting root device..."
|
|
|
|
mount -u -o ro /dev/$root_dev /
|
|
|
|
echo ""
|
|
|
|
|
|
|
|
echo -n "Mounting /usr..."
|
|
|
|
mount -o ro /dev/$usr_dev /usr
|
|
|
|
echo ""
|
|
|
|
|
|
|
|
echo -n "Preparing temporary file systems..."
|
|
|
|
mount -t mfs -o -s=6144 swap /tmp
|
|
|
|
mount -t mfs -o -s=6144 swap /var/tmp
|
|
|
|
mkdir /var/tmp/vi.recover
|
|
|
|
chmod -R 1777 /tmp /var/tmp
|
|
|
|
echo ""
|
|
|
|
;;
|
|
|
|
|
1997-02-17 23:15:40 +03:00
|
|
|
sd|wd)
|
1996-06-15 08:04:26 +04:00
|
|
|
echo "Checking root and /usr..."
|
1997-02-17 23:15:40 +03:00
|
|
|
fsck -n -t ffs /dev/r$root_dev /dev/r$usr_dev > /dev/null 2>&1
|
1996-06-15 08:04:26 +04:00
|
|
|
if [ $? -ne 0 ]; then
|
|
|
|
echo "File system check failed!"
|
|
|
|
single_user
|
|
|
|
fi
|
|
|
|
|
|
|
|
echo -n "Remounting root device..."
|
|
|
|
mount -u /dev/$root_dev /
|
|
|
|
echo ""
|
|
|
|
|
|
|
|
echo -n "Mounting /usr..."
|
|
|
|
mount /dev/$usr_dev /usr
|
|
|
|
echo ""
|
|
|
|
;;
|
|
|
|
esac
|
|
|
|
|
|
|
|
single_user
|