#!/bin/bash
# FIXME: hard-coded module list of doom.
-instmods =ata =block sd_mod =fs
+[[ $drivers ]] || drivers="=block sd_mod =fs"
+instmods $drivers
[ -f /etc/modprobe.conf ] && dracut_install /etc/modprobe.conf
dracut_install $(find /etc/modprobe.d/ -type f -name '*.conf')
--- /dev/null
+#!/bin/bash
+[[ $1 = -d ]] && echo udev-rules kernel-modules
+exit 0
\ No newline at end of file
#!/bin/bash
-dracut_install mount mknod mkdir modprobe pidof sleep chroot echo sed ls flock
+dracut_install mount mknod mkdir modprobe pidof sleep chroot sed ls flock
if [ ! -e "${initdir}/bin/sh" ]; then
dracut_install bash
(ln -s bash "${initdir}/bin/sh" || :)
inst "$moddir/switch_root" "/sbin/switch_root"
inst "$moddir/dracut-lib" "/lib/dracut-lib"
inst_hook pre-pivot 50 "$moddir/selinux-loadpolicy.sh"
-# Install any drivers specified from .conf or --drivers
-instmods ${drivers}
+++ /dev/null
-#!/bin/sh
-cp -a -t "$NEWROOT" /source/*
#!/bin/sh
+# don't let udev and this script step on eachother's toes
+for x in 63-luks.rules 64-lvm.rules 70-mdadm.rules 99-mount-rules; do
+ > "/etc/udev/rules.d/$x"
+done
+udevadm control --reload-rules
+# save a partition at the beginning for future flagging purposes
sfdisk -C 640 -H 2 -S 32 -L /dev/sda <<EOF
+,1
,213
,213
,213
-;
EOF
-mdadm --create /dev/md0 --run --auto=yes --level=5 --raid-devices=3 /dev/sda1 /dev/sda2 /dev/sda3
+mdadm --create /dev/md0 --run --auto=yes --level=5 --raid-devices=3 /dev/sda2 /dev/sda3 /dev/sda4
+# wait for the array to finish initailizing, otherwise this sometimes fails
+# randomly.
+mdadm -W /dev/md0
echo -n test >keyfile
cryptsetup -q luksFormat /dev/md0 /keyfile
echo "The passphrase is test"
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
-udevadm settle --timeout=4
+lvm vgchange -ay
[ -b /dev/dracut/root ] || emergency_shell
mke2fs /dev/dracut/root
+mkdir -p /sysroot
+mount /dev/dracut/root /sysroot
+cp -a -t /sysroot /source/*
+umount /sysroot
+lvm lvchange -a n /dev/dracut/root
+cryptsetup luksClose /dev/mapper/dracut_crypt_test
+poweroff -f
+++ /dev/null
-#!/bin/sh
-umount "$NEWROOT"
-lvm lvchange -a n /dev/dracut/root
-cryptsetup luksClose /dev/mapper/dracut_crypt_test
-poweroff -f
\ No newline at end of file
test_run() {
$testdir/run-qemu -hda root.ext2 -m 512M -nographic \
- -net nic,macaddr=52:54:00:12:34:57 -net socket,mcast=230.0.0.1:1234 \
- -kernel /boot/vmlinuz-$(uname -r) \
+ -net none -kernel /boot/vmlinuz-$(uname -r) \
-append "root=/dev/dracut/root rw console=ttyS0,115200n81" \
-initrd initramfs.testing
}
initdir=overlay
. $basedir/dracut-functions
dracut_install sfdisk mke2fs poweroff cp umount
- inst_simple ./halt.sh /pre-pivot/02halt.sh
- inst_simple ./copy-root.sh /mount/01copy-root.sh
inst_simple ./create-root.sh /pre-mount/01create-root.sh
)