4 . $(dirname $0)/conf.sh
8 keyfile1=`mktemp $base.XXXXXX` || exit 1
9 keyfile2=`mktemp $base.XXXXXX` || exit 1
10 keyfile3=`mktemp $base.XXXXXX` || exit 1
11 keyfile4=`mktemp $base.XXXXXX` || exit 1
12 mdconfig -a -t malloc -s `expr $sectors + 1` -u $no || exit 1
16 dd if=/dev/random of=${keyfile1} bs=512 count=16 >/dev/null 2>&1
17 dd if=/dev/random of=${keyfile2} bs=512 count=16 >/dev/null 2>&1
18 dd if=/dev/random of=${keyfile3} bs=512 count=16 >/dev/null 2>&1
19 dd if=/dev/random of=${keyfile4} bs=512 count=16 >/dev/null 2>&1
21 geli init -B none -P -K $keyfile1 md${no}
22 geli attach -p -k $keyfile1 md${no}
23 geli setkey -n 1 -P -K $keyfile2 md${no}
25 # Remove key 0 for attached provider.
26 geli delkey -n 0 md${no}
34 # We cannot use keyfile1 anymore.
35 geli attach -p -k $keyfile1 md${no} 2>/dev/null
43 geli attach -p -k $keyfile2 md${no}
50 # We cannot remove last key without -f option (for attached provider).
51 geli delkey -n 1 md${no} 2>/dev/null
58 # Remove last key for attached provider.
59 geli delkey -f -n 1 md${no}
66 # If there are no valid keys, but provider is attached, we can save situation.
67 geli setkey -n 0 -P -K $keyfile3 md${no}
75 # We cannot use keyfile2 anymore.
76 geli attach -p -k $keyfile2 md${no} 2>/dev/null
84 geli attach -p -k $keyfile3 md${no}
92 geli setkey -n 1 -P -K $keyfile4 md${no}
100 # Remove key 1 for detached provider.
101 geli delkey -n 1 md${no}
102 if [ $? -eq 0 ]; then
108 # We cannot use keyfile4 anymore.
109 geli attach -p -k $keyfile4 md${no} 2>/dev/null
110 if [ $? -ne 0 ]; then
116 # We cannot remove last key without -f option (for detached provider).
117 geli delkey -n 0 md${no} 2>/dev/null
118 if [ $? -ne 0 ]; then
124 # Remove last key for detached provider.
125 geli delkey -f -n 0 md${no}
126 if [ $? -eq 0 ]; then
132 # We cannot use keyfile3 anymore.
133 geli attach -p -k $keyfile3 md${no} 2>/dev/null
134 if [ $? -ne 0 ]; then
140 rm -f $keyfile1 $keyfile2 $keyfile3 $keyfile4