diff options
-rwxr-xr-x | mount-crypts | 32 |
1 files changed, 32 insertions, 0 deletions
diff --git a/mount-crypts b/mount-crypts new file mode 100755 index 0000000..e434adc --- /dev/null +++ b/mount-crypts @@ -0,0 +1,32 @@ +#!/bin/bash + +i=1 +maxWait=60 + +while [ $i -le $(sed "s/#.*$//" /etc/crypttab | grep -vc '^ *$') ] +do + s="$(sed "s/#.*$//" /etc/crypttab | grep -v '^ *$' | tail -n$i | head -n1 | sed "s/ */ /g")" + name=$(echo $s | awk '{print $1}') + device=$(echo $s | awk '{print $2}') + key=$(echo $s | awk '{print $3}') + while [ ${maxWait} -gt 0 ] && [ ! -b "${device}" ] + do + sleep 1 + maxWait=$[${maxWait}-1] + done + if [ "$1" == "-u" ] + then + if ! /usr/sbin/cryptsetup luksClose $name + then + >&2 echo "FEHLER: cryptsetup luksClose $name" + exit 1 + fi + else + if ! /usr/sbin/cryptsetup luksOpen $device $name --key-file $key + then + >&2 echo "FEHLER: cryptsetup luksOpen $device $name --key-file $key" + exit 1 + fi + fi + i=$[$i+1] +done |