minix/etc/rc.subr.minix

61 lines
1 KiB
Plaintext
Raw Normal View History

mountfstab()
{
fsck_opts=""
fflag="-p"
while getopts "fo:" opt
do case $opt
in f) fflag="-f"
;;
o) fsck_opts="$OPTARG"
;;
*) echo "mountfstab: odd"
return 1
;;
esac
done
shift `expr $OPTIND - 1`
fstabfile="$1"
if [ ! -f $fstabfile ]
then echo "mountfstab: $fstabfile not found"
return 1
fi
cat $fstabfile | sed 's/#.*//' | while read fsline
do set "" $fsline
shift
if [ $# -eq 0 ]; then continue; fi
if [ $# -lt 3 ]
then echo "$fstabfile: short line"
continue
fi
# This line's parameters
dev="$1"; mp="$2"; fstype="$3"
# Don't fsck / as it's already mounted
if [ "$mp" = "/" ]; then continue; fi
# Sanity checks
if [ ! -b $dev ]; then echo "$dev missing"; continue; fi
if [ ! -d $mp ]; then echo "$mp missing"; continue; fi
# Do fsck if necessary or requested
if [ -n "$fflag" ]
then fsck.$fstype $fflag $fsck_opts $dev
fi
# Skip the actual mount for /, it's already mounted
if [ "$mp" = / ]
then continue
fi
# Do actual mount command
mount -t $fstype $dev $mp
done
}