mirror of
https://github.com/dracutdevs/dracut.git
synced 2024-10-27 17:55:47 +03:00
Create test image on an md array and improve cryptroot handling
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.
This commit is contained in:
parent
7f6643f9d9
commit
4957ab92f2
1
Makefile
1
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
|
||||
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
||||
|
@ -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"
|
||||
|
@ -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
|
||||
|
||||
|
@ -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
|
||||
|
@ -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"
|
||||
|
@ -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"
|
||||
|
||||
|
@ -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
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user