From 927bbefa8782ae7d31084a089e084720423ec9fa Mon Sep 17 00:00:00 2001 From: Thomas Koehler Date: Fri, 28 May 2010 11:14:33 +0200 Subject: [PATCH] added -F option to run fsck before mounting a filesystem --- TODO | 1 - grml-crypt | 8 +++++++- grml-crypt.8.txt | 4 ++++ 3 files changed, 11 insertions(+), 2 deletions(-) diff --git a/TODO b/TODO index db4e0cb..b6e8fde 100644 --- a/TODO +++ b/TODO @@ -1,7 +1,6 @@ - better cipher choosing (xts,essiv,plain) - rename? - add optimized ext3 fs profile for crypto (deactivated journal, activated dir_index and filetype) - - add --fsck for start (execute "sleep 3 && fsck -C $DM_PATH_" || die "fsck failed on $DM_PATH_") (request thokoeh) Cleanup: hook_pre_initialize_="" diff --git a/grml-crypt b/grml-crypt index 0aef76d..fade32e 100755 --- a/grml-crypt +++ b/grml-crypt @@ -35,6 +35,7 @@ DM_PATH_="" ACTION_="" DM_PREFIX_="grml-crypt_" FORCE_='false' +FSCK_='false' ENTROPY_SOURCE_='/dev/urandom' OPTIMIZED_MODE_SET_='false' OPTIMIZING_LEVEL_=0 @@ -65,6 +66,7 @@ OPTIONS: -o optimised initialisation mode (should be as secure as the default but faster) -y verifies the passphrase by asking for it twice -f force file overwriting in format mode and/or disable confirmation dialog + -F only for action start: run fsck before mounting the filesystem -m additional arguments to mount -v verbose (show what is going on, v++) -h this help text @@ -184,6 +186,9 @@ function actionStart $READONLY_SET_ && cargs_='--readonly' execute "$CRYPTSETUP_ $cargs_ luksOpen $TARGET_ $DM_NAME_" warn || execute "losetup -d $TARGET_" || \ die "could not luksOpen $TARGET_" + if [[ "$FSCK_" == "true" ]] ; then + execute "fsck -C $DM_NAME_" || die "fsck failed on $DM_NAME_" + fi margs_="" $READONLY_SET_ && margs_='-r' execute "mount $margs_ $ADDITIONAL_MOUNT_ARGS_ $DM_PATH_ $MOUNT_POINT_" die @@ -334,7 +339,7 @@ function actionFormat ### __MAIN ### -while getopts "s:t:rzoyfm:hvS:C:I:A:" opt; do +while getopts "s:t:rzoyfFm:hvS:C:I:A:" opt; do case "$opt" in s) SIZE_="$OPTARG"; SIZE_SET_='true' ;; t) FSTYPE_="$OPTARG" ;; @@ -346,6 +351,7 @@ while getopts "s:t:rzoyfm:hvS:C:I:A:" opt; do OPTIMIZED_MODE_SET_='true' ;; y) VERIFY_PW_="--verify-passphrase" ;; f) FORCE_='true' ;; + F) FSCK_='true' ;; m) ADDITIONAL_MOUNT_ARGS_="$OPTARG" ;; h) printUsage; exit ;; v) let verbose_=$verbose_+1 ;; diff --git a/grml-crypt.8.txt b/grml-crypt.8.txt index 4fb3045..07bb54e 100644 --- a/grml-crypt.8.txt +++ b/grml-crypt.8.txt @@ -80,6 +80,10 @@ Shows what is going on (more v => more out). be bigger than 2MB for LUKS only + the constraints from the filesystems itself (eg. xfs needs a minimum of 4096 blocks). +*-F*:: + Only for action start: Run fsck on the filesystem before mounting it to + the given mountpoint. + *-m*:: Additional arguments passed through to mount. Could be like "'-o noatime'". -- 2.1.4