#! /sbin/sh
#Tag 0x00000f00
#ident "$Revision: 1.35 $"
#
# This script is responsible for initializing the mounted filesystem table
# kept in /etc/mtab.  It also creates /etc/fstab if none exists.
#

if [ "`/sbin/nvram diskless 2> /dev/null`" -eq 1 ] ; then
    > /etc/mtab
    /sbin/mount -f /
    if [ -d /sbin ]; then
	/sbin/mount -f /sbin
    fi
    if [ -d /swap ]; then
	/sbin/mount -f /swap
    fi
else
    rootdev=/dev/root
    usrdev=/dev/usr
    if [ ! -f /etc/fstab ] ; then
	/sbin/fsstat /dev/usr  >/dev/null 2>&1
	if [ $? -eq 3 ] ; then
		echo "$rootdev /" | setmnt -f /etc/fstab
	else
		echo "$rootdev /\n$usrdev /usr" | setmnt -f /etc/fstab
    	fi
    fi
    if [ ! -f /etc/mtab ] ; then rm -f /etc/mtab; fi
    echo "$rootdev /" | setmnt
fi


mkdir /etc/fscklogs > /dev/null 2>&1

if test -n "`grep '[ 	]/var[/]*[ 	]' /etc/fstab`"; then
        if /sbin/mount -c /var > /etc/fscklogs/rvar 2>&1
        then
		cat /etc/fscklogs/rvar
        else
		cat /etc/fscklogs/rvar
                echo "Unable to Mount /var\n"
                sleep 5
        fi
else
	if test -n "`grep '[ 	]/usr[/]*[ 	]' /etc/fstab`"; then
		deflvl="`/sbin/nvram initstate 2>/dev/null`" 2>/dev/null
        	if [ "$deflvl" = "s" -o "$deflvl" = "1" ]; then
			if /sbin/mount /usr
        		then :
        		else
                		echo "Unable to Mount /usr\n"
                		sleep 5
        		fi
		else
        		if /sbin/mount -c /usr  > /etc/fscklogs/rusr 2>&1
        		then
				cat /etc/fscklogs/rusr
        		else
				cat /etc/fscklogs/rusr
                		echo "Unable to Mount /usr\n"
                		sleep 5
        		fi
		fi
	fi
fi
if [ ! -d /var/adm ]
then
	if [ -l /var ]
	then
		mkdir /usr/var > /dev/null 2>&1
	fi
        mkdir /var/adm
fi

/etc/mntproc
if [ ! -d /dev/fd ]; then
	/bin/rm -rf /dev/fd  > /dev/null 2>&1
	mkdir /dev/fd
fi

# redirect the output, since it's an optional filesystem.
# /dev/fd is used for exec of setuid and setgid scripts
/sbin/mount -t fd /dev/fd /dev/fd > /dev/null
