]> git.ipfire.org Git - thirdparty/dracut.git/commitdiff
Create test image on an md array and improve cryptroot handling
authorVictor Lowther <victor.lowther@gmail.com>
Thu, 21 May 2009 02:55:13 +0000 (19:55 -0700)
committerHarald Hoyer <harald@redhat.com>
Mon, 25 May 2009 09:36:32 +0000 (11:36 +0200)
If we purport to test booting to an md raid, we may as well test it.

We do not need the plymouth module and the normal crypt module to include
duplicate functionality.

Makefile
modules.d/00test/create-root.sh
modules.d/50plymouth/install
modules.d/90crypt/63-luks.rules
modules.d/90crypt/cryptroot-ask.sh
modules.d/90crypt/install
modules.d/90mdraid/70-mdadm.rules
modules.d/90mdraid/install
test/make-test-root

index bd57c96e43179a7fe9c6888ebe3a73ee1344a5d7..d46dc8aace968bf7fd7a9332a935f439ccf7110e 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -23,6 +23,7 @@ clean:
        rm -f modules.d/99base/switch_root
        rm -f test-*.img
        rm -f test/initramfs.*
+       rm -f test/root.ext2
 
 archive: dracut-$(VERSION)-$(GITVERSION).tar.bz2
 
index c756f4f5f2bb19ed5bf4531703e5e9ae202de24d..29c6f95c24b6592611875929999296de183711f3 100755 (executable)
@@ -1,14 +1,15 @@
 #!/bin/sh
-sfdisk /dev/sda <<EOF
-
-;
-;
+sfdisk -C 640 -H 2 -S 32 -L /dev/sda <<EOF
+,213
+,213
+,213
 ;
 EOF
+mdadm --create /dev/md0 --run --auto=yes --level=5 --raid-devices=3 /dev/sda1 /dev/sda2 /dev/sda3
 echo -n test >keyfile
-cryptsetup -q luksFormat /dev/sda1 /keyfile
+cryptsetup -q luksFormat /dev/md0 /keyfile
 echo "The passphrase is test"
-cryptsetup luksOpen /dev/sda1 dracut_crypt_test </keyfile
+cryptsetup luksOpen /dev/md0 dracut_crypt_test </keyfile
 lvm pvcreate -ff  -y /dev/mapper/dracut_crypt_test
 lvm vgcreate dracut /dev/mapper/dracut_crypt_test
 lvm lvcreate -l 100%FREE -n root dracut
index da477c9d4c43bf492e429d9a95973b39453d9afa..c5b2695f4fffac57d4bc9bc5715b248ac02e0044 100755 (executable)
@@ -3,7 +3,5 @@
 inst_hook pre-udev 10 "$moddir"/plymouth-start.sh
 inst_hook pre-pivot 90 "$moddir"/plymouth-newroot.sh
 inst_hook emergency 50 "$moddir"/plymouth-emergency.sh
-inst_rules "$moddir/63-luks.rules"
-inst "$moddir"/cryptroot-ask.sh /lib/udev/cryptroot-ask
-inst cryptsetup
+inst "$moddir"/cryptroot-ask.sh /sbin/cryptroot-ask
 
index 893577bbc6b706b89f55da00250b1f5b935a8536..01a1b1d89221a3f1ba69d50b53fceb34b5690616 100644 (file)
@@ -8,6 +8,6 @@ SUBSYSTEM!="block", GOTO="luks_end"
 ACTION!="add|change", GOTO="luks_end"
 
 KERNEL!="sr*", IMPORT{program}="vol_id --export $tempnode"
-ENV{ID_FS_TYPE}=="crypto_LUKS", RUN+="cryptroot-ask $env{DEVNAME} luks-$env{ID_FS_UUID}"
+ENV{ID_FS_TYPE}=="crypto_LUKS", RUN+="/sbin/cryptroot-ask $env{DEVNAME} luks-$env{ID_FS_UUID}"
 
 LABEL="luks_end"
index 48cc0f7995f5a7724f77a4dad9e99d72d1e0feed..0c8a0c89c1bf26351ef3e8d090350393a7a5113c 100755 (executable)
@@ -1,8 +1,7 @@
 #!/bin/sh
 
 [ -b /dev/mapper/$2 ] && exit 0
-{
-       flock -s 9
-       /sbin/cryptsetup luksOpen -T1 $1 $2 </dev/console >/dev/console 2>&1
+{ flock -s 9; 
+  /sbin/cryptsetup luksOpen -T1 $1 $2 </dev/console >/dev/console 2>&1
 } 9>/.console.lock
 
index a1e7b0197f29a6a56facf7ffb7947370c9dcc4ec..fcaaa60825fed81e05ba561f62c80490321c99a5 100755 (executable)
@@ -2,4 +2,4 @@
 inst cryptsetup
 instmods dm_crypt cbc aes sha256 xts
 inst_rules "$moddir/63-luks.rules"
-inst "$moddir"/cryptroot-ask.sh /lib/udev/cryptroot-ask
+inst "$moddir"/cryptroot-ask.sh /sbin/cryptroot-ask
index bd116338c8acb77efc2142b36b2dedc9b38831a5..ae54c96deb722e0d7a776e9a4d3ee7cfcca303c7 100644 (file)
@@ -2,5 +2,11 @@
 # automatically cause mdadm to be run.
 # See udev(8) for syntax
 
-SUBSYSTEM=="block", ACTION=="add|change", ENV{ID_FS_TYPE}=="linux_raid*", \
-       RUN+="/sbin/mdadm -I --auto=yes $root/%k"
+SUBSYSTEM!="block", GOTO="raid_end"
+ACTION!="add|change", GOTO="raid_end"
+KERNEL=="md/*", GOTO="raid_end"
+
+KERNEL!="sr*", IMPORT{program}="vol_id --export $tempnode"
+ENV{ID_FS_TYPE}=="linux_raid_member", RUN+="/sbin/mdadm -IR $root/%k"
+
+LABEL="raid_end"
index 41982f9b2f30fabccbd4be4a0e7a1368ecb2092e..1885f7ca57fc09830f29f231b6ef9f1446ecaa10 100755 (executable)
@@ -1,8 +1,11 @@
 #!/bin/bash
 dracut_install mdadm
+inst /etc/passwd
+inst /etc/group
+instmods =drivers/md
 [ -x  /sbin/mdmon ] && dracut_install mdmon
 inst_rules "$moddir/70-mdadm.rules"
-[ -f /etc/mdadm/mdadm.conf ] && inst /etc/mdadm/mdadm.conf "$initdir" /etc/mdadm.conf
-[ -f /etc/mdadm.conf ] && inst /etc/mdadm.conf "$initdir"
+[ -f /etc/mdadm/mdadm.conf ] && inst /etc/mdadm/mdadm.conf /etc/mdadm.conf
+[ -f /etc/mdadm.conf ] && inst /etc/mdadm.conf
 inst_hook pre-pivot 30 "$moddir/mdmon-pre-pivot.sh"
 
index fdc14dffd9c220464423adf87aadea8b345ea6b4..93d9e0f155a2cf25f94f327e2e0ec69c344de126 100755 (executable)
@@ -25,7 +25,7 @@ unset initdir
 # results in cryptsetup not being able to unlock the LVM PV.
 # Probably a bug in cryptsetup, but...
 ./dracut -l -i "$targetfs" /source \
-    -m "dash kernel-modules test crypt lvm udev-rules base rootfs-block" \
+    -m "dash kernel-modules test crypt lvm mdraid udev-rules base rootfs-block" \
     -d "ata_piix ext2 sd_mod" \
     -f test/initramfs.makeroot