esac
}
+_fsck_opts()
+{
+ case $FSTYP in
+ ext2|ext3|ext4)
+ export FSCK_OPTIONS="-nf"
+ ;;
+ reiserfs)
+ export FSCK_OPTIONS="--yes"
+ ;;
+ *)
+ export FSCK_OPTIONS="-n"
+ ;;
+ esac
+}
+
[ -z "$FSTYP" ] && FSTYP=xfs
[ -z "$MOUNT_OPTIONS" ] && _mount_opts
[ -z "$MKFS_OPTIONS" ] && _mkfs_opts
+[ -z "$FSCK_OPTIONS" ] && _fsck_opts
# we need common.config
mountpoint=`_umount_or_remount_ro $device`
fi
- fsck -t $FSTYP -n $device >$tmp.fsck 2>&1
+ fsck -t $FSTYP $FSCK_OPTIONS $device >$tmp.fsck 2>&1
if [ $? -ne 0 ]
then
echo "_check_generic_filesystem: filesystem on $device is inconsistent (see $seq.full)"
return 0
}
-# Check an ext2/3/4 filesystem
-#
-_check_extN_filesystem()
-{
- device=$1
-
- # If type is set, we're mounted
- type=`_fs_type $device`
- ok=1
-
- if [ "$type" = "$FSTYP" ]
- then
- # mounted ...
- mountpoint=`_umount_or_remount_ro $device`
- fi
-
- e2fsck -nf $device >$tmp.fsck 2>&1
- if [ $? -ne 0 ]
- then
- echo "_check_extN_filesystem: filesystem on $device is inconsistent (see $seq.full)"
-
- echo "_check_extN filesystem: filesystem on $device is inconsistent" >>$here/$seq.full
- echo "*** e2fsck output ***" >>$here/$seq.full
- cat $tmp.fsck >>$here/$seq.full
- echo "*** end e2fsck output" >>$here/$seq.full
-
- ok=0
- fi
- rm -f $tmp.fsck
-
- if [ $ok -eq 0 ]
- then
- echo "*** mount output ***" >>$here/$seq.full
- _mount >>$here/$seq.full
- echo "*** end mount output" >>$here/$seq.full
- elif [ "$type" = "$FSTYP" ]
- then
- # was mounted ...
- _mount_or_remount_rw "$MOUNT_OPTIONS" $device $mountpoint
- ok=$?
- fi
-
- [ $ok -eq 0 ] && exit 1
- return 0
-}
-
# run xfs_check and friends on a FS.
_check_xfs_filesystem()
udf)
# do nothing for now
;;
- ext2|ext3|ext4)
- _check_extN_filesystem $TEST_DEV
- ;;
*)
_check_generic_filesystem $TEST_DEV
;;
nfs*)
# Don't know how to check an NFS filesystem, yet.
;;
- ext2|ext3|ext4)
- _check_extN_filesystem $SCRATCH_DEV
- ;;
*)
_check_generic_filesystem $SCRATCH_DEV
;;