blob: 623423ff88d95c468e0f1164940ad6adee4245af (
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
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
|
#!/bin/sh
# cryptdisks_start - wrapper around cryptsetup which parses
# /etc/crypttab, just like mount parses /etc/fstab.
# Initial code and (c) 2007 Jon Dowland <jon@alcopop.org>
# License: GNU General Public License, v2 or any later
# (https://www.gnu.org/copyleft/gpl.html)
set -e
. /lib/cryptsetup/cryptdisks-functions
INITSTATE="manual"
DEFAULT_LOUD="yes"
FORCE_START="yes"
usage() {
local rv="${1:-1}"
echo "Usage: $0 [-r|--readonly] <name> [.. <name>]" >&2
echo >&2
echo "reads $TABFILE and starts the mapping corresponding to <name>" >&2
exit $rv
}
CRYPTTAB_EXTRA_OPTIONS=
while [ $# -gt 0 ]; do
case "$1" in
-r|--readonly) CRYPTTAB_EXTRA_OPTIONS="${CRYPTTAB_EXTRA_OPTIONS:+$CRYPTTAB_EXTRA_OPTIONS,}readonly";;
-h|--help|-\?) usage 0;;
--) shift; break;;
-*) echo "Error: unknown option '$1'" >&2; usage 1;;
*) break;;
esac
shift
done
[ $# -gt 0 ] || usage 1
if [ $(id -u) -ne 0 ]; then
log_warning_msg "$0 needs root privileges"
exit 1
fi
log_action_begin_msg "Starting crypto disk"
mount_fs
rv=0
for name in "$@"; do
if ! crypttab_find_entry --quiet "$name"; then
device_msg "$name" "failed, not found in crypttab"
rv=1
else
if [ -n "$CRYPTTAB_EXTRA_OPTIONS" ]; then
CRYPTTAB_OPTIONS="$CRYPTTAB_OPTIONS,$CRYPTTAB_EXTRA_OPTIONS"
_CRYPTTAB_OPTIONS="$_CRYPTTAB_OPTIONS,$CRYPTTAB_EXTRA_OPTIONS"
fi
setup_mapping || rv=$?
fi
done
umount_fs
log_action_end_msg $rv
exit $rv
|