[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Support for persistence fsck



On Fri, 2015-08-21 at 11:31 +0000, Chas Williams III wrote:
> At one point live boot had support for fsck'ing persistent media before
> mounting read/write.  This appeared to have been removed due to lack
> of usage/interest. 

Here is a better attempt -- now fsck runs before the filesystem is
mounted readonly.  I am not sure what to do with the output from fsck
in check_dev though.  How do I get it into boot.log?


Similar to a974d9cd39ed0ed6490c7894056c7c0666855994.  Additionally,
allow the user to force a fsck via the command line.
---
 components/9990-misc-helpers.sh | 27 +++++++++++++++++++++++++++
 1 file changed, 27 insertions(+)

diff --git a/components/9990-misc-helpers.sh b/components/9990-misc-helpers.sh
index 9318a4b..8900aaf 100755
--- a/components/9990-misc-helpers.sh
+++ b/components/9990-misc-helpers.sh
@@ -195,6 +195,33 @@ check_dev ()
 	then
 		devuid=$(blkid -o value -s UUID "$devname")
 		[ -n "$devuid" ] && grep -qs "\<$devuid\>" /var/lib/live/boot/devices-already-tried-to-mount && continue
+
+		for _PARAMETER in ${LIVE_BOOT_CMDLINE}
+		do
+			case "${_PARAMETER}" in
+				forcefsck)
+					FORCEFSCK="Yes"
+					;;
+			esac
+		done
+
+		if [ "${PERSISTENCE_FSCK}" = "Yes" ] || [ "${FORCEFSCK}" = "Yes" ]
+		then
+			force=""
+			if [ "$FORCEFSCK" = "Yes" ]
+			then
+				force="-f"
+			fi
+
+			fix="-a"
+			if [ "$FSCKFIX" = "Yes" ]
+			then
+				fix="-y"
+			fi
+
+			fsck $fix $force ${devname} >/dev/null 2>&1
+		fi
+
 		mount -t ${fstype} -o ro,noatime "${devname}" ${mountpoint} || continue
 		[ -n "$devuid" ] && echo "$devuid" >> /var/lib/live/boot/devices-already-tried-to-mount
 
-- 
1.9.1



Reply to: