fsck: add the ability to specify mount points to check
This commit is contained in:
		
				
					committed by
					
						
						William Hubbs
					
				
			
			
				
	
			
			
			
						parent
						
							27713e3a41
						
					
				
				
					commit
					e3b39a677b
				
			@@ -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.
 | 
			
		||||
 
 | 
			
		||||
@@ -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.$$
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user