Allow fsck to be multiplexed.

This commit is contained in:
Roy Marples 2008-02-20 00:33:38 +00:00
parent 7dec6f4025
commit 5ddd32c06c
2 changed files with 33 additions and 8 deletions

View File

@ -1,6 +1,17 @@
# Pass any arguments to fsck.
# By default we preen.
fsck="-p"
# Linux systems also force -C0 and -T.
# If fsck_args is not specified then Linux systems also use -A
# (and -R if / is rw)
#fsck_args="-p"
# We can also specify the passno in /etc/fstab to check
# If you multiplex fsck (ie ln -s fsck /etc/init.d/fsck.late) then you can
# do an fsck outside of the normal scope, say for /home.
# Here are some exampes:-
#fsck_passno="=1 =2"
#fsck_passno=">1"
#fsck_passno="<2"
# fsck_shutdown causes fsck to trigger during shutdown as well as startup.
# The end result of this is that if any periodic non-root filesystem checks are

View File

@ -3,6 +3,8 @@
# All rights reserved. Released under the 2-clause BSD license.
description="Check and repair filesystems according to /etc/fstab"
_ISF="
"
depend()
{
@ -12,20 +14,32 @@ depend()
start()
{
local reboot_opts= fsck_opts=
local reboot_opts= fsck_opts= p=
ebegin "Checking local filesystems"
for p in ${fsck_passno}; do
local IFS="${_IFS}"
case "${p}" in
[0-9]*) p="=${p}";;
esac
set -- "$@" "$(fstabinfo --passno "${p}")"
unset IFS
done
if [ "${RC_UNAME}" = "Linux" ]; then
fsck_opts="-A -C0 -T"
if echo 2>/dev/null >/.test.$$; then
rm -f /.test.$$
fsck_opts="${fsck_opts} -R"
fsck_opts="-C0 -T"
if [ -z "${fsck_passno}" ]; then
fsck_args=${fsck_args--A -p}
if echo 2>/dev/null >/.test.$$; then
rm -f /.test.$$
fsck_opts="-R"
fi
fi
reboot_opts="-f"
fi
ebegin "Checking local filesystems"
trap : QUIT
fsck ${fsck_args--p} ${fsck_opts}
fsck ${fsck_args--p} ${fsck_opts} "$@"
case $? in
0) eend 0; return 0;;
1) ewend 1 "Filesystems repaired"; return 0;;