#!/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