X-Git-Url: http://git.grml.org/?a=blobdiff_plain;f=grml-crypt;h=8fbe04de5861282c49dbde961d7f4970f1bbfae1;hb=11f680d3e320aeb9bc7444b398740f2fb9ded176;hp=d45a787087d1a3aec3522018382e1db989520ab2;hpb=72dd60ff9f47be5ef600ff53c39a80a4f03a6fd1;p=grml-crypt.git diff --git a/grml-crypt b/grml-crypt index d45a787..8fbe04d 100755 --- a/grml-crypt +++ b/grml-crypt @@ -36,6 +36,7 @@ ACTION_="" DM_PREFIX_="grml-crypt_" FORCE_='false' FSCK_='false' +FSCK_EXTRA_OPTS_="" ENTROPY_SOURCE_='/dev/urandom' OPTIMIZED_MODE_SET_='false' OPTIMIZING_LEVEL_=0 @@ -67,7 +68,10 @@ 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. Use fsck's -f option if given twice. + -F only for action start: run fsck before mounting the filesystem. + Use fsck's -f option if given twice. + -X Read next argument as a list of options to pass to fsck: + 'grml-crypt -FF -X "-y -T" start /dev/ice' will run fsck with options -y and -T. -m additional arguments to mount -v verbose (show what is going on, v++) -h this help text @@ -167,7 +171,7 @@ function actionStart ret_=0 if [[ "$MOUNT_POINT_" == "" ]]; then - MOUNT_POINT_="/mnt/$DM_NAME_" + MOUNT_POINT_="/media/$DM_NAME_" else # error out if mountpoint was given but doesn't exist if [ ! -d "$MOUNT_POINT_" ]; then @@ -192,9 +196,9 @@ function actionStart 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_PATH_" || die "fsck failed on $DM_PATH_" + execute "fsck $FSCK_EXTRA_OPTS_ -C $DM_PATH_" || die "fsck failed on $DM_PATH_" elif [[ "$FSCK_" == "trueforce" ]] ; then - execute "fsck -f -C $DM_PATH_" || die "fsck failed on $DM_PATH_" + execute "fsck -f $FSCK_EXTRA_OPTS_ -C $DM_PATH_" || die "fsck failed on $DM_PATH_" fi margs_="" $READONLY_SET_ && margs_='-r' @@ -202,6 +206,7 @@ function actionStart if [ ! -d "$MOUNT_POINT_" ]; then execute "mkdir -p '$MOUNT_POINT_'" || die "failed to create mountpoint $MOUNT_POINT_" fi + udevadm settle execute "mount $margs_ $ADDITIONAL_MOUNT_ARGS_ $DM_PATH_ $MOUNT_POINT_" die } @@ -244,7 +249,7 @@ function actionStop dprint "device_=\"$device_\"" execute "umount $dm_path_" die "could not unmount $device_" - if [[ "$MOUNT_POINT_" == "/mnt/$dm_name_" ]]; then + if [[ "$MOUNT_POINT_" == "/media/$dm_name_" ]]; then rmdir "$MOUNT_POINT_" fi execute "$CRYPTSETUP_ luksClose $dm_name_" die "could not close $dm_path_" @@ -373,7 +378,7 @@ function actionFormat ### __MAIN ### -while getopts "s:t:rzoyfFm:hvS:C:I:A:" opt; do +while getopts "s:t:rzoyfFm:hvS:C:I:A:X:" opt; do case "$opt" in s) SIZE_="$OPTARG"; SIZE_SET_='true' ;; t) FSTYPE_="$OPTARG" ;; @@ -391,6 +396,7 @@ while getopts "s:t:rzoyfFm:hvS:C:I:A:" opt; do FSCK_='true' fi ;; + X) FSCK_EXTRA_OPTS_="$OPTARG" ;; m) ADDITIONAL_MOUNT_ARGS_="$OPTARG" ;; h) printUsage; exit ;; v) let verbose_=$verbose_+1 ;;