fsck: add the ability to specify mount points to check

This commit is contained in:
Robin H. Johnson 2011-11-06 13:58:48 -06:00 committed by William Hubbs
parent 27713e3a41
commit e3b39a677b
2 changed files with 19 additions and 1 deletions

View File

@ -13,6 +13,13 @@
#fsck_passno=">1" #fsck_passno=">1"
#fsck_passno="<2" #fsck_passno="<2"
# If passno is not enough granularity, you can also specify mountpoints to
# check. This should NOT be used for the default non-multiplexed fsck, or your
# system might not be checked. Additionally, it is mutually exclusive with
# the fsck_passno setting.
#fsck_mnt=""
#fsck_mnt="/home"
# Most modern fs's don't require a full fsck on boot, but for those that do # Most modern fs's don't require a full fsck on boot, but for those that do
# it may be advisable to skip this when running on battery. # it may be advisable to skip this when running on battery.
# WARNING: Do not turn this off if you have any JFS partitions. # WARNING: Do not turn this off if you have any JFS partitions.

View File

@ -48,8 +48,13 @@ start()
if [ -n "$fsck_passno" ]; then if [ -n "$fsck_passno" ]; then
check_extra="[passno $fsck_passno] $check_extra" check_extra="[passno $fsck_passno] $check_extra"
if -n "$fsck_mnt" ]; then
eerror "Only 1 of fsck_passno and fsck_mnt must be set!"
return 1
fi
fi fi
ebegin "Checking local filesystems $check_extra" ebegin "Checking local filesystems $check_extra"
# Append passno mounts
for p in $fsck_passno; do for p in $fsck_passno; do
local IFS="$_IFS" local IFS="$_IFS"
case "$p" in case "$p" in
@ -58,10 +63,16 @@ start()
set -- "$@" $(fstabinfo --passno "$p") set -- "$@" $(fstabinfo --passno "$p")
unset IFS unset IFS
done done
# Append custom mounts
for m in $fsck_mnt ; do
local IFS="$_IFS"
set -- "$@" "$m"
unset IFS
done
if [ "$RC_UNAME" = Linux ]; then if [ "$RC_UNAME" = Linux ]; then
fsck_opts="$fsck_opts -C0 -T" fsck_opts="$fsck_opts -C0 -T"
if [ -z "$fsck_passno" ]; then if [ -z "$fsck_passno" -a -z "$fsck_mnt" ]; then
fsck_args=${fsck_args--A -p} fsck_args=${fsck_args--A -p}
if echo 2>/dev/null >/.test.$$; then if echo 2>/dev/null >/.test.$$; then
rm -f /.test.$$ rm -f /.test.$$