blob: b7ba106ff31f0ec795079bcbf2303bab5dbe7ee0 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
|
#!/bin/bash
maxWait=60
sed 's/#.*$//' /etc/crypttab \
| grep -v '^ *$' \
| if [ "x$1" = 'x-u' ]; then
tac
else
cat
fi \
| while read -r name device key; do
while [ ${maxWait} -gt 0 ] && [ ! -b "${device}" ]; do
sleep 1
maxWait=$[${maxWait}-1]
done
if cryptsetup status "${name}" 2>&1 >/dev/null; then
is_mounted=true
else
is_mounted=false
fi
if [ "$1" == "-u" ]; then
if ! ${is_mounted}; then
continue
fi
if ! /usr/sbin/cryptsetup luksClose "${name}"; then
>&2 echo "FEHLER: cryptsetup luksClose $name"
exit 1
fi
else
if ${is_mounted}; then
continue
fi
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
done
|