]>
Commit | Line | Data |
---|---|---|
6281504d HH |
1 | #!/bin/sh |
2 | # don't let udev and this script step on eachother's toes | |
0ddc098e HH |
3 | |
4 | trap 'poweroff -f' EXIT | |
5 | ||
44f1ab82 | 6 | for x in 64-lvm.rules 70-mdadm.rules 99-mount-rules; do |
6281504d HH |
7 | > "/etc/udev/rules.d/$x" |
8 | done | |
32bd2fbb | 9 | rm -f -- /etc/lvm/lvm.conf |
43cc4d84 | 10 | udevadm control --reload |
fac3e9d9 HH |
11 | udevadm settle |
12 | sleep 1 | |
0ddc098e | 13 | mdadm --create /dev/md0 --run --auto=yes --level=5 --raid-devices=3 /dev/sdb /dev/sdc /dev/sdd |
6281504d HH |
14 | # wait for the array to finish initailizing, otherwise this sometimes fails |
15 | # randomly. | |
16 | mdadm -W /dev/md0 | |
5899f2f5 | 17 | printf test >keyfile |
6281504d HH |
18 | cryptsetup -q luksFormat /dev/md0 /keyfile |
19 | echo "The passphrase is test" | |
0ddc098e HH |
20 | set -e |
21 | cryptsetup luksOpen /dev/md0 dracut_crypt_test </keyfile | |
22 | lvm pvcreate -ff -y /dev/mapper/dracut_crypt_test | |
fc6f458c | 23 | lvm vgcreate dracut /dev/mapper/dracut_crypt_test |
0ddc098e HH |
24 | lvm lvcreate -l 100%FREE -n root dracut |
25 | lvm vgchange -ay | |
26 | mke2fs -L root /dev/dracut/root | |
27 | mkdir -p /sysroot | |
28 | mount /dev/dracut/root /sysroot | |
29 | cp -a -t /sysroot /source/* | |
9cf7b1c5 | 30 | mkdir -p /sysroot/run |
0ddc098e | 31 | umount /sysroot |
fc6f458c | 32 | lvm lvchange -a n /dev/dracut/root |
513d26f7 | 33 | udevadm settle |
0ddc098e | 34 | cryptsetup luksClose /dev/mapper/dracut_crypt_test |
513d26f7 | 35 | udevadm settle |
0ddc098e | 36 | mdadm -W /dev/md0 || : |
fc6f458c | 37 | udevadm settle |
021b2fdd | 38 | mdadm --detail --export /dev/md0 |grep -F MD_UUID > /tmp/mduuid |
0ddc098e | 39 | . /tmp/mduuid |
fc6f458c | 40 | udevadm settle |
6d58fa27 | 41 | eval $(udevadm info --query=env --name=/dev/md0|while read line || [ -n "$line" ]; do [ "$line" != "${line#*ID_FS_UUID*}" ] && echo $line; done;) |
d5088b17 | 42 | { echo "dracut-root-block-created"; echo MD_UUID=$MD_UUID; echo "ID_FS_UUID=$ID_FS_UUID";} | dd oflag=direct,dsync of=/dev/sda |