X-Git-Url: https://git.grml.org/?a=blobdiff_plain;f=grml-crypt;h=6a4cd703be14951134112708ff7e7eaa549f7eab;hb=8fe0afd337e5b45f6e1cd2f6b15fee645c1f6e66;hp=772247429ee3c91d4fe851ab08196bd5382fba3a;hpb=fb8006b1a297c6c1c489884ad780614ca27766a0;p=grml-crypt.git diff --git a/grml-crypt b/grml-crypt index 7722474..6a4cd70 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' @@ -245,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_" @@ -374,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" ;; @@ -392,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 ;; @@ -422,8 +427,8 @@ if (( $OPTIMIZING_LEVEL_ > 1 )); then fi TARGET_="$2" -MKFS_="/sbin/mkfs.$FSTYPE_" -if [ ! -x "$MKFS_" ]; then +MKFS_="`which mkfs.$FSTYPE_`" +if [ $? != "0" ]; then die "invalid filesystem type \"$FSTYPE_\"" 1 fi