rc.cdroot 2.82 KB
Newer Older
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51
# Copyright (c) 1999  Matt Dillon
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
# modification, are permitted provided that the following conditions
# are met:
# 1. Redistributions of source code must retain the above copyright
#    notice, this list of conditions and the following disclaimer.
# 2. Redistributions in binary form must reproduce the above copyright
#    notice, this list of conditions and the following disclaimer in the
#    documentation and/or other materials provided with the distribution.
#
# THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
# ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
# FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
# OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
# HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
# OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
# SUCH DAMAGE.
#

#
# rc.cdroot
#

# chkerr:
#
# Routine to check for error
#
#	checks error code and drops into shell on failure.
#	if shell exits, terminates script as well as /etc/rc.
#
chkerr() {
	case $1 in
	0)
		;;
	*)
		echo "$2 failed: dropping into /bin/sh"
		/bin/sh
		# RESUME
		;;
	esac
}

#
# Create a real /tmp
#
52
/sbin/mount_mfs -s 8192 -b 8192 -f 1024 -i 1024 -c 16 -T minimum dummy /tmp
53 54 55 56 57 58 59 60
chkerr $? "MFS mount on /tmp"

#
# Duplicate /etc using /tmp as a temporary location.
#
/usr/site/bin/hier cp /etc /tmp/etc
chkerr $? "hier cp /etc to /tmp/etc"

61
/sbin/mount_mfs -s 8192 -b 8192 -f 1024 -c 16 -T minimum dummy /etc
62 63 64 65 66 67 68 69 70 71 72 73 74 75
chkerr $? "MFS mount on /etc"

/usr/site/bin/hier cp /tmp/etc /etc
chkerr $? "hier cp /tmp/etc to /etc"

/bin/rm -rf /tmp/etc
chkerr $? "rm -rf /tmp/etc"

#
# Duplicate /var using /tmp as a temporary location.
#
/usr/site/bin/hier cp /var /tmp/var
chkerr $? "hier cp /var to /tmp/var"

76
/sbin/mount_mfs -s 8192 -b 8192 -f 1024 -c 16 -T minimum dummy /var
77 78 79 80 81 82 83 84 85 86 87 88 89 90
chkerr $? "MFS mount on /var"

/usr/site/bin/hier cp /tmp/var /var
chkerr $? "hier cp /tmp/var to /var"

/bin/rm -rf /tmp/var
chkerr $? "rm -rf /tmp/var"

#
# Duplicate /dev using /tmp as a temporary location.
#
/usr/site/bin/hier cp /dev /tmp/dev
chkerr $? "hier cp /dev to /tmp/dev"

91
/sbin/mount_mfs -s 8192 -b 8192 -f 1024 -i 1024 -c 16 -T minimum dummy /dev
92 93 94 95 96 97 98 99 100 101 102 103
chkerr $? "MFS mount on /dev"

/usr/site/bin/hier cp /tmp/dev /dev
chkerr $? "hier cp /tmp/dev to /dev"

/bin/rm -rf /tmp/dev
chkerr $? "rm -rf /tmp/dev"

chmod 666 /dev/pty[pqrsPQRS]*
chown root:wheel /dev/pty[pqrsPQRS]*

exit 0