]> git.ipfire.org Git - thirdparty/dracut.git/blame - test/TEST-10-RAID/test.sh
testsuite fixup
[thirdparty/dracut.git] / test / TEST-10-RAID / test.sh
CommitLineData
c9f0e1f9 1#!/bin/bash
4a4c8823 2TEST_DESCRIPTION="root filesystem on an encrypted LVM PV on a RAID-5"
c00f04f5 3
58c13eeb
DD
4KVERSION=${KVERSION-$(uname -r)}
5
65bedc83 6# Uncomment this to debug failures
650ab3b0 7#DEBUGFAIL="rd.shell rd.udev.log-priority=debug loglevel=70 systemd.log_target=kmsg"
3e4ab73c 8#DEBUGFAIL="rd.debug rd.break=pre-mount rd.shell"
c00f04f5 9test_run() {
cf522919 10 DISKIMAGE=$TESTDIR/TEST-10-RAID-root.img
0be1785a
HH
11 $testdir/run-qemu \
12 -hda $DISKIMAGE \
13 -m 256M -nographic \
58c13eeb 14 -net none -kernel /boot/vmlinuz-$KVERSION \
e0641277 15 -append "root=/dev/dracut/root rd.auto rw rd.retry=10 console=ttyS0,115200n81 selinux=0 $DEBUGFAIL" \
0be1785a 16 -initrd $TESTDIR/initramfs.testing
ceaf49d7 17 grep -m 1 -q dracut-root-block-success $DISKIMAGE || return 1
c00f04f5
HH
18}
19
20test_setup() {
cf522919 21 DISKIMAGE=$TESTDIR/TEST-10-RAID-root.img
33310321 22 # Create the blank file to use as a root filesystem
0be1785a 23 rm -f $DISKIMAGE
ceaf49d7 24 dd if=/dev/null of=$DISKIMAGE bs=1M seek=40
c00f04f5 25
58c13eeb 26 kernel=$KVERSION
33310321 27 # Create what will eventually be our root filesystem onto an overlay
c00f04f5 28 (
27fa6044 29 export initdir=$TESTDIR/overlay/source
96d22bd7 30 (mkdir -p "$initdir"; cd "$initdir"; mkdir -p dev sys proc etc var/run tmp run)
552ecca6 31 . $basedir/dracut-functions.sh
c00f04f5 32 dracut_install sh df free ls shutdown poweroff stty cat ps ln ip route \
96d22bd7
HH
33 mount dmesg ifconfig dhclient mkdir cp ping dhclient
34 for _terminfodir in /lib/terminfo /etc/terminfo /usr/share/terminfo; do
35 [ -f ${_terminfodir}/l/linux ] && break
36 done
37 dracut_install -o ${_terminfodir}/l/linux
552ecca6 38 inst ./test-init.sh /sbin/init
f0558da5
HH
39 inst "$basedir/modules.d/40network/dhclient-script.sh" "/sbin/dhclient-script"
40 inst "$basedir/modules.d/40network/ifup.sh" "/sbin/ifup"
c00f04f5 41 dracut_install grep
83691c41 42 dracut_install -o /lib/systemd/systemd-shutdown
c00f04f5 43 find_binary plymouth >/dev/null && dracut_install plymouth
8a080127
PS
44 cp -a /etc/ld.so.conf* $initdir/etc
45 sudo ldconfig -r "$initdir"
c00f04f5 46 )
3b403b32 47
fe9143d9
VL
48 # second, install the files needed to make the root filesystem
49 (
27fa6044 50 export initdir=$TESTDIR/overlay
552ecca6 51 . $basedir/dracut-functions.sh
3b403b32 52 dracut_install sfdisk mke2fs poweroff cp umount
0b53ca70 53 inst_hook initqueue 01 ./create-root.sh
356333b3 54 inst_hook initqueue/finished 01 ./finished-false.sh
778d2ba2 55 inst_simple ./99-idesymlinks.rules /etc/udev/rules.d/99-idesymlinks.rules
fe9143d9 56 )
3b403b32 57
c00f04f5 58 # create an initramfs that will create the target root filesystem.
33310321
VL
59 # We do it this way so that we do not risk trashing the host mdraid
60 # devices, volume groups, encrypted partitions, etc.
552ecca6 61 $basedir/dracut.sh -l -i $TESTDIR/overlay / \
e2dbd86f 62 -m "dash crypt lvm mdraid udev-rules base rootfs-block kernel-modules" \
778d2ba2 63 -d "piix ide-gd_mod ata_piix ext2 sd_mod" \
2f02ae9d 64 --nomdadmconf \
0be1785a
HH
65 -f $TESTDIR/initramfs.makeroot $KVERSION || return 1
66 rm -rf $TESTDIR/overlay
c00f04f5 67 # Invoke KVM and/or QEMU to actually create the target filesystem.
0be1785a
HH
68 $testdir/run-qemu \
69 -hda $DISKIMAGE \
70 -m 256M -nographic -net none \
c00f04f5 71 -kernel "/boot/vmlinuz-$kernel" \
3e4ab73c 72 -append "root=/dev/cannotreach rw rootfstype=ext2 console=ttyS0,115200n81 selinux=0" \
0be1785a 73 -initrd $TESTDIR/initramfs.makeroot || return 1
ceaf49d7 74 grep -m 1 -q dracut-root-block-created $DISKIMAGE || return 1
3f7e5358 75 eval $(grep -a -m 1 ID_FS_UUID $DISKIMAGE)
0be1785a 76
1a0c05b8 77 (
27fa6044 78 export initdir=$TESTDIR/overlay
552ecca6 79 . $basedir/dracut-functions.sh
1a0c05b8 80 dracut_install poweroff shutdown
0b53ca70 81 inst_hook emergency 000 ./hard-off.sh
552ecca6 82 inst ./cryptroot-ask.sh /sbin/cryptroot-ask
3f7e5358
HH
83 mkdir -p $initdir/etc
84 echo "luks-$ID_FS_UUID /dev/md0 /etc/key" > $initdir/etc/crypttab
3e4ab73c 85 #echo "luks-$ID_FS_UUID /dev/md0 none" > $initdir/etc/crypttab
3f7e5358 86 echo -n "test" > $initdir/etc/key
778d2ba2 87 inst_simple ./99-idesymlinks.rules /etc/udev/rules.d/99-idesymlinks.rules
1a0c05b8 88 )
3f7e5358 89
552ecca6 90 sudo $basedir/dracut.sh -l -i $TESTDIR/overlay / \
9c111e59 91 -o "plymouth network" \
5db73403 92 -a "debug" \
778d2ba2 93 -d "piix ide-gd_mod ata_piix ext2 sd_mod" \
0be1785a 94 -f $TESTDIR/initramfs.testing $KVERSION || return 1
c00f04f5
HH
95}
96
97test_cleanup() {
0be1785a 98 return 0
c00f04f5
HH
99}
100
fe9143d9 101. $testdir/test-functions