projects
/
grml-crypt.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
updated documentation for previous patch
[grml-crypt.git]
/
grml-crypt
diff --git
a/grml-crypt
b/grml-crypt
index
5dcace5
..
d45a787
100755
(executable)
--- a/
grml-crypt
+++ b/
grml-crypt
@@
-46,6
+46,7
@@
ADDITIONAL_CRYPTSETUP_ARGS_=""
READONLY_SET_='false'
ADDITIONAL_MOUNT_ARGS_=""
BATCH_MODE_="--batch-mode"
READONLY_SET_='false'
ADDITIONAL_MOUNT_ARGS_=""
BATCH_MODE_="--batch-mode"
+PV_='/usr/bin/pv'
###
### __FUNCTIONS
###
### __FUNCTIONS
@@
-82,8
+83,8
@@
ACTIONS:
Format a device or a file (is created with the given size if it
does not exist) with the given filesystem and mount it, if a
mountpoint was given.
Format a device or a file (is created with the given size if it
does not exist) with the given filesystem and mount it, if a
mountpoint was given.
- start <device/file>
<mountpoint>
- Mount the device/file in the mountpoint.
+ start <device/file>
[mountpoint]
+ Mount the device/file in the mountpoint
or to a default mountpoint
.
stop <mountpoint>
Umount the given mountpoint (umount, luksClose, losetup -d)
stop <mountpoint>
Umount the given mountpoint (umount, luksClose, losetup -d)
@@
-125,6
+126,10
@@
function formatDevice
{
type_="$1" # could be donothing or init
ret_=0
{
type_="$1" # could be donothing or init
ret_=0
+ local ddcmd_="dd if=/dev/zero of=$DM_PATH_ bs=1M &>/dev/null"
+ if [[ -x "$PV_" && $verbose_ -ge 3 ]] ; then
+ ddcmd_="dd if=/dev/zero bs=1M 2>/dev/null | $PV_ | dd of=$DM_PATH_ bs=1M &>/dev/null"
+ fi
args_="$VERIFY_PW_ $BATCH_MODE_ --key-size $CIPHER_SIZE_ --cipher $CIPHER_ --iter-time $ITERATION_TIME_ $ADDITIONAL_CRYPTSETUP_ARGS_"
#args_=`echo "$args_" |tr -s ' '`
args_="$VERIFY_PW_ $BATCH_MODE_ --key-size $CIPHER_SIZE_ --cipher $CIPHER_ --iter-time $ITERATION_TIME_ $ADDITIONAL_CRYPTSETUP_ARGS_"
#args_=`echo "$args_" |tr -s ' '`
@@
-135,7
+140,7
@@
function formatDevice
if [[ $type_ == 'init' && $OPTIMIZED_MODE_SET_ == 'true' ]]; then
echo "finishing optimised initialisation (this could take some time)"
# FIXME
if [[ $type_ == 'init' && $OPTIMIZED_MODE_SET_ == 'true' ]]; then
echo "finishing optimised initialisation (this could take some time)"
# FIXME
- execute "
dd if=/dev/zero of=$DM_PATH_ bs=1M &>/dev/null
" # || \
+ execute "
$ddcmd_
" # || \
# warn "could not finish optimised initialisation properly"
ret_=$?
# cutted out because of no space left on device error :(
# warn "could not finish optimised initialisation properly"
ret_=$?
# cutted out because of no space left on device error :(
@@
-161,13
+166,13
@@
function actionStart
{
ret_=0
{
ret_=0
- # no mountpoint, by-by
if [[ "$MOUNT_POINT_" == "" ]]; then
if [[ "$MOUNT_POINT_" == "" ]]; then
- printUsage
- die 'no mountpoint given'
- fi
- if [ ! -d "$MOUNT_POINT_" ]; then
- die "mountpoint $MOUNT_POINT_ does not exist"
+ MOUNT_POINT_="/mnt/$DM_NAME_"
+ else
+ # error out if mountpoint was given but doesn't exist
+ if [ ! -d "$MOUNT_POINT_" ]; then
+ die "mountpoint $MOUNT_POINT_ does not exist"
+ fi
fi
# removed due to unionfs problem isLuks does not work with filesystem images
# without losetup
fi
# removed due to unionfs problem isLuks does not work with filesystem images
# without losetup
@@
-193,6
+198,10
@@
function actionStart
fi
margs_=""
$READONLY_SET_ && margs_='-r'
fi
margs_=""
$READONLY_SET_ && margs_='-r'
+ # mountpoint was not given so we use the default one which we need to create first
+ if [ ! -d "$MOUNT_POINT_" ]; then
+ execute "mkdir -p '$MOUNT_POINT_'" || die "failed to create mountpoint $MOUNT_POINT_"
+ fi
execute "mount $margs_ $ADDITIONAL_MOUNT_ARGS_ $DM_PATH_ $MOUNT_POINT_" die
}
execute "mount $margs_ $ADDITIONAL_MOUNT_ARGS_ $DM_PATH_ $MOUNT_POINT_" die
}
@@
-235,6
+244,9
@@
function actionStop
dprint "device_=\"$device_\""
execute "umount $dm_path_" die "could not unmount $device_"
dprint "device_=\"$device_\""
execute "umount $dm_path_" die "could not unmount $device_"
+ if [[ "$MOUNT_POINT_" == "/mnt/$dm_name_" ]]; then
+ rmdir "$MOUNT_POINT_"
+ fi
execute "$CRYPTSETUP_ luksClose $dm_name_" die "could not close $dm_path_"
echo "$device_" |grep loop &>/dev/null && execute "losetup -d $device_" \
die "could not delete loop device $device_" || \
execute "$CRYPTSETUP_ luksClose $dm_name_" die "could not close $dm_path_"
echo "$device_" |grep loop &>/dev/null && execute "losetup -d $device_" \
die "could not delete loop device $device_" || \
@@
-264,6
+276,7
@@
function actionFormat
IS_IMAGE_='false'
ret_=0
init_='init'
IS_IMAGE_='false'
ret_=0
init_='init'
+ local ddcmd_
if (( $SIZE_ < 3 )); then
die "the minimum size of an encrypted luks partition should be 2"
if (( $SIZE_ < 3 )); then
die "the minimum size of an encrypted luks partition should be 2"
@@
-315,7
+328,11
@@
function actionFormat
elif [[ $ENTROPY_SOURCE_ != '/dev/zero' ]]; then
# default mode
echo "SECURE mode (taking $ENTROPY_SOURCE_ as source, this could take some time)"
elif [[ $ENTROPY_SOURCE_ != '/dev/zero' ]]; then
# default mode
echo "SECURE mode (taking $ENTROPY_SOURCE_ as source, this could take some time)"
- execute "dd if=$ENTROPY_SOURCE_ of=$TARGET_ bs=1M &>/dev/null" #||\
+ ddcmd_="dd if=$ENTROPY_SOURCE_ of=$TARGET_ bs=1M &>/dev/null"
+ if [[ -x "$PV_" && $verbose_ -ge 3 ]] ; then
+ ddcmd_="dd if=$ENTROPY_SOURCE_ bs=1M 2>/dev/null | $PV_ | dd of=$TARGET_ bs=1M &>/dev/null"
+ fi
+ execute "$ddcmd_" # ||\
# skipped because "no space left on device" from dd
# die "could not initialise $TARGET_ with $ENTROPY_SOURCE_"
else
# skipped because "no space left on device" from dd
# die "could not initialise $TARGET_ with $ENTROPY_SOURCE_"
else