summaryrefslogtreecommitdiffstats
path: root/0093-crypt-crypt-run-generator.sh-do-not-add-already-exis.patch
blob: 31144a4cffd9d29c467802a7d908a856f2f7b456 (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
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
From 3f7e5358e520b3d55c709a675d46c8080070276d Mon Sep 17 00:00:00 2001
From: Harald Hoyer <harald@redhat.com>
Date: Mon, 30 Jul 2012 18:35:30 +0200
Subject: [PATCH] crypt/crypt-run-generator.sh: do not add already existing
 luks

---
 modules.d/90crypt/crypt-run-generator.sh |  9 ++++++++-
 test/TEST-10-RAID/create-root.sh         |  3 ++-
 test/TEST-10-RAID/test.sh                |  9 +++++++--
 test/TEST-12-RAID-DEG/create-root.sh     |  3 ++-
 test/TEST-12-RAID-DEG/test.sh            |  6 ++++++
 test/TEST-13-ENC-RAID-LVM/test.sh        | 14 +++++++++++---
 test/TEST-30-ISCSI/create-root.sh        |  3 ---
 test/TEST-40-NBD/create-root.sh          | 16 +++++++++-------
 test/TEST-40-NBD/test.sh                 |  8 ++++++--
 9 files changed, 51 insertions(+), 20 deletions(-)

diff --git a/modules.d/90crypt/crypt-run-generator.sh b/modules.d/90crypt/crypt-run-generator.sh
index d70443e..cb3aedc 100755
--- a/modules.d/90crypt/crypt-run-generator.sh
+++ b/modules.d/90crypt/crypt-run-generator.sh
@@ -1,8 +1,15 @@
-#!/bin/bash
+#!/bin/sh
+
+. /lib/dracut-lib.sh
 
 dev=$1
 luks=$2
 
+while read l rest; do
+    strstr "${l##luks-}" "${luks##luks-}" && exit 0
+done < /etc/crypttab
+
+
 echo "$luks $dev" >> /etc/crypttab
 /lib/systemd/system-generators/systemd-cryptsetup-generator
 systemctl daemon-reload
diff --git a/test/TEST-10-RAID/create-root.sh b/test/TEST-10-RAID/create-root.sh
index 3dd86cb..cd67819 100755
--- a/test/TEST-10-RAID/create-root.sh
+++ b/test/TEST-10-RAID/create-root.sh
@@ -34,5 +34,6 @@ lvm lvchange -a n /dev/dracut/root
 udevadm settle
 cryptsetup luksClose /dev/mapper/dracut_crypt_test
 udevadm settle
-echo "dracut-root-block-created" >/dev/sda1
+eval $(udevadm info --query=env --name=/dev/md0|while read line; do [ "$line" != "${line#*ID_FS_UUID*}" ] && echo $line; done;)
+{ echo "dracut-root-block-created"; echo "ID_FS_UUID=$ID_FS_UUID"; } >/dev/sda1
 poweroff -f
diff --git a/test/TEST-10-RAID/test.sh b/test/TEST-10-RAID/test.sh
index d2b1921..45bb62e 100755
--- a/test/TEST-10-RAID/test.sh
+++ b/test/TEST-10-RAID/test.sh
@@ -4,14 +4,14 @@ TEST_DESCRIPTION="root filesystem on an encrypted LVM PV on a RAID-5"
 KVERSION=${KVERSION-$(uname -r)}
 
 # Uncomment this to debug failures
-#DEBUGFAIL="rd.shell"
+DEBUGFAIL="rd.shell rd.udev.log-priority=debug loglevel=70 systemd.log_target=kmsg"
 test_run() {
     DISKIMAGE=$TESTDIR/TEST-10-RAID-root.img
     $testdir/run-qemu \
 	-hda $DISKIMAGE \
 	-m 256M -nographic \
 	-net none -kernel /boot/vmlinuz-$KVERSION \
-	-append "root=/dev/dracut/root rw quiet rd.retry=3 rd.info console=ttyS0,115200n81 selinux=0 rd.debug  $DEBUGFAIL" \
+	-append "root=/dev/dracut/root rw rd.retry=10 console=ttyS0,115200n81 selinux=0 $DEBUGFAIL" \
 	-initrd $TESTDIR/initramfs.testing
     grep -m 1 -q dracut-root-block-success $DISKIMAGE || return 1
 }
@@ -70,6 +70,7 @@ test_setup() {
 	-append "root=/dev/dracut/root rw rootfstype=ext2 quiet console=ttyS0,115200n81 selinux=0" \
 	-initrd $TESTDIR/initramfs.makeroot  || return 1
     grep -m 1 -q dracut-root-block-created $DISKIMAGE || return 1
+    eval $(grep -a -m 1 ID_FS_UUID $DISKIMAGE)
 
     (
 	export initdir=$TESTDIR/overlay
@@ -77,8 +78,12 @@ test_setup() {
 	dracut_install poweroff shutdown
 	inst_hook emergency 000 ./hard-off.sh
 	inst ./cryptroot-ask.sh /sbin/cryptroot-ask
+        mkdir -p $initdir/etc
+        echo "luks-$ID_FS_UUID /dev/md0 /etc/key" > $initdir/etc/crypttab
+        echo -n "test" > $initdir/etc/key
 	inst_simple ./99-idesymlinks.rules /etc/udev/rules.d/99-idesymlinks.rules
     )
+
     sudo $basedir/dracut.sh -l -i $TESTDIR/overlay / \
 	-o "plymouth network" \
 	-a "debug" \
diff --git a/test/TEST-12-RAID-DEG/create-root.sh b/test/TEST-12-RAID-DEG/create-root.sh
index 84f5ad2..d5a8c0b 100755
--- a/test/TEST-12-RAID-DEG/create-root.sh
+++ b/test/TEST-12-RAID-DEG/create-root.sh
@@ -41,4 +41,5 @@ udevadm settle
 mdadm -W /dev/md0 || :
 mdadm --detail --export /dev/md0 |grep MD_UUID > /tmp/mduuid
 . /tmp/mduuid
-{ echo "dracut-root-block-created"; echo MD_UUID=$MD_UUID; } > /dev/sda1
+eval $(udevadm info --query=env --name=/dev/md0|while read line; do [ "$line" != "${line#*ID_FS_UUID*}" ] && echo $line; done;)
+{ echo "dracut-root-block-created"; echo MD_UUID=$MD_UUID;  echo "ID_FS_UUID=$ID_FS_UUID";} > /dev/sda1
diff --git a/test/TEST-12-RAID-DEG/test.sh b/test/TEST-12-RAID-DEG/test.sh
index 96c84f8..558e3b0 100755
--- a/test/TEST-12-RAID-DEG/test.sh
+++ b/test/TEST-12-RAID-DEG/test.sh
@@ -103,8 +103,11 @@ test_setup() {
 	-kernel "/boot/vmlinuz-$kernel" \
 	-append "root=/dev/dracut/root rw rootfstype=ext2 quiet console=ttyS0,115200n81 selinux=0" \
 	-initrd $TESTDIR/initramfs.makeroot  || return 1
+
     grep -m 1 -q dracut-root-block-created $TESTDIR/root.ext2 || return 1
     eval $(grep --binary-files=text -m 1 MD_UUID $TESTDIR/root.ext2)
+    eval $(grep -a -m 1 ID_FS_UUID $TESTDIR/root.ext2)
+
     (
 	export initdir=$TESTDIR/overlay
 	. $basedir/dracut-functions.sh
@@ -114,7 +117,10 @@ test_setup() {
 	inst ./cryptroot-ask.sh /sbin/cryptroot-ask
         mkdir -p $initdir/etc
         echo "ARRAY /dev/md0 level=raid5 num-devices=3 UUID=$MD_UUID" > $initdir/etc/mdadm.conf
+        echo "luks-$ID_FS_UUID /dev/md0 /etc/key" > $initdir/etc/crypttab
+        echo -n test > $initdir/etc/key
     )
+
     sudo $basedir/dracut.sh -l -i $TESTDIR/overlay / \
 	-o "plymouth network" \
 	-a "debug" \
diff --git a/test/TEST-13-ENC-RAID-LVM/test.sh b/test/TEST-13-ENC-RAID-LVM/test.sh
index f0f7d34..dff3229 100755
--- a/test/TEST-13-ENC-RAID-LVM/test.sh
+++ b/test/TEST-13-ENC-RAID-LVM/test.sh
@@ -17,7 +17,7 @@ test_run() {
 	-hdb $TESTDIR/check-success.img \
 	-m 256M -nographic \
 	-net none -kernel /boot/vmlinuz-$KVERSION \
-	-append "root=/dev/dracut/root rw quiet rd.retry=3 rd.info console=ttyS0,115200n81 selinux=0 rd.debug  $LUKSARGS $DEBUGFAIL" \
+	-append "root=/dev/dracut/root rw quiet rd.retry=20 rd.info console=ttyS0,115200n81 selinux=0 rd.debug  $LUKSARGS $DEBUGFAIL" \
 	-initrd $TESTDIR/initramfs.testing
     grep -m 1 -q dracut-root-block-success $TESTDIR/check-success.img || return 1
     echo "CLIENT TEST END: [OK]"
@@ -30,7 +30,7 @@ test_run() {
 	-hdb $TESTDIR/check-success.img \
 	-m 256M -nographic \
 	-net none -kernel /boot/vmlinuz-$KVERSION \
-	-append "root=/dev/dracut/root rw quiet rd.retry=3 rd.info console=ttyS0,115200n81 selinux=0 rd.debug  $DEBUGFAIL" \
+	-append "root=/dev/dracut/root rw quiet rd.retry=20 rd.info console=ttyS0,115200n81 selinux=0 rd.debug  $DEBUGFAIL" \
 	-initrd $TESTDIR/initramfs.testing
     grep -m 1 -q dracut-root-block-success $TESTDIR/check-success.img || return 1
     echo "CLIENT TEST END: [OK]"
@@ -43,7 +43,7 @@ test_run() {
 	-hdb $TESTDIR/check-success.img \
 	-m 256M -nographic \
 	-net none -kernel /boot/vmlinuz-$KVERSION \
-	-append "root=/dev/dracut/root rw quiet rd.retry=3 rd.info console=ttyS0,115200n81 selinux=0 rd.debug  $DEBUGFAIL rd.luks.uuid=failme" \
+	-append "root=/dev/dracut/root rw quiet rd.retry=10 rd.info console=ttyS0,115200n81 selinux=0 rd.debug  $DEBUGFAIL rd.luks.uuid=failme" \
 	-initrd $TESTDIR/initramfs.testing
     grep -m 1 -q dracut-root-block-success $TESTDIR/check-success.img && return 1
     echo "CLIENT TEST END: [OK]"
@@ -114,6 +114,14 @@ test_setup() {
 	inst_hook emergency 000 ./hard-off.sh
 	inst_simple ./99-idesymlinks.rules /etc/udev/rules.d/99-idesymlinks.rules
 	inst ./cryptroot-ask.sh /sbin/cryptroot-ask
+        mkdir -p $initdir/etc
+        i=2
+        for uuid in $cryptoUUIDS; do
+	    eval $uuid
+	    printf 'luks-%s /dev/sda%s /etc/key\n' $ID_FS_UUID $i
+            ((i+=1))
+        done > $initdir/etc/crypttab
+        echo -n test > $initdir/etc/key
     )
     sudo $basedir/dracut.sh -l -i $TESTDIR/overlay / \
 	-o "plymouth network" \
diff --git a/test/TEST-30-ISCSI/create-root.sh b/test/TEST-30-ISCSI/create-root.sh
index 6016320..8116a13 100755
--- a/test/TEST-30-ISCSI/create-root.sh
+++ b/test/TEST-30-ISCSI/create-root.sh
@@ -23,6 +23,3 @@ umount /sysroot && \
 lvm lvchange -a n /dev/dracut/root && \
 echo "dracut-root-block-created" >/dev/sdb
 poweroff -f
-
-#lvm lvchange -a n /dev/dracut/root && \
-#cryptsetup luksClose /dev/mapper/dracut_crypt_test && \
diff --git a/test/TEST-40-NBD/create-root.sh b/test/TEST-40-NBD/create-root.sh
index 4bef5f1..5b902c3 100755
--- a/test/TEST-40-NBD/create-root.sh
+++ b/test/TEST-40-NBD/create-root.sh
@@ -18,11 +18,13 @@ mke2fs -j /dev/dracut/root && \
 mkdir -p /sysroot && \
 mount /dev/dracut/root /sysroot && \
 cp -a -t /sysroot /source/* && \
-umount /sysroot && \
-sleep 1 && \
-lvm lvchange -a n /dev/dracut/root && \
-sleep 1 && \
-cryptsetup luksClose /dev/mapper/dracut_crypt_test && \
-sleep 1 && \
-echo "dracut-root-block-created" >/dev/sda
+umount /sysroot
+sleep 1
+lvm lvchange -a n /dev/dracut/root
+udevadm settle
+cryptsetup luksClose /dev/mapper/dracut_crypt_test
+udevadm settle
+sleep 1
+eval $(udevadm info --query=env --name=/dev/sdb|while read line; do [ "$line" != "${line#*ID_FS_UUID*}" ] && echo $line; done;)
+{ echo "dracut-root-block-created"; echo "ID_FS_UUID=$ID_FS_UUID"; } >/dev/sda
 poweroff -f
diff --git a/test/TEST-40-NBD/test.sh b/test/TEST-40-NBD/test.sh
index 99d930f..9881630 100755
--- a/test/TEST-40-NBD/test.sh
+++ b/test/TEST-40-NBD/test.sh
@@ -52,7 +52,6 @@ client_test() {
 	echo "Unable to make client sda image" 1>&2
 	return 1
     fi
-
     $testdir/run-qemu \
         -hda $TESTDIR/flag.img \
         -m 256M -nographic \
@@ -234,6 +233,7 @@ make_encrypted_root() {
 	-append "root=/dev/dracut/root rw quiet console=ttyS0,115200n81 selinux=0" \
 	-initrd $TESTDIR/initramfs.makeroot  || return 1
     grep -m 1 -q dracut-root-block-created $TESTDIR/flag.img || return 1
+    grep -a -m 1 ID_FS_UUID $TESTDIR/flag.img > $TESTDIR/luks.uuid
 }
 
 make_client_root() {
@@ -328,7 +328,11 @@ test_setup() {
 	dracut_install poweroff shutdown
 	inst_hook emergency 000 ./hard-off.sh
 	inst_simple ./99-idesymlinks.rules /etc/udev/rules.d/99-idesymlinks.rules
-	inst ./cryptroot-ask.sh /sbin/cryptroot-ask
+        inst ./cryptroot-ask.sh /sbin/cryptroot-ask
+        . $TESTDIR/luks.uuid
+        mkdir -p $initdir/etc
+	echo "luks-$ID_FS_UUID /dev/nbd0 /etc/key" > $initdir/etc/crypttab
+        echo -n test > $initdir/etc/key
     )
 
     sudo $basedir/dracut.sh -l -i $TESTDIR/overlay / \