--- /dev/null
+#!/bin/sh
+# don't let udev and this script step on eachother's toes
+for x in 64-lvm.rules 70-mdadm.rules 99-mount-rules; do
+ > "/etc/udev/rules.d/$x"
+done
+rm -f -- /etc/lvm/lvm.conf
+udevadm control --reload
+set -e
+# save a partition at the beginning for future flagging purposes
+sfdisk /dev/sda <<EOF
+,1M
+,
+EOF
+
+udevadm settle
+mkfs.ext3 -L dracut /dev/sda2
+mkdir -p /root
+mount /dev/sda2 /root
+cp -a -t /root /source/*
+mkdir -p /root/run
+umount /root
+echo "dracut-root-block-created" | dd oflag=direct,dsync of=/dev/sda1
+sync
+poweroff -f
+
# Start server first
echo "NFS TEST SETUP: Starting DHCP/NFS server"
- fsck -a $TESTDIR/server.ext3 || return 1
$testdir/run-qemu \
-drive format=raw,index=0,media=disk,file=$TESTDIR/server.ext3 \
-net socket,listen=127.0.0.1:12320 \
${SERIAL:+-serial "$SERIAL"} \
${SERIAL:--serial file:"$TESTDIR"/server.log} \
-watchdog i6300esb -watchdog-action poweroff \
- -append "panic=1 quiet root=/dev/sda rootfstype=ext3 rw console=ttyS0,115200n81 selinux=0" \
+ -append "panic=1 quiet root=LABEL=dracut rootfstype=ext3 rw console=ttyS0,115200n81 selinux=0" \
-initrd $TESTDIR/initramfs.server \
-pidfile $TESTDIR/server.pid -daemonize || return 1
chmod 644 $TESTDIR/server.pid || return 1
test_setup() {
# Make server root
dd if=/dev/zero of=$TESTDIR/server.ext3 bs=1M count=120
- mke2fs -j -F $TESTDIR/server.ext3
- mkdir $TESTDIR/mnt
- mount -o loop $TESTDIR/server.ext3 $TESTDIR/mnt
-
export kernel=$KVERSION
export srcmods="/lib/modules/$kernel/"
# Detect lib paths
(
- export initdir=$TESTDIR/mnt
+ mkdir -p $TESTDIR/server/overlay/source
+ export initdir=$TESTDIR/server/overlay/source
. $basedir/dracut-init.sh
for _f in modules.builtin.bin modules.builtin; do
cp -a /etc/ld.so.conf* $initdir/etc
ldconfig -r "$initdir"
dracut_kernel_post
+
)
# Make client root inside server root
(
- export initdir=$TESTDIR/mnt/nfs/client
+ export initdir=$TESTDIR/server/overlay/source/nfs/client
. $basedir/dracut-init.sh
inst_multiple sh shutdown poweroff stty cat ps ln ip dd \
ldconfig -r "$initdir"
)
- mkdir -p $TESTDIR/mnt/nfs/nfs3-5
- mkdir -p $TESTDIR/mnt/nfs/ip/192.168.50.101
- mkdir -p $TESTDIR/mnt/nfs/tftpboot/nfs4-5
+ # second, install the files needed to make the root filesystem
+ (
+ export initdir=$TESTDIR/server/overlay
+ . $basedir/dracut-init.sh
+ inst_multiple sfdisk mkfs.ext3 poweroff cp umount sync dd
+ inst_hook initqueue 01 ./create-root.sh
+ inst_hook initqueue/finished 01 ./finished-false.sh
+ inst_simple ./99-idesymlinks.rules /etc/udev/rules.d/99-idesymlinks.rules
+ )
+
+ # create an initramfs that will create the target root filesystem.
+ # We do it this way so that we do not risk trashing the host mdraid
+ # devices, volume groups, encrypted partitions, etc.
+ $basedir/dracut.sh -l -i $TESTDIR/server/overlay / \
+ -m "dash udev-rules base rootfs-block fs-lib kernel-modules fs-lib qemu" \
+ -d "piix ide-gd_mod ata_piix ext3 sd_mod" \
+ --nomdadmconf \
+ --no-hostonly-cmdline -N \
+ -f $TESTDIR/initramfs.makeroot $KVERSION || return 1
+ rm -rf -- $TESTDIR/server
+ # Invoke KVM and/or QEMU to actually create the target filesystem.
+
+ $testdir/run-qemu \
+ -drive format=raw,index=0,media=disk,file=$TESTDIR/server.ext3 \
+ -append "root=/dev/dracut/root rw rootfstype=ext3 quiet console=ttyS0,115200n81 selinux=0" \
+ -initrd $TESTDIR/initramfs.makeroot || return 1
+ grep -F -m 1 -q dracut-root-block-created $TESTDIR/server.ext3 || return 1
+
- umount $TESTDIR/mnt
- rm -fr -- $TESTDIR/mnt
# Make an overlay with needed tools for the test harness
(
--- /dev/null
+#!/bin/sh
+# don't let udev and this script step on eachother's toes
+for x in 64-lvm.rules 70-mdadm.rules 99-mount-rules; do
+ > "/etc/udev/rules.d/$x"
+done
+rm -f -- /etc/lvm/lvm.conf
+udevadm control --reload
+set -e
+# save a partition at the beginning for future flagging purposes
+sfdisk /dev/sda <<EOF
+,1M
+,
+EOF
+
+udevadm settle
+mkfs.ext3 -L dracut /dev/sda2
+mkdir -p /root
+mount /dev/sda2 /root
+cp -a -t /root /source/*
+mkdir -p /root/run
+umount /root
+echo "dracut-root-block-created" | dd oflag=direct,dsync of=/dev/sda1
+sync
+poweroff -f
+
-net nic,macaddr=52:54:00:12:34:56,model=e1000 \
-net nic,macaddr=52:54:00:12:34:57,model=e1000 \
-net socket,listen=127.0.0.1:12330 \
- -append "panic=1 quiet root=/dev/sda rootfstype=ext3 rw console=ttyS0,115200n81 selinux=0 $SERVER_DEBUG" \
+ -append "panic=1 quiet root=/dev/sda2 rootfstype=ext3 rw console=ttyS0,115200n81 selinux=0 $SERVER_DEBUG" \
-initrd $TESTDIR/initramfs.server \
-pidfile $TESTDIR/server.pid -daemonize || return 1
chmod 644 $TESTDIR/server.pid || return 1
export initdir=$TESTDIR/overlay
. $basedir/dracut-init.sh
inst_multiple sfdisk mkfs.ext3 poweroff cp umount setsid dd
- inst_hook initqueue 01 ./create-root.sh
+ inst_hook initqueue 01 ./create-client-root.sh
inst_hook initqueue/finished 01 ./finished-false.sh
inst_simple ./99-idesymlinks.rules /etc/udev/rules.d/99-idesymlinks.rules
)
-f $TESTDIR/initramfs.makeroot $KVERSION || return 1
rm -rf -- $TESTDIR/overlay
-
# Need this so kvm-qemu will boot (needs non-/dev/zero local disk)
if ! dd if=/dev/zero of=$TESTDIR/client.img bs=1M count=1; then
echo "Unable to make client sdb image" 1>&2
-initrd $TESTDIR/initramfs.makeroot || return 1
grep -F -m 1 -q dracut-root-block-created $TESTDIR/client.img || return 1
rm -- $TESTDIR/client.img
+ rm -rf -- $TESTDIR/overlay
+
# Make server root
- dd if=/dev/zero of=$TESTDIR/server.ext3 bs=1M count=60
- mkfs.ext3 -j -F $TESTDIR/server.ext3
- mkdir $TESTDIR/mnt
- mount -o loop $TESTDIR/server.ext3 $TESTDIR/mnt
+ dd if=/dev/zero of=$TESTDIR/server.ext3 bs=1M count=120
kernel=$KVERSION
rm -rf -- $TESTDIR/overlay
(
- export initdir=$TESTDIR/mnt
+ mkdir -p $TESTDIR/overlay/source
+ export initdir=$TESTDIR/overlay/source
. $basedir/dracut-init.sh
(
cd "$initdir";
dracut_kernel_post
)
- umount $TESTDIR/mnt
- rm -fr -- $TESTDIR/mnt
+ # second, install the files needed to make the root filesystem
+ (
+ export initdir=$TESTDIR/overlay
+ . $basedir/dracut-init.sh
+ inst_multiple sfdisk mkfs.ext3 poweroff cp umount sync dd
+ inst_hook initqueue 01 ./create-server-root.sh
+ inst_hook initqueue/finished 01 ./finished-false.sh
+ inst_simple ./99-idesymlinks.rules /etc/udev/rules.d/99-idesymlinks.rules
+ )
- # Make server's dracut image
+ # create an initramfs that will create the target root filesystem.
+ # We do it this way so that we do not risk trashing the host mdraid
+ # devices, volume groups, encrypted partitions, etc.
$basedir/dracut.sh -l -i $TESTDIR/overlay / \
- -a "dash udev-rules base rootfs-block fs-lib debug kernel-modules" \
- -d "af_packet piix ide-gd_mod ata_piix ext3 sd_mod e1000 drbg" \
+ -m "dash udev-rules base rootfs-block fs-lib kernel-modules fs-lib qemu" \
+ -d "piix ide-gd_mod ata_piix ext3 sd_mod" \
+ --nomdadmconf \
--no-hostonly-cmdline -N \
- -f $TESTDIR/initramfs.server $KVERSION || return 1
- rm -rf -- $TESTDIR/overlay
+ -f $TESTDIR/initramfs.makeroot $KVERSION || return 1
- # Make client dracut image
+ # Invoke KVM and/or QEMU to actually create the target filesystem.
+ $testdir/run-qemu \
+ -drive format=raw,index=0,media=disk,file=$TESTDIR/server.ext3 \
+ -append "root=/dev/dracut/root rw rootfstype=ext3 quiet console=ttyS0,115200n81 selinux=0" \
+ -initrd $TESTDIR/initramfs.makeroot || return 1
+ grep -F -m 1 -q dracut-root-block-created $TESTDIR/server.ext3 || return 1
rm -rf -- $TESTDIR/overlay
+
+ # Make an overlay with needed tools for the test harness
(
export initdir=$TESTDIR/overlay
. $basedir/dracut-init.sh
inst_hook shutdown-emergency 000 ./hard-off.sh
inst_hook emergency 000 ./hard-off.sh
inst_simple ./99-idesymlinks.rules /etc/udev/rules.d/99-idesymlinks.rules
+ inst_simple ./99-default.link /etc/systemd/network/99-default.link
)
+
+ # Make server's dracut image
+ $basedir/dracut.sh -l -i $TESTDIR/overlay / \
+ -a "dash udev-rules base rootfs-block fs-lib debug kernel-modules" \
+ -d "af_packet piix ide-gd_mod ata_piix ext3 sd_mod e1000 drbg" \
+ --no-hostonly-cmdline -N \
+ -f $TESTDIR/initramfs.server $KVERSION || return 1
+
+ # Make client dracut image
$basedir/dracut.sh -l -i $TESTDIR/overlay / \
-o "dash plymouth dmraid nfs ${OMIT_NETWORK}" \
-a "debug ${USE_NETWORK}" \
--- /dev/null
+#!/bin/sh
+# don't let udev and this script step on eachother's toes
+for x in 64-lvm.rules 70-mdadm.rules 99-mount-rules; do
+ > "/etc/udev/rules.d/$x"
+done
+rm -f -- /etc/lvm/lvm.conf
+udevadm control --reload
+set -e
+# save a partition at the beginning for future flagging purposes
+sfdisk /dev/sda <<EOF
+,1M
+,
+EOF
+
+udevadm settle
+mkfs.ext3 -L dracut /dev/sda2
+mkdir -p /root
+mount /dev/sda2 /root
+cp -a -t /root /source/*
+mkdir -p /root/run
+umount /root
+echo "dracut-root-block-created" | dd oflag=direct,dsync of=/dev/sda1
+sync
+poweroff -f
+
-net nic,macaddr=52:54:00:12:34:56,model=e1000 \
-net nic,macaddr=52:54:00:12:34:57,model=e1000 \
-net socket,listen=127.0.0.1:12331 \
- -append "panic=1 systemd.crash_reboot root=/dev/sda rootfstype=ext3 rw console=ttyS0,115200n81 selinux=0 $SERVER_DEBUG" \
+ -append "panic=1 systemd.crash_reboot root=/dev/sda2 rootfstype=ext3 rw console=ttyS0,115200n81 selinux=0 $SERVER_DEBUG" \
-initrd $TESTDIR/initramfs.server \
-pidfile $TESTDIR/server.pid -daemonize || return 1
chmod 644 $TESTDIR/server.pid || return 1
export initdir=$TESTDIR/overlay
. $basedir/dracut-init.sh
inst_multiple sfdisk mkfs.ext3 poweroff cp umount setsid dd
- inst_hook initqueue 01 ./create-root.sh
+ inst_hook initqueue 01 ./create-client-root.sh
inst_hook initqueue/finished 01 ./finished-false.sh
inst_simple ./99-idesymlinks.rules /etc/udev/rules.d/99-idesymlinks.rules
)
rm -- $TESTDIR/client.img
# Make server root
+ echo "MAKE SERVER ROOT"
+
dd if=/dev/zero of=$TESTDIR/server.ext3 bs=1M count=60
- mkfs.ext3 -j -F $TESTDIR/server.ext3
- mkdir $TESTDIR/mnt
- mount -o loop $TESTDIR/server.ext3 $TESTDIR/mnt
kernel=$KVERSION
rm -rf -- $TESTDIR/overlay
(
- export initdir=$TESTDIR/mnt
+ mkdir -p $TESTDIR/overlay/source
+ export initdir=$TESTDIR/overlay/source
. $basedir/dracut-init.sh
(
cd "$initdir";
ldconfig -r "$initdir"
dracut_kernel_post
)
+ # second, install the files needed to make the root filesystem
+ (
+ export initdir=$TESTDIR/overlay
+ . $basedir/dracut-init.sh
+ inst_multiple sfdisk mkfs.ext3 poweroff cp umount sync dd
+ inst_hook initqueue 01 ./create-server-root.sh
+ inst_hook initqueue/finished 01 ./finished-false.sh
+ inst_simple ./99-idesymlinks.rules /etc/udev/rules.d/99-idesymlinks.rules
+ )
- umount $TESTDIR/mnt
- rm -fr -- $TESTDIR/mnt
-
- # Make server's dracut image
+ # create an initramfs that will create the target root filesystem.
+ # We do it this way so that we do not risk trashing the host mdraid
+ # devices, volume groups, encrypted partitions, etc.
$basedir/dracut.sh -l -i $TESTDIR/overlay / \
- -a "dash udev-rules base rootfs-block fs-lib debug kernel-modules" \
- -d "af_packet piix ide-gd_mod ata_piix ext3 sd_mod e1000 drbg" \
+ -m "dash udev-rules base rootfs-block fs-lib kernel-modules fs-lib qemu" \
+ -d "piix ide-gd_mod ata_piix ext3 sd_mod" \
+ --nomdadmconf \
--no-hostonly-cmdline -N \
- -f $TESTDIR/initramfs.server $KVERSION || return 1
-
+ -f $TESTDIR/initramfs.makeroot $KVERSION || return 1
- # Make client dracut image
+ # Invoke KVM and/or QEMU to actually create the target filesystem.
+ $testdir/run-qemu \
+ -drive format=raw,index=0,media=disk,file=$TESTDIR/server.ext3 \
+ -append "root=/dev/dracut/root rw rootfstype=ext3 quiet console=ttyS0,115200n81 selinux=0" \
+ -initrd $TESTDIR/initramfs.makeroot || return 1
+ grep -F -m 1 -q dracut-root-block-created $TESTDIR/server.ext3 || return 1
rm -rf -- $TESTDIR/overlay
+
+ # Make an overlay with needed tools for the test harness
(
export initdir=$TESTDIR/overlay
. $basedir/dracut-init.sh
inst_hook emergency 000 ./hard-off.sh
inst_simple ./99-idesymlinks.rules /etc/udev/rules.d/99-idesymlinks.rules
)
+
+ # Make server's dracut image
+ $basedir/dracut.sh -l -i $TESTDIR/overlay / \
+ -a "dash udev-rules base rootfs-block fs-lib debug kernel-modules" \
+ -d "af_packet piix ide-gd_mod ata_piix ext3 sd_mod e1000 drbg" \
+ --no-hostonly-cmdline -N \
+ -f $TESTDIR/initramfs.server $KVERSION || return 1
+
+ # Make client's dracut image
$basedir/dracut.sh -l -i $TESTDIR/overlay / \
-o "dash plymouth dmraid nfs ${OMIT_NETWORK}" \
-a "debug ${USE_NETWORK}" \
--- /dev/null
+#!/bin/sh
+# don't let udev and this script step on eachother's toes
+for x in 64-lvm.rules 70-mdadm.rules 99-mount-rules; do
+ > "/etc/udev/rules.d/$x"
+done
+rm -f -- /etc/lvm/lvm.conf
+udevadm control --reload
+set -e
+
+udevadm settle
+mkfs.ext3 -L dracut /dev/sda
+mkdir -p /root
+mount /dev/sda /root
+cp -a -t /root /source/*
+mkdir -p /root/run
+umount /root
+{ echo "dracut-root-block-created"; echo "ID_FS_UUID=$ID_FS_UUID"; } | dd oflag=direct,dsync of=/dev/sdb
+sync
+poweroff -f
rm -f -- /etc/lvm/lvm.conf
udevadm control --reload
printf test >keyfile
-cryptsetup -q luksFormat /dev/sdb /keyfile
+cryptsetup -q luksFormat /dev/sda /keyfile
echo "The passphrase is test"
-cryptsetup luksOpen /dev/sdb dracut_crypt_test </keyfile && \
+cryptsetup luksOpen /dev/sda 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 && \
lvm vgchange -ay && \
-mke2fs -L dracut -j /dev/dracut/root && \
-/sbin/tune2fs -e continue /dev/dracut/root && \
+mkfs.ext3 -L dracut -j /dev/dracut/root && \
mkdir -p /sysroot && \
mount /dev/dracut/root /sysroot && \
cp -a -t /sysroot /source/* && \
cryptsetup luksClose /dev/mapper/dracut_crypt_test
udevadm settle
sleep 1
-eval $(udevadm info --query=env --name=/dev/sdb|while read line || [ -n "$line" ]; do [ "$line" != "${line#*ID_FS_UUID*}" ] && echo $line; done;)
-{ echo "dracut-root-block-created"; echo "ID_FS_UUID=$ID_FS_UUID"; } | dd oflag=direct,dsync of=/dev/sda
+eval $(udevadm info --query=env --name=/dev/sda|while read line || [ -n "$line" ]; do [ "$line" != "${line#*ID_FS_UUID*}" ] && echo $line; done;)
+{ echo "dracut-root-block-created"; echo "ID_FS_UUID=$ID_FS_UUID"; } | dd oflag=direct,dsync of=/dev/sdb
poweroff -f
--- /dev/null
+#!/bin/sh
+# don't let udev and this script step on eachother's toes
+for x in 64-lvm.rules 70-mdadm.rules 99-mount-rules; do
+ > "/etc/udev/rules.d/$x"
+done
+rm -f -- /etc/lvm/lvm.conf
+udevadm control --reload
+set -e
+
+udevadm settle
+mkfs.ext3 -L dracut /dev/sda
+mkdir -p /root
+mount /dev/sda /root
+cp -a -t /root /source/*
+mkdir -p /root/run
+umount /root
+{ echo "dracut-root-block-created"; echo "ID_FS_UUID=$ID_FS_UUID"; } | dd oflag=direct,dsync of=/dev/sdb
+sync
+poweroff -f
echo "NBD TEST SETUP: Starting DHCP/NBD server"
$testdir/run-qemu \
- -drive format=raw,index=0,media=disk,file=$TESTDIR/server.ext2 \
- -drive format=raw,index=1,media=disk,file=$TESTDIR/nbd.ext2 \
- -drive format=raw,index=2,media=disk,file=$TESTDIR/encrypted.ext2 \
+ -drive format=raw,index=0,media=disk,file=$TESTDIR/server.ext3 \
+ -drive format=raw,index=1,media=disk,file=$TESTDIR/nbd.ext3 \
+ -drive format=raw,index=2,media=disk,file=$TESTDIR/encrypted.ext3 \
-net nic,macaddr=52:54:00:12:34:56,model=e1000 \
-net socket,listen=127.0.0.1:12340 \
${SERIAL:+-serial "$SERIAL"} \
${SERIAL:--serial file:"$TESTDIR"/server.log} \
- -append "panic=1 systemd.crash_reboot root=/dev/sda rootfstype=ext2 rw quiet console=ttyS0,115200n81 selinux=0" \
+ -append "panic=1 systemd.crash_reboot root=/dev/sda rootfstype=ext3 rw quiet console=ttyS0,115200n81 selinux=0" \
-initrd $TESTDIR/initramfs.server -pidfile $TESTDIR/server.pid -daemonize || return 1
chmod 644 $TESTDIR/server.pid || return 1
echo "Waiting for the server to startup"
while : ; do
grep Serving "$TESTDIR"/server.log && break
+ tail "$TESTDIR"/server.log
sleep 1
done
else
# Clear out the flags for each test
if ! dd if=/dev/zero of=$TESTDIR/flag.img bs=1M count=1; then
- echo "Unable to make client sda image" 1>&2
+ echo "Unable to make client flag image" 1>&2
return 1
fi
ext3 errors=panic || return 1
client_test "NBD root=nbd:IP:port:fstype" 52:54:00:12:34:00 \
- "root=nbd:192.168.50.1:raw:ext2 rd.luks=0" ext2 || return 1
+ "root=nbd:192.168.50.1:raw:ext3 rd.luks=0" ext3 || return 1
client_test "NBD root=nbd:IP:port:fstype:fsopts" 52:54:00:12:34:00 \
- "root=nbd:192.168.50.1:raw:ext2:errors=panic rd.luks=0" \
- ext2 errors=panic || return 1
-
- client_test "NBD Bridge root=nbd:IP:port:fstype:fsopts" 52:54:00:12:34:00 \
- "root=nbd:192.168.50.1:raw:ext2:errors=panic bridge rd.luks=0" \
- ext2 errors=panic || return 1
+ "root=nbd:192.168.50.1:raw:ext3:errors=panic rd.luks=0" \
+ ext3 errors=panic || return 1
#
# FIXME! These fail, but probably shouldn't
# "root=nbd:192.168.50.1:raw:::bs=2048 rd.luks=0" || return 1
#
# client_test "NBD root=nbd:IP:port:fstype::NBD opts" 52:54:00:12:34:00 \
-# "root=nbd:192.168.50.1:raw:ext2::bs=2048 rd.luks=0" ext2 || return 1
+# "root=nbd:192.168.50.1:raw:ext3::bs=2048 rd.luks=0" ext3 || return 1
#
# client_test "NBD root=nbd:IP:port:fstype:fsopts:NBD opts" \
# 52:54:00:12:34:00 \
-# "root=nbd:192.168.50.1:raw:ext2:errors=panic:bs=2048 rd.luks=0" \
-# ext2 errors=panic || return 1
+# "root=nbd:192.168.50.1:raw:ext3:errors=panic:bs=2048 rd.luks=0" \
+# ext3 errors=panic || return 1
# DHCP root-path parsing
-# client_test "NBD root=dhcp DHCP root-path nbd:srv:port" 52:54:00:12:34:01 \
-# "root=dhcp rd.luks=0" || return 1
+ client_test "NBD root=dhcp DHCP root-path nbd:srv:port" 52:54:00:12:34:01 \
+ "root=dhcp rd.luks=0" || return 1
-# client_test "NBD Bridge root=dhcp DHCP root-path nbd:srv:port" 52:54:00:12:34:01 \
-# "root=dhcp bridge rd.luks=0" || return 1
+ client_test "NBD root=dhcp DHCP root-path nbd:srv:port:fstype" \
+ 52:54:00:12:34:02 "root=dhcp rd.luks=0" ext3 || return 1
-# client_test "NBD root=dhcp DHCP root-path nbd:srv:port:fstype" \
-# 52:54:00:12:34:02 "root=dhcp rd.luks=0" ext2 || return 1
+ client_test "NBD root=dhcp DHCP root-path nbd:srv:port::fsopts" \
+ 52:54:00:12:34:03 "root=dhcp rd.luks=0" ext3 errors=panic || return 1
-# client_test "NBD root=dhcp DHCP root-path nbd:srv:port::fsopts" \
-# 52:54:00:12:34:03 "root=dhcp rd.luks=0" ext3 errors=panic || return 1
-
-# client_test "NBD root=dhcp DHCP root-path nbd:srv:port:fstype:fsopts" \
-# 52:54:00:12:34:04 "root=dhcp rd.luks=0" ext2 errors=panic || return 1
+ client_test "NBD root=dhcp DHCP root-path nbd:srv:port:fstype:fsopts" \
+ 52:54:00:12:34:04 "root=dhcp rd.luks=0" ext3 errors=panic || return 1
# netroot handling
-# client_test "NBD netroot=nbd:IP:port" 52:54:00:12:34:00 \
-# "netroot=nbd:192.168.50.1:raw rd.luks=0" || return 1
-#
-# client_test "NBD netroot=dhcp DHCP root-path nbd:srv:port:fstype:fsopts" \
-# 52:54:00:12:34:04 "netroot=dhcp rd.luks=0" ext2 errors=panic || return 1
+ client_test "NBD netroot=nbd:IP:port" 52:54:00:12:34:00 \
+ "netroot=nbd:192.168.50.1:raw rd.luks=0" || return 1
+
+ client_test "NBD netroot=dhcp DHCP root-path nbd:srv:port:fstype:fsopts" \
+ 52:54:00:12:34:04 "netroot=dhcp rd.luks=0" ext3 errors=panic || return 1
# Encrypted root handling via LVM/LUKS over NBD
-# . $TESTDIR/luks.uuid
-#
-# client_test "NBD root=LABEL=dracut netroot=nbd:IP:port" \
-# 52:54:00:12:34:00 \
-# "root=LABEL=dracut rd.luks.uuid=$ID_FS_UUID rd.lv.vg=dracut netroot=nbd:192.168.50.1:encrypted" || return 1
+ . $TESTDIR/luks.uuid
+
+ client_test "NBD root=LABEL=dracut netroot=nbd:IP:port" \
+ 52:54:00:12:34:00 \
+ "root=LABEL=dracut rd.luks.uuid=$ID_FS_UUID rd.lv.vg=dracut netroot=nbd:192.168.50.1:encrypted" || return 1
- # XXX This should be ext2,errors=panic but that doesn't currently
+ # XXX This should be ext3,errors=panic but that doesn't currently
# XXX work when you have a real root= line in addition to netroot=
# XXX How we should work here needs clarification
# client_test "NBD root=LABEL=dracut netroot=dhcp (w/ fstype and opts)" \
make_encrypted_root() {
# Create the blank file to use as a root filesystem
- dd if=/dev/zero of=$TESTDIR/encrypted.ext2 bs=1M count=80
+ dd if=/dev/zero of=$TESTDIR/encrypted.ext3 bs=1M count=80
dd if=/dev/zero of=$TESTDIR/flag.img bs=1M count=1
+ rm -fr "$TESTDIR"/overlay
kernel=$KVERSION
# Create what will eventually be our root filesystem onto an overlay
(
mkdir -p "$initdir"
(
cd "$initdir"
- mkdir -p dev sys proc etc var tmp run root usr/bin usr/lib usr/lib64 usr/sbin
+ mkdir -p -- dev sys proc etc var/run tmp
+ mkdir -p root usr/bin usr/lib usr/lib64 usr/sbin
for i in bin sbin lib lib64; do
ln -sfnr usr/$i $i
done
- ln -s ../run var/run
)
+
inst_multiple sh df free ls shutdown poweroff stty cat ps ln ip \
mount dmesg mkdir cp ping dd
for _terminfodir in /lib/terminfo /etc/terminfo /usr/share/terminfo; do
done
ln -s ../run var/run
)
- inst_multiple mke2fs poweroff cp umount tune2fs dd
+ inst_multiple mkfs.ext3 poweroff cp umount dd
inst_hook shutdown-emergency 000 ./hard-off.sh
inst_hook emergency 000 ./hard-off.sh
- inst_hook initqueue 01 ./create-root.sh
+ inst_hook initqueue 01 ./create-encrypted-root.sh
inst_hook initqueue/finished 01 ./finished-false.sh
inst_simple ./99-idesymlinks.rules /etc/udev/rules.d/99-idesymlinks.rules
)
# devices, volume groups, encrypted partitions, etc.
$basedir/dracut.sh -l -i $TESTDIR/overlay / \
-m "dash crypt lvm mdraid udev-rules base rootfs-block fs-lib kernel-modules qemu" \
- -d "piix ide-gd_mod ata_piix ext2 ext3 sd_mod" \
+ -d "piix ide-gd_mod ata_piix ext3 ext3 sd_mod" \
--no-hostonly-cmdline -N \
-f $TESTDIR/initramfs.makeroot $KVERSION || return 1
rm -rf -- $TESTDIR/overlay
# Invoke KVM and/or QEMU to actually create the target filesystem.
$testdir/run-qemu \
- -drive format=raw,index=0,media=disk,file=$TESTDIR/flag.img \
- -drive format=raw,index=1,media=disk,file=$TESTDIR/encrypted.ext2 \
+ -drive format=raw,index=0,media=disk,file=$TESTDIR/encrypted.ext3 \
+ -drive format=raw,index=1,media=disk,file=$TESTDIR/flag.img \
-append "root=/dev/fakeroot rw quiet console=ttyS0,115200n81 selinux=0" \
-initrd $TESTDIR/initramfs.makeroot || return 1
grep -F -m 1 -q dracut-root-block-created $TESTDIR/flag.img || return 1
}
make_client_root() {
- dd if=/dev/zero of=$TESTDIR/nbd.ext2 bs=1M count=120
- mke2fs -F -j $TESTDIR/nbd.ext2
- mkdir $TESTDIR/mnt
- if ! mount -o loop $TESTDIR/nbd.ext2 $TESTDIR/mnt; then
- echo "Cannot mount loop"
- return 1
- fi
+ dd if=/dev/zero of=$TESTDIR/nbd.ext3 bs=1M count=120
+ dd if=/dev/zero of=$TESTDIR/flag.img bs=1M count=1
+ rm -fr "$TESTDIR"/overlay
kernel=$KVERSION
(
- export initdir=$TESTDIR/mnt
- . $basedir/dracut-init.sh
+ mkdir -p $TESTDIR/overlay/source
+ export initdir=$TESTDIR/overlay/source
+ . "$basedir"/dracut-init.sh
mkdir -p "$initdir"
(
cd "$initdir"
- mkdir -p dev sys proc etc var tmp run root usr/bin usr/lib usr/lib64 usr/sbin
+ mkdir -p -- dev sys proc etc var/run tmp
+ mkdir -p root usr/bin usr/lib usr/lib64 usr/sbin
for i in bin sbin lib lib64; do
ln -sfnr usr/$i $i
done
- ln -s ../run var/run
)
inst_multiple sh ls shutdown poweroff stty cat ps ln ip \
dmesg mkdir cp ping dd
ldconfig -r "$initdir"
)
- umount $TESTDIR/mnt
- rm -fr -- $TESTDIR/mnt
+ # second, install the files needed to make the root filesystem
+ (
+ export initdir=$TESTDIR/overlay
+ . $basedir/dracut-init.sh
+ inst_multiple sfdisk mkfs.ext3 poweroff cp umount sync dd
+ inst_hook initqueue 01 ./create-client-root.sh
+ inst_hook initqueue/finished 01 ./finished-false.sh
+ inst_simple ./99-idesymlinks.rules /etc/udev/rules.d/99-idesymlinks.rules
+ )
+
+ # create an initramfs that will create the target root filesystem.
+ # We do it this way so that we do not risk trashing the host mdraid
+ # devices, volume groups, encrypted partitions, etc.
+ $basedir/dracut.sh -l -i $TESTDIR/overlay / \
+ -m "dash udev-rules base rootfs-block fs-lib kernel-modules fs-lib qemu" \
+ -d "piix ide-gd_mod ata_piix ext3 sd_mod" \
+ --nomdadmconf \
+ --no-hostonly-cmdline -N \
+ -f $TESTDIR/initramfs.makeroot $KVERSION || return 1
+
+ # Invoke KVM and/or QEMU to actually create the target filesystem.
+ $testdir/run-qemu \
+ -drive format=raw,index=0,media=disk,file=$TESTDIR/nbd.ext3 \
+ -drive format=raw,index=1,media=disk,file=$TESTDIR/flag.img \
+ -append "root=/dev/dracut/root rw rootfstype=ext3 quiet console=ttyS0,115200n81 selinux=0" \
+ -initrd $TESTDIR/initramfs.makeroot || return 1
+ grep -F -m 1 -q dracut-root-block-created $TESTDIR/flag.img || return 1
+ rm -fr "$TESTDIR"/overlay
}
make_server_root() {
- dd if=/dev/zero of=$TESTDIR/server.ext2 bs=1M count=120
- mke2fs -F $TESTDIR/server.ext2
- mkdir $TESTDIR/mnt
- mount -o loop $TESTDIR/server.ext2 $TESTDIR/mnt
+ dd if=/dev/zero of=$TESTDIR/server.ext3 bs=1M count=120
+ dd if=/dev/zero of=$TESTDIR/flag.img bs=1M count=1
+ rm -fr $TESTDIR/overlay
kernel=$KVERSION
(
- export initdir=$TESTDIR/mnt
- . $basedir/dracut-init.sh
+ mkdir -p $TESTDIR/overlay/source
+ export initdir=$TESTDIR/overlay/source
+ . "$basedir"/dracut-init.sh
mkdir -p "$initdir"
(
cd "$initdir";
ldconfig -r "$initdir"
)
- umount $TESTDIR/mnt
- rm -fr -- $TESTDIR/mnt
+ # second, install the files needed to make the root filesystem
+ (
+ export initdir=$TESTDIR/overlay
+ . $basedir/dracut-init.sh
+ inst_multiple sfdisk mkfs.ext3 poweroff cp umount sync dd
+ inst_hook initqueue 01 ./create-server-root.sh
+ inst_hook initqueue/finished 01 ./finished-false.sh
+ inst_simple ./99-idesymlinks.rules /etc/udev/rules.d/99-idesymlinks.rules
+ )
+
+ # create an initramfs that will create the target root filesystem.
+ # We do it this way so that we do not risk trashing the host mdraid
+ # devices, volume groups, encrypted partitions, etc.
+ $basedir/dracut.sh -l -i $TESTDIR/overlay / \
+ -m "dash udev-rules base rootfs-block fs-lib kernel-modules fs-lib qemu" \
+ -d "piix ide-gd_mod ata_piix ext3 sd_mod" \
+ --nomdadmconf \
+ --no-hostonly-cmdline -N \
+ -f $TESTDIR/initramfs.makeroot $KVERSION || return 1
+
+ # Invoke KVM and/or QEMU to actually create the target filesystem.
+ $testdir/run-qemu \
+ -drive format=raw,index=0,media=disk,file=$TESTDIR/server.ext3 \
+ -drive format=raw,index=1,media=disk,file=$TESTDIR/flag.img \
+ -append "root=/dev/dracut/root rw rootfstype=ext3 quiet console=ttyS0,115200n81 selinux=0" \
+ -initrd $TESTDIR/initramfs.makeroot || return 1
+ grep -F -m 1 -q dracut-root-block-created $TESTDIR/flag.img || return 1
+ rm -fr "$TESTDIR"/overlay
}
test_setup() {
make_client_root || return 1
make_server_root || return 1
+ rm -fr $TESTDIR/overlay
# Make the test image
(
export initdir=$TESTDIR/overlay
$basedir/dracut.sh -l -i $TESTDIR/overlay / \
-m "dash udev-rules rootfs-block fs-lib base debug kernel-modules" \
- -d "af_packet piix ide-gd_mod ata_piix ext2 ext3 sd_mod e1000" \
+ -d "af_packet piix ide-gd_mod ata_piix ext3 ext3 sd_mod e1000" \
--no-hostonly-cmdline -N \
-f $TESTDIR/initramfs.server $KVERSION || return 1
$basedir/dracut.sh -l -i $TESTDIR/overlay / \
-o "plymouth" \
-a "debug watchdog" \
- -d "af_packet piix ide-gd_mod ata_piix ext2 ext3 sd_mod e1000 i6300esb ib700wdt" \
+ -d "af_packet piix ide-gd_mod ata_piix ext3 ext3 sd_mod e1000 i6300esb ib700wdt" \
--no-hostonly-cmdline -N \
-f $TESTDIR/initramfs.testing $KVERSION || return 1
}
--- /dev/null
+#!/bin/sh
+# don't let udev and this script step on eachother's toes
+for x in 64-lvm.rules 70-mdadm.rules 99-mount-rules; do
+ > "/etc/udev/rules.d/$x"
+done
+rm -f -- /etc/lvm/lvm.conf
+udevadm control --reload
+set -e
+# save a partition at the beginning for future flagging purposes
+sfdisk /dev/sda <<EOF
+,1M
+,
+EOF
+
+udevadm settle
+mkfs.ext3 -L dracut /dev/sda2
+mkdir -p /root
+mount /dev/sda2 /root
+cp -a -t /root /source/*
+mkdir -p /root/run
+umount /root
+echo "dracut-root-block-created" | dd oflag=direct,dsync of=/dev/sda1
+sync
+poweroff -f
+
export PATH=/sbin:/bin:/usr/sbin:/usr/bin
export TERM=linux
export PS1='nfstest-server:\w\$ '
+echo > /dev/watchdog
stty sane
echo "made it to the rootfs!"
echo server > /proc/sys/kernel/hostname
&& wait_for_if_up $1 2>/dev/null
}
-wait_for_if_link eth0 ens3
+wait_for_if_link eth0 ens2
>/dev/watchdog
ip addr add 127.0.0.1/8 dev lo
linkup lo
-ip link set dev eth0 name ens3
-ip addr add 192.168.50.1/24 dev ens3
-linkup ens3
+ip link set dev eth0 name ens2
+ip addr add 192.168.50.1/24 dev ens2
+linkup ens2
>/dev/watchdog
modprobe af_packet
#DEBUGFAIL="rd.shell rd.break"
#SERIAL="tcp:127.0.0.1:9999"
+
+
run_server() {
# Start server first
echo "MULTINIC TEST SETUP: Starting DHCP/NFS server"
- fsck -a "$TESTDIR"/server.ext3 || return 1
-
$testdir/run-qemu \
-drive format=raw,index=0,media=disk,file="$TESTDIR"/server.ext3 \
-net socket,listen=127.0.0.1:12350 \
${SERIAL:+-serial "$SERIAL"} \
${SERIAL:--serial file:"$TESTDIR"/server.log} \
-watchdog i6300esb -watchdog-action poweroff \
- -append "panic=1 systemd.crash_reboot loglevel=7 root=/dev/sda rootfstype=ext3 rw console=ttyS0,115200n81 selinux=0" \
+ -append "panic=1 systemd.crash_reboot loglevel=7 root=LABEL=dracut rootfstype=ext3 rw console=ttyS0,115200n81 selinux=0" \
-initrd "$TESTDIR"/initramfs.server \
-pidfile "$TESTDIR"/server.pid -daemonize || return 1
while : ; do
grep Serving "$TESTDIR"/server.log && break
echo "Waiting for the server to startup"
+ tail "$TESTDIR"/server.log
sleep 1
done
else
test_setup() {
# Make server root
dd if=/dev/zero of="$TESTDIR"/server.ext3 bs=1M count=120
- mke2fs -j -F -- "$TESTDIR"/server.ext3
- mkdir -- "$TESTDIR"/mnt
- mount -o loop -- "$TESTDIR"/server.ext3 "$TESTDIR"/mnt
+
kernel=$KVERSION
(
- export initdir="$TESTDIR"/mnt
- . "$basedir"/dracut-init.sh
+ mkdir -p $TESTDIR/overlay/source
+ export initdir=$TESTDIR/overlay/source
+ . $basedir/dracut-init.sh
+
(
cd "$initdir";
# Make client root inside server root
(
- export initdir="$TESTDIR"/mnt/nfs/client
- . "$basedir"/dracut-init.sh
+ export initdir=$TESTDIR/overlay/source/nfs/client
+ . $basedir/dracut-init.sh
(
cd "$initdir"
mkdir -p dev sys proc etc run
ldconfig -r "$initdir"
)
- umount "$TESTDIR"/mnt
- rm -fr -- "$TESTDIR"/mnt
+ # second, install the files needed to make the root filesystem
+ (
+ export initdir=$TESTDIR/overlay
+ . $basedir/dracut-init.sh
+ inst_multiple sfdisk mkfs.ext3 poweroff cp umount sync dd
+ inst_hook initqueue 01 ./create-root.sh
+ inst_hook initqueue/finished 01 ./finished-false.sh
+ inst_simple ./99-idesymlinks.rules /etc/udev/rules.d/99-idesymlinks.rules
+ )
+
+ # create an initramfs that will create the target root filesystem.
+ # We do it this way so that we do not risk trashing the host mdraid
+ # devices, volume groups, encrypted partitions, etc.
+ $basedir/dracut.sh -l -i $TESTDIR/overlay / \
+ -m "dash udev-rules base rootfs-block fs-lib kernel-modules fs-lib qemu" \
+ -d "piix ide-gd_mod ata_piix ext3 sd_mod" \
+ --nomdadmconf \
+ --no-hostonly-cmdline -N \
+ -f $TESTDIR/initramfs.makeroot $KVERSION || return 1
+
+ # Invoke KVM and/or QEMU to actually create the target filesystem.
+ $testdir/run-qemu \
+ -drive format=raw,index=0,media=disk,file=$TESTDIR/server.ext3 \
+ -append "root=/dev/dracut/root rw rootfstype=ext3 quiet console=ttyS0,115200n81 selinux=0" \
+ -initrd $TESTDIR/initramfs.makeroot || return 1
+ grep -F -m 1 -q dracut-root-block-created $TESTDIR/server.ext3 || return 1
+ rm -fr "$TESTDIR"/overlay
# Make an overlay with needed tools for the test harness
(
--- /dev/null
+#!/bin/sh
+# don't let udev and this script step on eachother's toes
+for x in 64-lvm.rules 70-mdadm.rules 99-mount-rules; do
+ > "/etc/udev/rules.d/$x"
+done
+rm -f -- /etc/lvm/lvm.conf
+udevadm control --reload
+set -e
+# save a partition at the beginning for future flagging purposes
+sfdisk /dev/sda <<EOF
+,1M
+,
+EOF
+
+udevadm settle
+mkfs.ext3 -L dracut /dev/sda2
+mkdir -p /root
+mount /dev/sda2 /root
+cp -a -t /root /source/*
+mkdir -p /root/run
+umount /root
+echo "dracut-root-block-created" | dd oflag=direct,dsync of=/dev/sda1
+sync
+poweroff -f
+
wait_for_if_link() {
local cnt=0
local li
+
while [ $cnt -lt 600 ]; do
+ip link show
+
li=$(ip -o link show dev $1 2>/dev/null)
[ -n "$li" ] && return 0
if [[ $2 ]]; then
&& wait_for_if_up $1 2>/dev/null
}
-wait_for_if_link eth0 ens2
-wait_for_if_link eth1 ens3
-wait_for_if_link eth2 ens4
-wait_for_if_link eth3 ens5
+udevadm settle
+
+ip link show
+
+wait_for_if_link eth0 ens3
+wait_for_if_link eth1 ens4
+wait_for_if_link eth2 ens5
+wait_for_if_link eth3 ens6
modprobe --all -b -q 8021q ipvlan macvlan
>/dev/watchdog
ip addr add 127.0.0.1/8 dev lo
linkup lo
-ip link set dev eth0 name ens2
-ip addr add 192.168.50.1/24 dev ens2
-linkup ens2
->/dev/watchdog
-ip link set dev eth1 name ens3
-ip link add dev ens3.1 link ens3 type vlan id 1
-ip link add dev ens3.2 link ens3 type vlan id 2
-ip link add dev ens3.3 link ens3 type vlan id 3
-ip link add dev ens3.4 link ens3 type vlan id 4
-ip addr add 192.168.54.1/24 dev ens3.1
-ip addr add 192.168.55.1/24 dev ens3.2
-ip addr add 192.168.56.1/24 dev ens3.3
-ip addr add 192.168.57.1/24 dev ens3.4
+ip link set dev eth0 name ens3
+ip addr add 192.168.50.1/24 dev ens3
linkup ens3
-ip link set dev ens3.1 up
-ip link set dev ens3.2 up
-ip link set dev ens3.3 up
-ip link set dev ens3.4 up
-ip link set dev eth2 name ens4
-ip addr add 192.168.51.1/24 dev ens4
+>/dev/watchdog
+ip link set dev eth1 name ens4
+ip link add dev ens4.1 link ens4 type vlan id 1
+ip link add dev ens4.2 link ens4 type vlan id 2
+ip link add dev ens4.3 link ens4 type vlan id 3
+ip link add dev ens4.4 link ens4 type vlan id 4
+ip addr add 192.168.54.1/24 dev ens4.1
+ip addr add 192.168.55.1/24 dev ens4.2
+ip addr add 192.168.56.1/24 dev ens4.3
+ip addr add 192.168.57.1/24 dev ens4.4
linkup ens4
-ip link set dev eth3 name ens5
+ip link set dev ens4.1 up
+ip link set dev ens4.2 up
+ip link set dev ens4.3 up
+ip link set dev ens4.4 up
+ip link set dev eth2 name ens5
+ip addr add 192.168.51.1/24 dev ens5
linkup ens5
+ip link set dev eth3 name ens6
+linkup ens6
>/dev/watchdog
modprobe af_packet
> /dev/watchdog
>/dev/watchdog
chmod 777 /var/lib/dhcpd/dhcpd.leases
>/dev/watchdog
-dhcpd -cf /etc/dhcpd.conf -lf /var/lib/dhcpd/dhcpd.leases ens2 ens4
+dhcpd -cf /etc/dhcpd.conf -lf /var/lib/dhcpd/dhcpd.leases ens3 ens5
#echo -n 'V' > /dev/watchdog
#sh -i
-#tcpdump -i ens2
+#tcpdump -i ens3
# Wait forever for the VM to die
echo "Serving"
while :; do
# Start server first
echo "MULTINIC TEST SETUP: Starting DHCP/NFS server"
- fsck -a "$TESTDIR"/server.ext3 || return 1
-
$testdir/run-qemu \
-hda "$TESTDIR"/server.ext3 \
-netdev socket,id=n0,listen=127.0.0.1:12370 \
${SERIAL:+-serial "$SERIAL"} \
${SERIAL:--serial file:"$TESTDIR"/server.log} \
-watchdog i6300esb -watchdog-action poweroff \
- -append "panic=1 loglevel=7 root=/dev/sda rootfstype=ext3 rw console=ttyS0,115200n81 selinux=0 rd.debug" \
+ -append "panic=1 loglevel=7 root=LABEL=dracut rootfstype=ext3 rw console=ttyS0,115200n81 selinux=0 rd.debug" \
-initrd "$TESTDIR"/initramfs.server \
-pidfile "$TESTDIR"/server.pid -daemonize || return 1
chmod 644 -- "$TESTDIR"/server.pid || return 1
echo "Waiting for the server to startup"
while : ; do
grep Serving "$TESTDIR"/server.log && break
+ tail "$TESTDIR"/server.log
sleep 1
done
else
test_setup() {
# Make server root
dd if=/dev/zero of="$TESTDIR"/server.ext3 bs=1M count=120
- mke2fs -j -F -- "$TESTDIR"/server.ext3
- mkdir -- "$TESTDIR"/mnt
- mount -o loop -- "$TESTDIR"/server.ext3 "$TESTDIR"/mnt
+
kernel=$KVERSION
(
- export initdir="$TESTDIR"/mnt
+ mkdir -p $TESTDIR/overlay/source
+ export initdir=$TESTDIR/overlay/source
. "$basedir"/dracut-init.sh
(
# Make client root inside server root
(
- export initdir="$TESTDIR"/mnt/nfs/client
- . "$basedir"/dracut-init.sh
+ export initdir=$TESTDIR/overlay/source/nfs/client
+ . $basedir/dracut-init.sh
inst_multiple sh shutdown poweroff stty cat ps ln ip \
mount dmesg mkdir cp ping grep ls sort dd
for _terminfodir in /lib/terminfo /etc/terminfo /usr/share/terminfo; do
ldconfig -r "$initdir"
)
- umount "$TESTDIR"/mnt
- rm -fr -- "$TESTDIR"/mnt
+ # second, install the files needed to make the root filesystem
+ (
+ export initdir=$TESTDIR/overlay
+ . $basedir/dracut-init.sh
+ inst_multiple sfdisk mkfs.ext3 poweroff cp umount sync dd
+ inst_hook initqueue 01 ./create-root.sh
+ inst_hook initqueue/finished 01 ./finished-false.sh
+ inst_simple ./99-idesymlinks.rules /etc/udev/rules.d/99-idesymlinks.rules
+ )
+
+ # create an initramfs that will create the target root filesystem.
+ # We do it this way so that we do not risk trashing the host mdraid
+ # devices, volume groups, encrypted partitions, etc.
+ $basedir/dracut.sh -l -i $TESTDIR/overlay / \
+ -m "dash udev-rules base rootfs-block fs-lib kernel-modules fs-lib qemu" \
+ -d "piix ide-gd_mod ata_piix ext3 sd_mod" \
+ --nomdadmconf \
+ --no-hostonly-cmdline -N \
+ -f $TESTDIR/initramfs.makeroot $KVERSION || return 1
+
+ # Invoke KVM and/or QEMU to actually create the target filesystem.
+ $testdir/run-qemu \
+ -drive format=raw,index=0,media=disk,file=$TESTDIR/server.ext3 \
+ -append "root=/dev/dracut/root rw rootfstype=ext3 quiet console=ttyS0,115200n81 selinux=0" \
+ -initrd $TESTDIR/initramfs.makeroot || return 1
+ grep -F -m 1 -q dracut-root-block-created $TESTDIR/server.ext3 || return 1
+ rm -fr "$TESTDIR"/overlay
# Make an overlay with needed tools for the test harness
(