]> git.ipfire.org Git - thirdparty/dracut.git/blame - test/TEST-12-RAID-DEG/create-root.sh
fix: always use mkdir -p
[thirdparty/dracut.git] / test / TEST-12-RAID-DEG / create-root.sh
CommitLineData
6281504d
HH
1#!/bin/sh
2# don't let udev and this script step on eachother's toes
0ddc098e
HH
3
4trap 'poweroff -f' EXIT
5
44f1ab82 6for x in 64-lvm.rules 70-mdadm.rules 99-mount-rules; do
6281504d
HH
7 > "/etc/udev/rules.d/$x"
8done
32bd2fbb 9rm -f -- /etc/lvm/lvm.conf
43cc4d84 10udevadm control --reload
fac3e9d9
HH
11udevadm settle
12sleep 1
0ddc098e 13mdadm --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.
16mdadm -W /dev/md0
5899f2f5 17printf test >keyfile
6281504d
HH
18cryptsetup -q luksFormat /dev/md0 /keyfile
19echo "The passphrase is test"
0ddc098e
HH
20set -e
21cryptsetup luksOpen /dev/md0 dracut_crypt_test </keyfile
22lvm pvcreate -ff -y /dev/mapper/dracut_crypt_test
fc6f458c 23lvm vgcreate dracut /dev/mapper/dracut_crypt_test
0ddc098e
HH
24lvm lvcreate -l 100%FREE -n root dracut
25lvm vgchange -ay
26mke2fs -L root /dev/dracut/root
27mkdir -p /sysroot
28mount /dev/dracut/root /sysroot
29cp -a -t /sysroot /source/*
9cf7b1c5 30mkdir -p /sysroot/run
0ddc098e 31umount /sysroot
fc6f458c 32lvm lvchange -a n /dev/dracut/root
513d26f7 33udevadm settle
0ddc098e 34cryptsetup luksClose /dev/mapper/dracut_crypt_test
513d26f7 35udevadm settle
0ddc098e 36mdadm -W /dev/md0 || :
fc6f458c 37udevadm settle
021b2fdd 38mdadm --detail --export /dev/md0 |grep -F MD_UUID > /tmp/mduuid
0ddc098e 39. /tmp/mduuid
fc6f458c 40udevadm settle
6d58fa27 41eval $(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