t11 and new partitioner fixes
[automated-distro-installer] / fsf / crypt-disks-start
1 #!/bin/bash
2
3 # usage: $0
4 # this script is idempotent
5
6 if ! test "$BASH_VERSION"; then echo "error: shell is not bash" >&2; exit 1; fi
7 shopt -s inherit_errexit 2>/dev/null ||: # ignore fail in bash < 4.4
8 set -eE -o pipefail
9 trap 'echo "$0:$LINENO:error: \"$BASH_COMMAND\" exit status: $?, PIPESTATUS: ${PIPESTATUS[*]}" >&2' ERR
10
11 m() { printf "%s\n" "$*"; "$@"; }
12
13
14 lvs --noheadings -o vg_name,lv_name | while read -r vg lv; do
15 if [[ ! $vg || ! $lv ]]; then
16 continue
17 fi
18 if ! integritysetup dump /dev/$vg/$lv &>/dev/null; then
19 continue
20 fi
21 int_name=integrity-$vg-$lv
22 if integritysetup status $int_name &>/dev/null; then
23 continue
24 fi
25 m integritysetup open --allow-discards /dev/$vg/$lv $int_name
26 done
27
28 awk '$1 !~ /^ *#/ {print $1}' /etc/crypttab | while read -r c; do
29 m cryptdisks_start $c
30 done