diff options
| author | Robin H. Johnson <robbat2@gentoo.org> | 2011-11-06 13:58:48 -0600 | 
|---|---|---|
| committer | William Hubbs <williamh@gentoo.org> | 2011-11-06 13:58:48 -0600 | 
| commit | e3b39a677b535bc2676a939519906f6b2dbce6f4 (patch) | |
| tree | 0755a005b7d7247c21e5e92eb552757583aa0826 | |
| parent | 27713e3a41574c20336fcbf4fd3522d126045f16 (diff) | |
| download | openrc-e3b39a677b535bc2676a939519906f6b2dbce6f4.tar.xz | |
fsck: add the ability to specify mount points to check
| -rw-r--r-- | conf.d/fsck | 7 | ||||
| -rw-r--r-- | init.d/fsck.in | 13 | 
2 files changed, 19 insertions, 1 deletions
| diff --git a/conf.d/fsck b/conf.d/fsck index 5d42c9d0..16aa5752 100644 --- a/conf.d/fsck +++ b/conf.d/fsck @@ -13,6 +13,13 @@  #fsck_passno=">1"  #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  # it may be advisable to skip this when running on battery.  # WARNING: Do not turn this off if you have any JFS partitions. diff --git a/init.d/fsck.in b/init.d/fsck.in index 54537f61..03b2939e 100644 --- a/init.d/fsck.in +++ b/init.d/fsck.in @@ -48,8 +48,13 @@ start()  	if [ -n "$fsck_passno" ]; then  		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  	ebegin "Checking local filesystems $check_extra" +	# Append passno mounts  	for p in $fsck_passno; do  		local IFS="$_IFS"  		case "$p" in @@ -58,10 +63,16 @@ start()  		set -- "$@" $(fstabinfo --passno "$p")  		unset IFS  	done +	# Append custom mounts +	for m in $fsck_mnt ; do +		local IFS="$_IFS" +		set -- "$@" "$m" +		unset IFS +	done  	if [ "$RC_UNAME" = Linux ]; then  		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}  			if echo 2>/dev/null >/.test.$$; then  				rm -f /.test.$$ | 
