-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
+ -F only for action start: run fsck before mounting the filesystem. Use fsck's -f option if given twice.
-m additional arguments to mount
-v verbose (show what is going on, v++)
-h this help text
die "could not luksOpen $TARGET_"
if [[ "$FSCK_" == "true" ]] ; then
execute "fsck -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_"
fi
margs_=""
$READONLY_SET_ && margs_='-r'
dm_path_=`echo $dm_path_ |awk '{print $1}'` || die "could not get devicemapper name for $tmp_"
dprint "dm_path_=\"$dm_path_\""
+ # check for symlinks
+ unset tmp_dm_path_
+ for dmapper in /dev/mapper/grml-crypt* ; do
+ link=$(readlink -f "$dmapper")
+ dprint "looping device mapper devices, dmapper=$dmapper => link=$link"
+ if [ "$link" = "$dm_path_" ] ; then
+ tmp_dm_path_="$dmapper"
+ fi
+ done
+
+ if [ -n "$tmp_dm_path_" ] ; then
+ dm_path_="$tmp_dm_path_"
+ unset tmp_dm_path_
+ fi
+
dm_name_="${dm_path_##*/}"
dprint "dm_name_=\"$dm_name_\""
- dmsetup info $dm_name_ >/dev/null ||die "$dm_name_ is not aktive"
+ dmsetup info $dm_name_ >/dev/null ||die "$dm_name_ is not active"
device_=`$CRYPTSETUP_ status $dm_name_ |awk '/device:/{print $2}'` || \
die "could not get underlying device of $dm_path_"
dprint "device_=\"$device_\""
echo "$device_" |grep loop &>/dev/null && execute "losetup -d $device_" \
die "could not delete loop device $device_" || \
execute "losetup -d $device_ &>/dev/null" eprint "could not delete loop device $device_, \
-this device could possible not be a loop device => maybe bogus error"
+this device possibly is not a loop device => maybe bogus error"
notice "$mp_ successfully unmountet/closed/deleted"
}
OPTIMIZED_MODE_SET_='true' ;;
y) VERIFY_PW_="--verify-passphrase" ;;
f) FORCE_='true' ;;
- F) FSCK_='true' ;;
+ F) if [[ "$FSCK_" == "true" ]] ; then
+ FSCK_='trueforce'
+ else
+ FSCK_='true'
+ fi
+ ;;
m) ADDITIONAL_MOUNT_ARGS_="$OPTARG" ;;
h) printUsage; exit ;;
v) let verbose_=$verbose_+1 ;;