dracut - 049-1

- version 049
This commit is contained in:
Harald Hoyer 2018-10-08 17:14:50 +02:00
parent 9d5d7534b9
commit 4454e5464f
99 changed files with 6 additions and 6449 deletions

View File

@ -1,28 +0,0 @@
From 9a9c67d61b1e522a7cb72bfc488f4610b4c5ff0b Mon Sep 17 00:00:00 2001
From: Harald Hoyer <harald@redhat.com>
Date: Fri, 6 Jul 2018 11:56:23 +0200
Subject: [PATCH] TEST-30-ISCSI: readd multiple target test
---
test/TEST-30-ISCSI/test.sh | 7 +++++++
1 file changed, 7 insertions(+)
diff --git a/test/TEST-30-ISCSI/test.sh b/test/TEST-30-ISCSI/test.sh
index e667587a..f6cc56d5 100755
--- a/test/TEST-30-ISCSI/test.sh
+++ b/test/TEST-30-ISCSI/test.sh
@@ -76,6 +76,13 @@ do_test_run() {
"rd.iscsi.initiator=$initiator" \
|| return 1
+ run_client "netroot=iscsi target1 target2" \
+ "root=LABEL=sysroot" \
+ "ip=dhcp" \
+ "netroot=iscsi:192.168.51.1::::iqn.2009-06.dracut:target1" \
+ "netroot=iscsi:192.168.50.1::::iqn.2009-06.dracut:target2" \
+ "rd.iscsi.initiator=$initiator" \
+ || return 1
echo "All tests passed [OK]"
return 0

View File

@ -1,259 +0,0 @@
From d63a4e285ea7f4c2249dd3b53f4ed2fdd1f0e374 Mon Sep 17 00:00:00 2001
From: Harald Hoyer <harald@redhat.com>
Date: Thu, 12 Jul 2018 15:18:48 +0200
Subject: [PATCH] TEST-40-NBD: disable for now
nbd is always broken
---
test/TEST-40-NBD/test.sh | 115 +++++++++++++++++++++++++----------------------
1 file changed, 62 insertions(+), 53 deletions(-)
diff --git a/test/TEST-40-NBD/test.sh b/test/TEST-40-NBD/test.sh
index 4931bb73..12736a15 100755
--- a/test/TEST-40-NBD/test.sh
+++ b/test/TEST-40-NBD/test.sh
@@ -8,6 +8,11 @@ KVERSION=${KVERSION-$(uname -r)}
#DEBUGFAIL="rd.shell rd.break rd.debug systemd.log_target=console loglevel=7 systemd.log_level=debug"
#SERIAL="tcp:127.0.0.1:9999"
+test_check() {
+ echo "nbd is constantly broken. skipping"
+ return 1
+}
+
run_server() {
# Start server first
echo "NBD TEST SETUP: Starting DHCP/NBD server"
@@ -107,76 +112,76 @@ client_run() {
# The default is ext3,errors=continue so use that to determine
# if our options were parsed and used
client_test "NBD root=nbd:IP:port" 52:54:00:12:34:00 \
- "root=nbd:192.168.50.1:raw rd.luks=0" || return 1
+ "root=nbd:192.168.50.1:raw rd.luks=0" || return 1
client_test "NBD root=nbd:IP:port::fsopts" 52:54:00:12:34:00 \
- "root=nbd:192.168.50.1:raw::errors=panic rd.luks=0" \
- ext3 errors=panic || return 1
+ "root=nbd:192.168.50.1:raw::errors=panic rd.luks=0" \
+ 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:ext2 rd.luks=0" ext2 || 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
+ "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:ext2:errors=panic bridge rd.luks=0" \
+ ext2 errors=panic || return 1
- # There doesn't seem to be a good way to validate the NBD options, so
- # just check that we don't screw up the other options
+ # There doesn't seem to be a good way to validate the NBD options, so
+ # just check that we don't screw up the other options
client_test "NBD root=nbd:IP:port:::NBD opts" 52:54:00:12:34:00 \
- "root=nbd:192.168.50.1:raw:::bs=2048 rd.luks=0" || return 1
+ "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:ext2::bs=2048 rd.luks=0" ext2 || 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
+ 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
# 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
+ "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
+ "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" ext2 || return 1
+ 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
+ 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
+ 52:54:00:12:34:04 "root=dhcp rd.luks=0" ext2 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
+ "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
+ 52:54:00:12:34:04 "netroot=dhcp rd.luks=0" ext2 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
+ 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 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)" \
- 52:54:00:12:34:05 \
- "root=LABEL=dracut rd.luks.uuid=$ID_FS_UUID rd.lv.vg=dracut netroot=dhcp" || return 1
+ 52:54:00:12:34:05 \
+ "root=LABEL=dracut rd.luks.uuid=$ID_FS_UUID rd.lv.vg=dracut netroot=dhcp" || return 1
if [[ -s server.pid ]]; then
sudo kill -TERM $(cat $TESTDIR/server.pid)
@@ -197,14 +202,15 @@ make_encrypted_root() {
. $basedir/dracut-init.sh
mkdir -p "$initdir"
(
- cd "$initdir"; mkdir -p dev sys proc etc var/run tmp
- mkdir -p root usr/bin usr/lib usr/lib64 usr/sbin
+ cd "$initdir"
+ mkdir -p dev sys proc etc var tmp run 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
+ mount dmesg mkdir cp ping
for _terminfodir in /lib/terminfo /etc/terminfo /usr/share/terminfo; do
[ -f ${_terminfodir}/l/linux ] && break
done
@@ -221,11 +227,12 @@ make_encrypted_root() {
export initdir=$TESTDIR/overlay
. $basedir/dracut-init.sh
(
- cd "$initdir"; mkdir -p dev sys proc etc var/run tmp
- mkdir -p root usr/bin usr/lib usr/lib64 usr/sbin
+ cd "$initdir"
+ mkdir -p dev sys proc etc tmp var run 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 mke2fs poweroff cp umount tune2fs
inst_hook shutdown-emergency 000 ./hard-off.sh
@@ -239,10 +246,10 @@ make_encrypted_root() {
# 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 crypt lvm mdraid udev-rules base rootfs-block fs-lib kernel-modules" \
- -d "piix ide-gd_mod ata_piix ext2 ext3 sd_mod" \
- --no-hostonly-cmdline -N \
- -f $TESTDIR/initramfs.makeroot $KVERSION || return 1
+ -m "dash crypt lvm mdraid udev-rules base rootfs-block fs-lib kernel-modules" \
+ -d "piix ide-gd_mod ata_piix ext2 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.
@@ -269,14 +276,15 @@ make_client_root() {
. $basedir/dracut-init.sh
mkdir -p "$initdir"
(
- cd "$initdir"; mkdir -p dev sys proc etc var/run tmp
- mkdir -p root usr/bin usr/lib usr/lib64 usr/sbin
+ cd "$initdir"
+ mkdir -p dev sys proc etc var tmp run 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
+ dmesg mkdir cp ping
for _terminfodir in /lib/terminfo /etc/terminfo /usr/share/terminfo; do
[ -f ${_terminfodir}/l/linux ] && break
done
@@ -311,7 +319,8 @@ make_server_root() {
mkdir -p "$initdir"
(
cd "$initdir";
- mkdir -p dev sys proc etc var/run var/lib/dhcpd tmp etc/nbd-server
+ mkdir -p run dev sys proc etc var var/lib/dhcpd tmp etc/nbd-server
+ ln -s ../run var/run
)
cat > "$initdir/etc/nbd-server/config" <<EOF
[generic]
@@ -323,8 +332,8 @@ exportname = /dev/sdc
port = 2001
EOF
inst_multiple sh ls shutdown poweroff stty cat ps ln ip \
- dmesg mkdir cp ping grep \
- sleep nbd-server chmod modprobe vi
+ dmesg mkdir cp ping grep \
+ sleep nbd-server chmod modprobe vi
for _terminfodir in /lib/terminfo /etc/terminfo /usr/share/terminfo; do
[ -f ${_terminfodir}/l/linux ] && break
done
@@ -369,9 +378,9 @@ test_setup() {
inst_simple ./99-idesymlinks.rules /etc/udev/rules.d/99-idesymlinks.rules
inst ./cryptroot-ask.sh /sbin/cryptroot-ask
-# inst ./debug-shell.service /lib/systemd/system/debug-shell.service
-# mkdir -p "${initdir}/lib/systemd/system/sysinit.target.wants"
-# ln -fs ../debug-shell.service "${initdir}/lib/systemd/system/sysinit.target.wants/debug-shell.service"
+ # inst ./debug-shell.service /lib/systemd/system/debug-shell.service
+ # mkdir -p "${initdir}/lib/systemd/system/sysinit.target.wants"
+ # ln -fs ../debug-shell.service "${initdir}/lib/systemd/system/sysinit.target.wants/debug-shell.service"
. $TESTDIR/luks.uuid
mkdir -p $initdir/etc
@@ -380,17 +389,17 @@ test_setup() {
)
sudo $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" \
- --no-hostonly-cmdline -N \
- -f $TESTDIR/initramfs.server $KVERSION || return 1
+ -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" \
+ --no-hostonly-cmdline -N \
+ -f $TESTDIR/initramfs.server $KVERSION || return 1
sudo $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" \
- --no-hostonly-cmdline -N \
- -f $TESTDIR/initramfs.testing $KVERSION || return 1
+ -o "plymouth" \
+ -a "debug watchdog" \
+ -d "af_packet piix ide-gd_mod ata_piix ext2 ext3 sd_mod e1000 i6300esb ib700wdt" \
+ --no-hostonly-cmdline -N \
+ -f $TESTDIR/initramfs.testing $KVERSION || return 1
}
kill_server() {

View File

@ -1,13 +0,0 @@
From 1caaeaae1ecbaadf69e3ac90d77a5da5a9d250b1 Mon Sep 17 00:00:00 2001
From: Harald Hoyer <harald@redhat.com>
Date: Thu, 12 Jul 2018 15:19:17 +0200
Subject: [PATCH] modules.d/95fcoe/cleanup-fcoe.sh: chmod +x
---
modules.d/95fcoe/cleanup-fcoe.sh | 0
1 file changed, 0 insertions(+), 0 deletions(-)
diff --git a/modules.d/95fcoe/cleanup-fcoe.sh b/modules.d/95fcoe/cleanup-fcoe.sh
old mode 100644
new mode 100755

View File

@ -1,64 +0,0 @@
From 7047294617bbdd3ffb2466c73db56fda4e6156db Mon Sep 17 00:00:00 2001
From: Kairui Song <kasong@redhat.com>
Date: Tue, 17 Jul 2018 17:16:07 +0800
Subject: [PATCH] Record loaded kernel modules when hostonly mode is enabled
A hostonly image will not include every possibly required kernel module,
so if any hardware or configuration changed, the image may fail to boot.
One way to know if there are any hardware change or configuration change
that will require an image rebuild or not is to check the loaded kernel
module list. If the loaded kernel module list differs from last build
time, then the image may require to be rebuilt.
This commit will let dracut record the loaded kernel module list when
the image is being built, so other tools or services can compare this
list with currently loaded kernel modules to decide if dracut should be
called to rebuild the image.
To retrieve the loaded kernel modules list when an image is built, use
lsinitrd command:
lsinitrd $image -f */lib/dracut/loaded-kernel-modules.txt
---
dracut-functions.sh | 11 +++++++++++
dracut.sh | 3 +++
2 files changed, 14 insertions(+)
diff --git a/dracut-functions.sh b/dracut-functions.sh
index ccc48971..7c408f83 100755
--- a/dracut-functions.sh
+++ b/dracut-functions.sh
@@ -676,6 +676,17 @@ get_ucode_file ()
fi
}
+# Get currently loaded modules
+# sorted, and delimited by newline
+get_loaded_kernel_modules ()
+{
+ local modules=( )
+ while read _module _size _used _used_by; do
+ modules+=( "$_module" )
+ done <<< $(lsmod | sed -n '1!p')
+ printf '%s\n' "${modules[@]}" | sort
+}
+
# Not every device in /dev/mapper should be examined.
# If it is an LVM device, touch only devices which have /dev/VG/LV symlink.
lvm_internal_dev() {
diff --git a/dracut.sh b/dracut.sh
index cfa4abde..6614d27d 100755
--- a/dracut.sh
+++ b/dracut.sh
@@ -1492,6 +1492,9 @@ dinfo "*** Including modules done ***"
## final stuff that has to happen
if [[ $no_kernel != yes ]]; then
+ if [[ $hostonly ]]; then
+ echo "$(get_loaded_kernel_modules)" > $initdir/lib/dracut/loaded-kernel-modules.txt
+ fi
if [[ $drivers ]]; then
hostonly='' instmods $drivers

View File

@ -1,24 +0,0 @@
From e331e06a3910ef3fe6837f3e93a48123a7cc822b Mon Sep 17 00:00:00 2001
From: Harald Hoyer <harald@redhat.com>
Date: Wed, 18 Jul 2018 12:41:01 +0200
Subject: [PATCH] dracut-install: skip modules with empty path
if kmod_module_get_path(module) returns NULL, skip the module
---
install/dracut-install.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/install/dracut-install.c b/install/dracut-install.c
index 001225b4..88bca1d4 100644
--- a/install/dracut-install.c
+++ b/install/dracut-install.c
@@ -1244,7 +1244,7 @@ static int install_dependent_modules(struct kmod_list *modlist)
path = kmod_module_get_path(mod);
name = kmod_module_get_name(mod);
- if (arg_mod_filter_noname && (regexec(&mod_filter_noname, name, 0, NULL, 0) == 0)) {
+ if ((path == NULL) || (arg_mod_filter_noname && (regexec(&mod_filter_noname, name, 0, NULL, 0) == 0))) {
kmod_module_unref(mod);
continue;
}

View File

@ -1,70 +0,0 @@
From a0eadcdc644d571da58f718d73dacb4f68bef56b Mon Sep 17 00:00:00 2001
From: Hannes Reinecke <hare@suse.de>
Date: Thu, 5 Dec 2013 09:29:28 +0100
Subject: [PATCH] 00warpclock: Set correct timezone
Add module for setting correct timezone.
References: bnc#830060
For now, this module will not be included automatically due to different
expectations (see e.g. https://bugzilla.redhat.com/show_bug.cgi?id=981617)
Signed-off-by: Hannes Reinecke <hare@suse.de>
Signed-off-by: Daniel Molkentin <daniel.molkentin@suse.com>
---
modules.d/00warpclock/module-setup.sh | 29 +++++++++++++++++++++++++++++
modules.d/00warpclock/warpclock.sh | 9 +++++++++
2 files changed, 38 insertions(+)
diff --git a/modules.d/00warpclock/module-setup.sh b/modules.d/00warpclock/module-setup.sh
new file mode 100644
index 00000000..ea1348ed
--- /dev/null
+++ b/modules.d/00warpclock/module-setup.sh
@@ -0,0 +1,29 @@
+#!/bin/bash
+# -*- mode: shell-script; indent-tabs-mode: nil; sh-basic-offset: 4; -*-
+# ex: ts=8 sw=4 sts=4 et filetype=sh
+
+# called by dracut
+check() {
+ # hwclock does not exist on S390(x), bail out silently then
+ local _arch=$(uname -m)
+ [ "$_arch" = "s390" -o "$_arch" = "s390x" ] && return 1
+
+ [ -e /etc/localtime -a -e /etc/adjtime ] || return 1
+ require_binaries /sbin/hwclock || return 1
+
+ return 255
+}
+
+# called by dracut
+depends() {
+ return 0
+}
+
+# called by dracut
+install() {
+ inst /usr/share/zoneinfo/UTC
+ inst /etc/localtime
+ inst /etc/adjtime
+ inst_hook pre-trigger 00 "$moddir/warpclock.sh"
+ inst /sbin/hwclock
+}
diff --git a/modules.d/00warpclock/warpclock.sh b/modules.d/00warpclock/warpclock.sh
new file mode 100644
index 00000000..f64818c6
--- /dev/null
+++ b/modules.d/00warpclock/warpclock.sh
@@ -0,0 +1,9 @@
+#!/bin/sh
+
+if test -e /etc/adjtime ; then
+ while read line ; do
+ if test "$line" = LOCAL ; then
+ hwclock --systz
+ fi
+ done < /etc/adjtime
+fi

View File

@ -1,20 +0,0 @@
From aac3a0652adc2b200d5b8fedfbce99cfde88b525 Mon Sep 17 00:00:00 2001
From: Harald Hoyer <harald@redhat.com>
Date: Thu, 26 Jul 2018 09:54:13 +0200
Subject: [PATCH] NEWS: forgot to update the latest version
---
NEWS | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/NEWS b/NEWS
index 2de38ad7..60b430aa 100644
--- a/NEWS
+++ b/NEWS
@@ -1,4 +1,4 @@
-dracut-047
+dracut-048
==========
dracut.sh:

View File

@ -1,49 +0,0 @@
From f81c864eede2a11bfeb849cb2a2634be034ed7fb Mon Sep 17 00:00:00 2001
From: Kairui Song <kasong@redhat.com>
Date: Wed, 25 Jul 2018 16:34:08 +0800
Subject: [PATCH] lsinitrd: allow to only unpack certain files
Before this patch, "--unpack" will always unpack the whole image.
Make "--unpack" be able to unpack only certain files, it will be
easier to retrieve files from initramfs image.
Signed-off-by: Kairui Song <kasong@redhat.com>
---
lsinitrd.sh | 16 +++++++++++++---
1 file changed, 13 insertions(+), 3 deletions(-)
diff --git a/lsinitrd.sh b/lsinitrd.sh
index 80fbf922..1b9a93b6 100755
--- a/lsinitrd.sh
+++ b/lsinitrd.sh
@@ -159,8 +159,15 @@ list_files()
unpack_files()
{
- $CAT "$image" 2>/dev/null | cpio -id --quiet $verbose
- ((ret+=$?))
+ if (( ${#filenames[@]} > 0 )); then
+ for f in "${!filenames[@]}"; do
+ $CAT "$image" 2>/dev/null | cpio -id --quiet $verbose $f
+ ((ret+=$?))
+ done
+ else
+ $CAT "$image" 2>/dev/null | cpio -id --quiet $verbose
+ ((ret+=$?))
+ fi
}
@@ -175,7 +182,10 @@ case $bin in
CAT="cat --"
is_early=$(cpio --extract --verbose --quiet --to-stdout -- 'early_cpio' < "$image" 2>/dev/null)
if [[ "$is_early" ]]; then
- if [[ -n "$unpackearly" ]]; then
+ if [[ -n "$unpack" ]]; then
+ # should use --unpackearly for early CPIO
+ :
+ elif [[ -n "$unpackearly" ]]; then
unpack_files
elif (( ${#filenames[@]} > 0 )); then
extract_files

View File

@ -1,58 +0,0 @@
From 986b12d391b8de6c820da1af9bfdb4153c340370 Mon Sep 17 00:00:00 2001
From: Kairui Song <kasong@redhat.com>
Date: Wed, 25 Jul 2018 16:47:37 +0800
Subject: [PATCH] lsinitrd: optimize performance when handling multiple files
Currently, when trying to unpack or print the content of multiple
files, lsinitrd will decompress the image and pipe the decompressed
content to cpio to retrive each file if the image is compressed.
Which mean if we want to extract 10 files the image will be decompressed
10 times, which is a waste of time.
This patch will let lsinitrd decompress the image file to a temp file
first if multiple file names are given, then cpio will read from the
decompressed temp file, which will speed up a lot.
Time consumption test for command:
`lsinitrd initramfs-4.16.15-300.fc28.x86_64.img \
usr/lib/dracut/build-parameter.txt \
usr/lib/dracut/modules.txt \
etc/machine-id \
etc/hostname \
usr/lib/udev/rules.d/99-systemd.rules`
Before the patch:
2.37user 0.33system 0:02.12elapsed
After the patch:
0.50user 0.42system 0:00.72elapsed
There would be a more significant time difference if we try to
extract more files.
---
lsinitrd.sh | 11 +++++++++++
1 file changed, 11 insertions(+)
diff --git a/lsinitrd.sh b/lsinitrd.sh
index 1b9a93b6..0cb89e9c 100755
--- a/lsinitrd.sh
+++ b/lsinitrd.sh
@@ -251,6 +251,17 @@ if [[ $SKIP ]]; then
CAT=skipcpio
fi
+if (( ${#filenames[@]} > 1 )); then
+ TMPFILE="$(mktemp -t --suffix=.cpio lsinitrd.XXXXXX)"
+ $CAT "$image" 2>/dev/null > $TMPFILE
+ trap "rm -f '$TMPFILE'" EXIT
+ pre_decompress()
+ {
+ cat $TMPFILE
+ }
+ CAT=pre_decompress
+fi
+
ret=0
if [[ -n "$unpack" ]]; then

View File

@ -1,49 +0,0 @@
From 143420bc05079ffa040a63decbb2585c59e44011 Mon Sep 17 00:00:00 2001
From: Kairui Song <kasong@redhat.com>
Date: Wed, 25 Jul 2018 23:50:47 +0800
Subject: [PATCH] lsinitrd: update help message and man page
Signed-off-by: Kairui Song <kasong@redhat.com>
---
lsinitrd.1.asc | 6 ++++++
lsinitrd.sh | 3 +++
2 files changed, 9 insertions(+)
diff --git a/lsinitrd.1.asc b/lsinitrd.1.asc
index b6a704c2..193a4471 100644
--- a/lsinitrd.1.asc
+++ b/lsinitrd.1.asc
@@ -34,11 +34,17 @@ OPTIONS
**-k, --kver** _<kernel version>_::
inspect the initramfs of <kernel version>.
+**-m, --mod**::
+ list dracut modules included of the initramfs image.
+
**--unpack**::
unpack the initramfs to the current directory, instead of displaying the contents.
+ If optional filenames are given, will only unpack specified files, else the whole image will be unpacked.
+ Won't unpack anything from early cpio part.
**--unpackearly**::
unpack the early microcode initramfs to the current directory, instead of displaying the contents.
+ Same as --unpack, but only unpack files from early cpio part.
**-v, --verbose**::
unpack verbosely
diff --git a/lsinitrd.sh b/lsinitrd.sh
index 0cb89e9c..a2fa4d7a 100755
--- a/lsinitrd.sh
+++ b/lsinitrd.sh
@@ -28,7 +28,10 @@ usage()
echo "-m, --mod list modules."
echo "-f, --file <filename> print the contents of <filename>."
echo "--unpack unpack the initramfs, instead of displaying the contents."
+ echo " If optional filenames are given, will only unpack specified files,"
+ echo " else the whole image will be unpacked. Won't unpack anything from early cpio part."
echo "--unpackearly unpack the early microcode part of the initramfs."
+ echo " Same as --unpack, but only unpack files from early cpio part."
echo "-v, --verbose unpack verbosely."
echo "-k, --kver <kernel version> inspect the initramfs of <kernel version>."
echo

View File

@ -1,110 +0,0 @@
From 819ea3865161d440353b2f961f3dfeaabeed333d Mon Sep 17 00:00:00 2001
From: Harald Hoyer <harald@redhat.com>
Date: Thu, 26 Jul 2018 12:49:45 +0200
Subject: [PATCH] Bring back 51-dracut-rescue-postinst.sh
can only be obsoleted after F30
---
51-dracut-rescue-postinst.sh | 68 ++++++++++++++++++++++++++++++++++++++++++++
dracut.spec | 6 ++++
2 files changed, 74 insertions(+)
diff --git a/51-dracut-rescue-postinst.sh b/51-dracut-rescue-postinst.sh
new file mode 100755
index 00000000..67f5b717
--- /dev/null
+++ b/51-dracut-rescue-postinst.sh
@@ -0,0 +1,68 @@
+#!/bin/bash
+
+export LANG=C
+
+KERNEL_VERSION="$1"
+KERNEL_IMAGE="$2"
+
+[[ -f /etc/os-release ]] && . /etc/os-release
+
+if [[ ! -f /etc/machine-id ]] || [[ ! -s /etc/machine-id ]]; then
+ systemd-machine-id-setup
+fi
+
+[[ -f /etc/machine-id ]] && read MACHINE_ID < /etc/machine-id
+
+[[ $MACHINE_ID ]] || exit 1
+[[ -f $KERNEL_IMAGE ]] || exit 1
+
+INITRDFILE="/boot/initramfs-0-rescue-${MACHINE_ID}.img"
+NEW_KERNEL_IMAGE="${KERNEL_IMAGE%/*}/vmlinuz-0-rescue-${MACHINE_ID}"
+
+[[ -f $INITRDFILE ]] && [[ -f $NEW_KERNEL_IMAGE ]] && exit 0
+
+dropindirs_sort()
+{
+ suffix=$1; shift
+ args=("$@")
+ files=$(
+ while (( $# > 0 )); do
+ for i in ${1}/*${suffix}; do
+ [[ -f $i ]] && echo ${i##*/}
+ done
+ shift
+ done | sort -Vu
+ )
+
+ for f in $files; do
+ for d in "${args[@]}"; do
+ if [[ -f "$d/$f" ]]; then
+ echo "$d/$f"
+ continue 2
+ fi
+ done
+ done
+}
+
+# source our config dir
+for f in $(dropindirs_sort ".conf" "/etc/dracut.conf.d" "/usr/lib/dracut/dracut.conf.d"); do
+ [[ -e $f ]] && . "$f"
+done
+
+[[ $dracut_rescue_image != "yes" ]] && exit 0
+
+if [[ ! -f $INITRDFILE ]]; then
+ dracut --no-hostonly -a "rescue" "$INITRDFILE" "$KERNEL_VERSION"
+ ((ret+=$?))
+fi
+
+if [[ ! -f $NEW_KERNEL_IMAGE ]]; then
+ cp --reflink=auto "$KERNEL_IMAGE" "$NEW_KERNEL_IMAGE"
+ ((ret+=$?))
+fi
+
+new-kernel-pkg --install "$KERNEL_VERSION" --kernel-image "$NEW_KERNEL_IMAGE" --initrdfile "$INITRDFILE" --banner "$NAME $VERSION_ID Rescue $MACHINE_ID"
+
+((ret+=$?))
+
+exit $ret
diff --git a/dracut.spec b/dracut.spec
index c218b63d..10cd7839 100644
--- a/dracut.spec
+++ b/dracut.spec
@@ -259,6 +259,10 @@ rm -f -- $RPM_BUILD_ROOT%{_bindir}/lsinitrd
%if 0%{?fedora} || 0%{?rhel}
echo 'hostonly="no"' > $RPM_BUILD_ROOT%{dracutlibdir}/dracut.conf.d/02-generic-image.conf
echo 'dracut_rescue_image="yes"' > $RPM_BUILD_ROOT%{dracutlibdir}/dracut.conf.d/02-rescue.conf
+
+# FIXME: remove after F30
+mkdir -p $RPM_BUILD_ROOT%{_sysconfdir}/kernel/postinst.d
+install -m 0755 51-dracut-rescue-postinst.sh $RPM_BUILD_ROOT%{_sysconfdir}/kernel/postinst.d/51-dracut-rescue-postinst.sh
%endif
%files
@@ -452,6 +456,8 @@ echo 'dracut_rescue_image="yes"' > $RPM_BUILD_ROOT%{dracutlibdir}/dracut.conf.d/
%{dracutlibdir}/dracut.conf.d/02-rescue.conf
%if 0%{?fedora} || 0%{?rhel}
%{_prefix}/lib/kernel/install.d/51-dracut-rescue.install
+# FIXME: remove after F30
+%{_sysconfdir}/kernel/postinst.d/51-dracut-rescue-postinst.sh
%endif
%changelog

View File

@ -1,22 +0,0 @@
From 25111d717eab662bd104295f034ed7d2d6cc606b Mon Sep 17 00:00:00 2001
From: Harald Hoyer <harald@redhat.com>
Date: Thu, 26 Jul 2018 13:00:24 +0200
Subject: [PATCH] dracut.spec: add 00warpclock dracut module
---
dracut.spec | 1 +
1 file changed, 1 insertion(+)
diff --git a/dracut.spec b/dracut.spec
index 10cd7839..754ed3c9 100644
--- a/dracut.spec
+++ b/dracut.spec
@@ -317,6 +317,7 @@ install -m 0755 51-dracut-rescue-postinst.sh $RPM_BUILD_ROOT%{_sysconfdir}/kerne
%endif
%{dracutlibdir}/modules.d/00bash
%{dracutlibdir}/modules.d/00systemd
+%{dracutlibdir}/modules.d/00warpclock
%{dracutlibdir}/modules.d/01systemd-initrd
%{dracutlibdir}/modules.d/03modsign
%{dracutlibdir}/modules.d/03rescue

View File

@ -1,61 +0,0 @@
From 55a12055c511979be0a471d0d7c24c040b830887 Mon Sep 17 00:00:00 2001
From: Harald Hoyer <harald@redhat.com>
Date: Thu, 26 Jul 2018 13:04:20 +0200
Subject: [PATCH] dracut.spec: Remove needless use of %defattr
---
dracut.spec | 7 -------
1 file changed, 7 deletions(-)
diff --git a/dracut.spec b/dracut.spec
index 754ed3c9..9b9d497a 100644
--- a/dracut.spec
+++ b/dracut.spec
@@ -266,7 +266,6 @@ install -m 0755 51-dracut-rescue-postinst.sh $RPM_BUILD_ROOT%{_sysconfdir}/kerne
%endif
%files
-%defattr(-,root,root,0755)
%if %{with doc}
%doc README HACKING TODO AUTHORS NEWS dracut.html dracut.png dracut.svg
%endif
@@ -407,7 +406,6 @@ install -m 0755 51-dracut-rescue-postinst.sh $RPM_BUILD_ROOT%{_sysconfdir}/kerne
%endif
%files network
-%defattr(-,root,root,0755)
%{dracutlibdir}/modules.d/02systemd-networkd
%{dracutlibdir}/modules.d/40network
%{dracutlibdir}/modules.d/45ifcfg
@@ -426,18 +424,15 @@ install -m 0755 51-dracut-rescue-postinst.sh $RPM_BUILD_ROOT%{_sysconfdir}/kerne
%{dracutlibdir}/modules.d/99uefi-lib
%files caps
-%defattr(-,root,root,0755)
%{dracutlibdir}/modules.d/02caps
%files live
-%defattr(-,root,root,0755)
%{dracutlibdir}/modules.d/99img-lib
%{dracutlibdir}/modules.d/90dmsquash-live
%{dracutlibdir}/modules.d/90dmsquash-live-ntfs
%{dracutlibdir}/modules.d/90livenet
%files tools
-%defattr(-,root,root,0755)
%if %{with doc}
%doc %{_mandir}/man8/dracut-catimages.8*
@@ -449,11 +444,9 @@ install -m 0755 51-dracut-rescue-postinst.sh $RPM_BUILD_ROOT%{_sysconfdir}/kerne
%dir /var/lib/dracut/overlay
%files config-generic
-%defattr(-,root,root,0755)
%{dracutlibdir}/dracut.conf.d/02-generic-image.conf
%files config-rescue
-%defattr(-,root,root,0755)
%{dracutlibdir}/dracut.conf.d/02-rescue.conf
%if 0%{?fedora} || 0%{?rhel}
%{_prefix}/lib/kernel/install.d/51-dracut-rescue.install

View File

@ -1,32 +0,0 @@
From 33782aebbffa005415e1a03deeae837d8cf5665e Mon Sep 17 00:00:00 2001
From: Yu Watanabe <watanabe.yu+github@gmail.com>
Date: Mon, 30 Jul 2018 02:26:01 +0900
Subject: [PATCH] spec: warpclock is not available on s390 or s390x
---
dracut.spec | 3 +++
1 file changed, 3 insertions(+)
diff --git a/dracut.spec b/dracut.spec
index 9b9d497a..ce69fa1f 100644
--- a/dracut.spec
+++ b/dracut.spec
@@ -224,6 +224,7 @@ rm -fr -- $RPM_BUILD_ROOT/%{dracutlibdir}/modules.d/98integrity
%ifnarch s390 s390x
# remove architecture specific modules
+rm -fr -- $RPM_BUILD_ROOT/%{dracutlibdir}/modules.d/00warpclock
rm -fr -- $RPM_BUILD_ROOT/%{dracutlibdir}/modules.d/80cms
rm -fr -- $RPM_BUILD_ROOT/%{dracutlibdir}/modules.d/81cio_ignore
rm -fr -- $RPM_BUILD_ROOT/%{dracutlibdir}/modules.d/91zipl
@@ -316,7 +317,9 @@ install -m 0755 51-dracut-rescue-postinst.sh $RPM_BUILD_ROOT%{_sysconfdir}/kerne
%endif
%{dracutlibdir}/modules.d/00bash
%{dracutlibdir}/modules.d/00systemd
+%ifnarch s390 s390x
%{dracutlibdir}/modules.d/00warpclock
+%endif
%{dracutlibdir}/modules.d/01systemd-initrd
%{dracutlibdir}/modules.d/03modsign
%{dracutlibdir}/modules.d/03rescue

View File

@ -1,45 +0,0 @@
From be98291cafa1080ed18a976c6452ae2be1c7c747 Mon Sep 17 00:00:00 2001
From: Yu Watanabe <watanabe.yu+github@gmail.com>
Date: Mon, 30 Jul 2018 02:26:48 +0900
Subject: [PATCH] spec: sort modules
Also drops remaining %defattr.
---
dracut.spec | 9 +++------
1 file changed, 3 insertions(+), 6 deletions(-)
diff --git a/dracut.spec b/dracut.spec
index ce69fa1f..d24c6f36 100644
--- a/dracut.spec
+++ b/dracut.spec
@@ -320,6 +320,9 @@ install -m 0755 51-dracut-rescue-postinst.sh $RPM_BUILD_ROOT%{_sysconfdir}/kerne
%ifnarch s390 s390x
%{dracutlibdir}/modules.d/00warpclock
%endif
+%if 0%{?fedora} || 0%{?rhel} || 0%{?suse_version}
+%{dracutlibdir}/modules.d/01fips
+%endif
%{dracutlibdir}/modules.d/01systemd-initrd
%{dracutlibdir}/modules.d/03modsign
%{dracutlibdir}/modules.d/03rescue
@@ -403,11 +406,6 @@ install -m 0755 51-dracut-rescue-postinst.sh $RPM_BUILD_ROOT%{_sysconfdir}/kerne
%{_prefix}/lib/kernel/install.d/50-dracut.install
%endif
-%if 0%{?fedora} || 0%{?rhel} || 0%{?suse_version}
-%defattr(-,root,root,0755)
-%{dracutlibdir}/modules.d/01fips
-%endif
-
%files network
%{dracutlibdir}/modules.d/02systemd-networkd
%{dracutlibdir}/modules.d/40network
@@ -436,7 +434,6 @@ install -m 0755 51-dracut-rescue-postinst.sh $RPM_BUILD_ROOT%{_sysconfdir}/kerne
%{dracutlibdir}/modules.d/90livenet
%files tools
-
%if %{with doc}
%doc %{_mandir}/man8/dracut-catimages.8*
%endif

View File

@ -1,34 +0,0 @@
From 99df3d22be14690260371311086a439c83fdc6b4 Mon Sep 17 00:00:00 2001
From: Harald Hoyer <harald@redhat.com>
Date: Thu, 2 Aug 2018 16:32:41 +0200
Subject: [PATCH] mdraid/parse-md.sh: also accept rd.md.uuid with ":"
convert rd.md.uuid=32ef2172:f056:6fa7:66a8:2f7fc8b1798
to udev rules in the correct UUID format 32ef2172-f056-6fa7-66a8-2f7fcf8b1798
---
modules.d/90mdraid/parse-md.sh | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/modules.d/90mdraid/parse-md.sh b/modules.d/90mdraid/parse-md.sh
index c422b24e..428f9515 100755
--- a/modules.d/90mdraid/parse-md.sh
+++ b/modules.d/90mdraid/parse-md.sh
@@ -14,6 +14,9 @@ else
if [ "${line%%UUID CHECK}" != "$line" ]; then
printf 'IMPORT{program}="/sbin/mdadm --examine --export $tempnode"\n'
for uuid in $MD_UUID; do
+ uuid=$(str_replace "$uuid" "-" "")
+ uuid=$(str_replace "$uuid" ":" "")
+ uuid="$(expr substr $uuid 1 8)-$(expr substr $uuid 9 4)-$(expr substr $uuid 13 4)-$(expr substr $uuid 17 4)-$(expr substr $uuid 21 12)"
printf 'ENV{MD_UUID}=="%s", GOTO="md_uuid_ok"\n' $uuid
printf 'ENV{ID_FS_UUID}=="%s", GOTO="md_uuid_ok"\n' $uuid
done;
@@ -29,6 +32,7 @@ else
if strstr "$uuid" "-"; then
# convert ID_FS_UUID to MD_UUID format
uuid=$(str_replace "$uuid" "-" "")
+ uuid=$(str_replace "$uuid" ":" "")
uuid="$(expr substr $uuid 1 8):$(expr substr $uuid 9 8):$(expr substr $uuid 17 8):$(expr substr $uuid 25 8)"
fi
wait_for_dev "/dev/disk/by-id/md-uuid-${uuid}"

View File

@ -1,43 +0,0 @@
From a0c915b1e4585ccf286dd38a5cd7d8b89e0346c5 Mon Sep 17 00:00:00 2001
From: Nicolas Chauvet <kwizart@gmail.com>
Date: Fri, 3 Aug 2018 23:39:51 +0200
Subject: [PATCH] Add gpio and pinctrl drivers for arm*/aarch64
This is needed since few gpio/pinctrl can be built as modules and are
useful on early boot.
One example is jetson-tx1 where sata and external mmc can work only
after loading pinctrl-max77620 and gpio-max77620 modules.
Having theses kind of drivers bundled into the initramfs will also
avoid some deferred probes.
V2: add pinctrl for all arches
Signed-off-by: Nicolas Chauvet <kwizart@gmail.com>
---
modules.d/90kernel-modules/module-setup.sh | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/modules.d/90kernel-modules/module-setup.sh b/modules.d/90kernel-modules/module-setup.sh
index 89b33ce6..f01470e7 100755
--- a/modules.d/90kernel-modules/module-setup.sh
+++ b/modules.d/90kernel-modules/module-setup.sh
@@ -25,7 +25,7 @@ installkernel() {
ohci-hcd ohci-pci \
uhci-hcd \
xhci-hcd xhci-pci xhci-plat-hcd \
- pinctrl-cherryview \
+ "=drivers/pinctrl" \
${NULL}
hostonly=$(optional_hostonly) instmods \
@@ -50,6 +50,7 @@ installkernel() {
"=drivers/clk" \
"=drivers/dma" \
"=drivers/extcon" \
+ "=drivers/gpio" \
"=drivers/hwspinlock" \
"=drivers/i2c/busses" \
"=drivers/mfd" \

View File

@ -1,23 +0,0 @@
From a762dedb60aef8f43a625e1e3c10c97664f1d74a Mon Sep 17 00:00:00 2001
From: Lukas Nykryn <lnykryn@redhat.com>
Date: Thu, 9 Aug 2018 12:14:20 +0200
Subject: [PATCH] dracut-functions: fix the word splitting
---
dracut-functions.sh | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/dracut-functions.sh b/dracut-functions.sh
index 7c408f83..1431dd18 100755
--- a/dracut-functions.sh
+++ b/dracut-functions.sh
@@ -683,7 +683,7 @@ get_loaded_kernel_modules ()
local modules=( )
while read _module _size _used _used_by; do
modules+=( "$_module" )
- done <<< $(lsmod | sed -n '1!p')
+ done <<< "$(lsmod | sed -n '1!p')"
printf '%s\n' "${modules[@]}" | sort
}

View File

@ -1,79 +0,0 @@
From 746135dd1ebc8dc7e26132bfa14ac159db7b2b95 Mon Sep 17 00:00:00 2001
From: Harald Hoyer <harald@redhat.com>
Date: Mon, 13 Aug 2018 10:01:36 +0200
Subject: [PATCH] mdraid: better handling of various UUID formats
---
modules.d/90mdraid/mdraid_start.sh | 4 ++++
modules.d/90mdraid/parse-md.sh | 19 ++++++++-----------
2 files changed, 12 insertions(+), 11 deletions(-)
diff --git a/modules.d/90mdraid/mdraid_start.sh b/modules.d/90mdraid/mdraid_start.sh
index 2f5daff1..77e843d7 100755
--- a/modules.d/90mdraid/mdraid_start.sh
+++ b/modules.d/90mdraid/mdraid_start.sh
@@ -39,6 +39,9 @@ _md_force_run() {
_offroot=$(strstr "$(mdadm --help-options 2>&1)" offroot && echo --offroot)
if [ -n "$_MD_UUID" ]; then
+ _MD_UUID=$(str_replace "$_MD_UUID" "-" "")
+ _MD_UUID=$(str_replace "$_MD_UUID" ":" "")
+
for _md in /dev/md[0-9_]*; do
[ -b "$_md" ] || continue
_UUID=$(
@@ -50,6 +53,7 @@ _md_force_run() {
)
[ -z "$_UUID" ] && continue
+ _UUID=$(str_replace "$_UUID" ":" "")
# check if we should handle this device
strstr " $_MD_UUID " " $_UUID " || continue
diff --git a/modules.d/90mdraid/parse-md.sh b/modules.d/90mdraid/parse-md.sh
index 428f9515..4d9baa52 100755
--- a/modules.d/90mdraid/parse-md.sh
+++ b/modules.d/90mdraid/parse-md.sh
@@ -1,6 +1,9 @@
#!/bin/sh
MD_UUID=$(getargs rd.md.uuid -d rd_MD_UUID=)
+# normalize the uuid
+MD_UUID=$(str_replace "$MD_UUID" "-" "")
+MD_UUID=$(str_replace "$MD_UUID" ":" "")
if ( ! [ -n "$MD_UUID" ] && ! getargbool 0 rd.auto ) || ! getargbool 1 rd.md -d -n rd_NO_MD; then
info "rd.md=0: removing MD RAID activation"
@@ -12,13 +15,12 @@ else
[ -e "$f" ] || continue
while read line || [ -n "$line" ]; do
if [ "${line%%UUID CHECK}" != "$line" ]; then
+ for uuid in $MD_UUID; do
+ printf 'ENV{ID_FS_UUID}=="%s", GOTO="md_uuid_ok"\n' "$(expr substr $uuid 1 8)-$(expr substr $uuid 9 4)-$(expr substr $uuid 13 4)-$(expr substr $uuid 17 4)-$(expr substr $uuid 21 12)"
+ done;
printf 'IMPORT{program}="/sbin/mdadm --examine --export $tempnode"\n'
for uuid in $MD_UUID; do
- uuid=$(str_replace "$uuid" "-" "")
- uuid=$(str_replace "$uuid" ":" "")
- uuid="$(expr substr $uuid 1 8)-$(expr substr $uuid 9 4)-$(expr substr $uuid 13 4)-$(expr substr $uuid 17 4)-$(expr substr $uuid 21 12)"
- printf 'ENV{MD_UUID}=="%s", GOTO="md_uuid_ok"\n' $uuid
- printf 'ENV{ID_FS_UUID}=="%s", GOTO="md_uuid_ok"\n' $uuid
+ printf 'ENV{MD_UUID}=="%s", GOTO="md_uuid_ok"\n' "$(expr substr $uuid 1 8):$(expr substr $uuid 9 8):$(expr substr $uuid 17 8):$(expr substr $uuid 25 8)"
done;
printf 'GOTO="md_end"\n'
printf 'LABEL="md_uuid_ok"\n'
@@ -29,12 +31,7 @@ else
mv "${f}.new" "$f"
done
for uuid in $MD_UUID; do
- if strstr "$uuid" "-"; then
- # convert ID_FS_UUID to MD_UUID format
- uuid=$(str_replace "$uuid" "-" "")
- uuid=$(str_replace "$uuid" ":" "")
- uuid="$(expr substr $uuid 1 8):$(expr substr $uuid 9 8):$(expr substr $uuid 17 8):$(expr substr $uuid 25 8)"
- fi
+ uuid="$(expr substr $uuid 1 8):$(expr substr $uuid 9 8):$(expr substr $uuid 17 8):$(expr substr $uuid 25 8)"
wait_for_dev "/dev/disk/by-id/md-uuid-${uuid}"
done
fi

View File

@ -1,70 +0,0 @@
From 6f0500ed4afa29ae8edc997933d598bc5862b4ce Mon Sep 17 00:00:00 2001
From: Harald Hoyer <harald@redhat.com>
Date: Mon, 13 Aug 2018 10:56:53 +0200
Subject: [PATCH] iscsi: remove $() where it does not fit
also simplify iscsiadm command to one call
---
modules.d/95iscsi/iscsiroot.sh | 33 ++++++++++++++++++---------------
1 file changed, 18 insertions(+), 15 deletions(-)
diff --git a/modules.d/95iscsi/iscsiroot.sh b/modules.d/95iscsi/iscsiroot.sh
index 5ac0ad9a..76c8b3fe 100755
--- a/modules.d/95iscsi/iscsiroot.sh
+++ b/modules.d/95iscsi/iscsiroot.sh
@@ -109,7 +109,7 @@ handle_netroot()
arg=$(getarg rd.iscsi.in.password -d iscsi_in_password=)
[ -n "$arg" ] && iscsi_in_password=$arg
for p in $(getargs rd.iscsi.param -d iscsi_param); do
- iscsi_param="$iscsi_param $p"
+ iscsi_param="$iscsi_param $p"
done
parse_iscsi_root "$1" || return 1
@@ -208,28 +208,31 @@ handle_netroot()
echo "iscsi_lun=$iscsi_lun . /bin/mount-lun.sh " > $hookdir/mount/01-$$-iscsi.sh
fi
- ### ToDo: Upstream calls systemd-run - Shall we, do we have to port this?
-
targets=$(iscsiadm -m discovery -t st -p $iscsi_target_ip:${iscsi_target_port:+$iscsi_target_port} | sed 's/^.*iqn/iqn/')
[ -z "$targets" ] && echo "Target discovery to $iscsi_target_ip:${iscsi_target_port:+$iscsi_target_port} failed with status $?" && exit 1
for target in $iscsi_target_name; do
case "$targets" in
*$target*)
+ EXTRA=""
if [ -n "$iscsi_iface_name" ]; then
- $(iscsiadm -m iface -I $iscsi_iface_name --op=new)
- [ -n "$iscsi_initiator" ] && $(iscsiadm -m iface -I $iscsi_iface_name --op=update --name=iface.initiatorname --value=$iscsi_initiator)
- [ -n "$iscsi_netdev_name" ] && $(iscsiadm -m iface -I $iscsi_iface_name --op=update --name=iface.net_ifacename --value=$iscsi_netdev_name)
- COMMAND="iscsiadm -m node -T $target -p $iscsi_target_ip${iscsi_target_port:+:$iscsi_target_port} -I $iscsi_iface_name --op=update"
- else
- COMMAND="iscsiadm -m node -T $target -p $iscsi_target_ip${iscsi_target_port:+:$iscsi_target_port} --op=update"
+ iscsiadm -m iface -I $iscsi_iface_name --op=new
+ EXTRA=" ${iscsi_netdev_name:+--name=iface.net_ifacename --value=$iscsi_netdev_name} "
+ EXTRA="$EXTRA ${iscsi_initiator:+--name=iface.initiatorname --value=$iscsi_initiator} "
fi
- $($COMMAND --name=node.startup --value=onboot)
- [ -n "$iscsi_username" ] && $($COMMAND --name=node.session.auth.username --value=$iscsi_username)
- [ -n "$iscsi_password" ] && $($COMMAND --name=node.session.auth.password --value=$iscsi_password)
- [ -n "$iscsi_in_username" ] && $($COMMAND --name=node.session.auth.username_in --value=$iscsi_in_username)
- [ -n "$iscsi_in_password" ] && $($COMMAND --name=node.session.auth.password_in --value=$iscsi_in_password)
- [ -n "$iscsi_param" ] && for param in $iscsi_param; do $($COMMAND --name=${param%=*} --value=${param#*=}); done
+ [ -n "$iscsi_param" ] && for param in $iscsi_param; do EXTRA="$EXTRA --name=${param%=*} --value=${param#*=}"; done
+
+ iscsiadm -m node -T $target \
+ ${iscsi_iface_name:+-I $iscsi_iface_name} \
+ -p $iscsi_target_ip${iscsi_target_port:+:$iscsi_target_port} \
+ --op=update \
+ --name=node.startup --value=onboot \
+ ${iscsi_username:+ --name=node.session.auth.username --value=$iscsi_username} \
+ ${iscsi_password:+ --name=node.session.auth.password --value=$iscsi_password} \
+ ${iscsi_in_username:+--name=node.session.auth.username_in --value=$iscsi_in_username} \
+ ${iscsi_in_password:+--name=node.session.auth.password_in --value=$iscsi_in_password} \
+ $EXTRA \
+ $NULL
;;
*)
;;

View File

@ -1,32 +0,0 @@
From 0a80cda0ea1186bb3b384158aeda491443ae93ff Mon Sep 17 00:00:00 2001
From: Harald Hoyer <harald@redhat.com>
Date: Mon, 13 Aug 2018 11:30:03 +0200
Subject: [PATCH] dracut.spec: remove warpclock from z-series, not the other
way round
---
dracut.spec | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/dracut.spec b/dracut.spec
index d24c6f36..09c74478 100644
--- a/dracut.spec
+++ b/dracut.spec
@@ -224,7 +224,6 @@ rm -fr -- $RPM_BUILD_ROOT/%{dracutlibdir}/modules.d/98integrity
%ifnarch s390 s390x
# remove architecture specific modules
-rm -fr -- $RPM_BUILD_ROOT/%{dracutlibdir}/modules.d/00warpclock
rm -fr -- $RPM_BUILD_ROOT/%{dracutlibdir}/modules.d/80cms
rm -fr -- $RPM_BUILD_ROOT/%{dracutlibdir}/modules.d/81cio_ignore
rm -fr -- $RPM_BUILD_ROOT/%{dracutlibdir}/modules.d/91zipl
@@ -236,6 +235,8 @@ rm -fr -- $RPM_BUILD_ROOT/%{dracutlibdir}/modules.d/95qeth_rules
rm -fr -- $RPM_BUILD_ROOT/%{dracutlibdir}/modules.d/95zfcp
rm -fr -- $RPM_BUILD_ROOT/%{dracutlibdir}/modules.d/95zfcp_rules
rm -fr -- $RPM_BUILD_ROOT/%{dracutlibdir}/modules.d/95znet
+%else
+rm -fr -- $RPM_BUILD_ROOT/%{dracutlibdir}/modules.d/00warpclock
%endif
mkdir -p $RPM_BUILD_ROOT/boot/dracut

View File

@ -1,24 +0,0 @@
From 26aea0299a7ec702972cbf8b5556731b762dcde9 Mon Sep 17 00:00:00 2001
From: Harald Hoyer <harald@redhat.com>
Date: Mon, 13 Aug 2018 11:37:44 +0200
Subject: [PATCH] multipath-shutdown: fix shell syntax
seems like a misplaced $()
---
modules.d/90multipath/multipath-shutdown.sh | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/modules.d/90multipath/multipath-shutdown.sh b/modules.d/90multipath/multipath-shutdown.sh
index 47e9990c..f160f45e 100755
--- a/modules.d/90multipath/multipath-shutdown.sh
+++ b/modules.d/90multipath/multipath-shutdown.sh
@@ -1,7 +1,7 @@
#!/bin/bash
for i in $(multipath -l -v1); do
- if ! $(dmsetup table $i | sed -n '/.*queue_if_no_path.*/q1') ; then
+ if ! dmsetup table $i | sed -n '/.*queue_if_no_path.*/q1' ; then
dmsetup message $i 0 fail_if_no_path
fi
done

View File

@ -1,150 +0,0 @@
From 6058b06b86ce1a505a640c78896eae32768077c1 Mon Sep 17 00:00:00 2001
From: Harald Hoyer <harald@redhat.com>
Date: Mon, 13 Aug 2018 16:27:59 +0200
Subject: [PATCH] test/{TEST-50-MULTINIC,TEST-70-BONDBRIDGETEAMVLAN}: use
qemu-3.0 syntax
use qemu-3.0 syntax for network devices
---
test/TEST-50-MULTINIC/test.sh | 20 +++++-----
test/TEST-70-BONDBRIDGETEAMVLAN/server-init.sh | 4 ++
test/TEST-70-BONDBRIDGETEAMVLAN/test.sh | 53 ++++++++++++++------------
3 files changed, 43 insertions(+), 34 deletions(-)
diff --git a/test/TEST-50-MULTINIC/test.sh b/test/TEST-50-MULTINIC/test.sh
index 7c108aa0..de40790f 100755
--- a/test/TEST-50-MULTINIC/test.sh
+++ b/test/TEST-50-MULTINIC/test.sh
@@ -51,15 +51,17 @@ client_test() {
fi
$testdir/run-qemu -drive format=raw,index=0,media=disk,file="$TESTDIR"/client.img -m 512M -smp 2 -nographic \
- -net socket,vlan=0,connect=127.0.0.1:12350 \
- -net nic,vlan=0,macaddr=52:54:00:12:34:$mac1,model=e1000 \
- -net nic,vlan=0,macaddr=52:54:00:12:34:$mac2,model=e1000 \
- -net nic,vlan=0,macaddr=52:54:00:12:34:$mac3,model=e1000 \
- -net nic,vlan=1,macaddr=52:54:00:12:34:98,model=e1000 \
- -net nic,vlan=2,macaddr=52:54:00:12:34:99,model=e1000 \
- -watchdog i6300esb -watchdog-action poweroff \
- -no-reboot \
- -append "panic=1 rd.shell=0 $cmdline $DEBUGFAIL rd.retry=5 ro console=ttyS0,115200n81 selinux=0 init=/sbin/init rd.debug systemd.log_target=console loglevel=7" \
+ -net socket,connect=127.0.0.1:12350 \
+ -net nic,macaddr=52:54:00:12:34:$mac1,model=e1000 \
+ -net nic,macaddr=52:54:00:12:34:$mac2,model=e1000 \
+ -net nic,macaddr=52:54:00:12:34:$mac3,model=e1000 \
+ -netdev hubport,id=n1,hubid=1 \
+ -netdev hubport,id=n2,hubid=2 \
+ --device e1000,netdev=n1,mac=52:54:00:12:34:98 \
+ -device e1000,netdev=n2,mac=52:54:00:12:34:99 \
+ -watchdog i6300esb -watchdog-action poweroff \
+ -no-reboot \
+ -append "panic=1 rd.shell=0 $cmdline $DEBUGFAIL rd.retry=5 ro console=ttyS0,115200n81 selinux=0 init=/sbin/init rd.debug systemd.log_target=console loglevel=7" \
-initrd "$TESTDIR"/initramfs.testing
{ read OK; read IFACES; } < "$TESTDIR"/client.img
diff --git a/test/TEST-70-BONDBRIDGETEAMVLAN/server-init.sh b/test/TEST-70-BONDBRIDGETEAMVLAN/server-init.sh
index 562feae6..503ed9ed 100755
--- a/test/TEST-70-BONDBRIDGETEAMVLAN/server-init.sh
+++ b/test/TEST-70-BONDBRIDGETEAMVLAN/server-init.sh
@@ -67,6 +67,10 @@ 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 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
diff --git a/test/TEST-70-BONDBRIDGETEAMVLAN/test.sh b/test/TEST-70-BONDBRIDGETEAMVLAN/test.sh
index 277bbd01..eadf09f1 100755
--- a/test/TEST-70-BONDBRIDGETEAMVLAN/test.sh
+++ b/test/TEST-70-BONDBRIDGETEAMVLAN/test.sh
@@ -18,14 +18,14 @@ run_server() {
-hda "$TESTDIR"/server.ext3 \
-m 512M -smp 2 \
-display none \
- -net socket,vlan=0,listen=127.0.0.1:12370 \
- -net socket,vlan=1,listen=127.0.0.1:12371 \
- -net socket,vlan=2,listen=127.0.0.1:12372 \
- -net socket,vlan=3,listen=127.0.0.1:12373 \
- -net nic,vlan=0,macaddr=52:54:01:12:34:56,model=e1000 \
- -net nic,vlan=1,macaddr=52:54:01:12:34:57,model=e1000 \
- -net nic,vlan=2,macaddr=52:54:01:12:34:58,model=e1000 \
- -net nic,vlan=3,macaddr=52:54:01:12:34:59,model=e1000 \
+ -netdev socket,id=n0,listen=127.0.0.1:12370 \
+ -netdev socket,id=n1,listen=127.0.0.1:12371 \
+ -netdev socket,id=n2,listen=127.0.0.1:12372 \
+ -netdev socket,id=n3,listen=127.0.0.1:12373 \
+ -device e1000,netdev=n0,mac=52:54:01:12:34:56 \
+ -device e1000,netdev=n1,mac=52:54:01:12:34:57 \
+ -device e1000,netdev=n2,mac=52:54:01:12:34:58 \
+ -device e1000,netdev=n3,mac=52:54:01:12:34:59 \
${SERIAL:+-serial "$SERIAL"} \
${SERIAL:--serial file:"$TESTDIR"/server.log} \
-watchdog i6300esb -watchdog-action poweroff \
@@ -58,22 +58,25 @@ client_test() {
echo "Unable to make client sda image" 1>&2
return 1
fi
+ if [[ $do_vlan13 ]]; then
+ nic1=" -netdev socket,connect=127.0.0.1:12371,id=n1"
+ nic3=" -netdev socket,connect=127.0.0.1:12373,id=n3"
+ else
+ nic1=" -netdev hubport,id=n1,hubid=2"
+ nic3=" -netdev hubport,id=n3,hubid=3"
+ fi
$testdir/run-qemu -hda "$TESTDIR"/client.img -m 512M -smp 2 -nographic \
- -net socket,vlan=0,connect=127.0.0.1:12370 \
- ${do_vlan13:+-net socket,vlan=1,connect=127.0.0.1:12371} \
- -net socket,vlan=2,connect=127.0.0.1:12372 \
- ${do_vlan13:+-net socket,vlan=3,connect=127.0.0.1:12373} \
- -net nic,vlan=0,macaddr=52:54:00:12:34:01,model=e1000 \
- -net nic,vlan=0,macaddr=52:54:00:12:34:02,model=e1000 \
- -net nic,vlan=1,macaddr=52:54:00:12:34:03,model=e1000 \
- -net nic,vlan=2,macaddr=52:54:00:12:34:04,model=e1000 \
- -net nic,vlan=3,macaddr=52:54:00:12:34:05,model=e1000 \
+ -netdev socket,connect=127.0.0.1:12370,id=s1 -netdev hubport,hubid=1,id=h1,netdev=s1 \
+ -netdev hubport,hubid=1,id=h2 -device e1000,mac=52:54:00:12:34:01,netdev=h2 \
+ -netdev hubport,hubid=1,id=h3 -device e1000,mac=52:54:00:12:34:02,netdev=h3 \
+ $nic1 -device e1000,mac=52:54:00:12:34:03,netdev=n1 \
+ -netdev socket,connect=127.0.0.1:12372,id=n2 -device e1000,mac=52:54:00:12:34:04,netdev=n2 \
+ $nic3 -device e1000,mac=52:54:00:12:34:05,netdev=n3 \
-watchdog i6300esb -watchdog-action poweroff \
-no-reboot \
-append "panic=1 $cmdline rd.debug $DEBUGFAIL rd.retry=5 rw console=ttyS0,115200n81 selinux=0 init=/sbin/init" \
-initrd "$TESTDIR"/initramfs.testing
-
{
read OK
if [[ "$OK" != "OK" ]]; then
@@ -113,19 +116,19 @@ test_client() {
client_test "Multiple VLAN" \
"yes" \
"
-vlan=vlan0001:ens4
-vlan=vlan2:ens4
-vlan=ens4.3:ens4
-vlan=ens4.0004:ens4
+vlan=vlan0001:ens5
+vlan=vlan2:ens5
+vlan=ens5.3:ens5
+vlan=ens5.0004:ens5
ip=ens3:dhcp
ip=192.168.54.101::192.168.54.1:24:test:vlan0001:none
ip=192.168.55.102::192.168.55.1:24:test:vlan2:none
-ip=192.168.56.103::192.168.56.1:24:test:ens4.3:none
-ip=192.168.57.104::192.168.57.1:24:test:ens4.0004:none
+ip=192.168.56.103::192.168.56.1:24:test:ens5.3:none
+ip=192.168.57.104::192.168.57.1:24:test:ens5.0004:none
rd.neednet=1
root=nfs:192.168.50.1:/nfs/client bootdev=ens3
" \
- 'ens3 ens4.0004 ens4.3 vlan0001 vlan2 /run/initramfs/state/etc/sysconfig/network-scripts/ifcfg-ens3 # Generated by dracut initrd NAME="ens3" DEVICE="ens3" ONBOOT=yes NETBOOT=yes IPV6INIT=yes BOOTPROTO=dhcp TYPE=Ethernet /run/initramfs/state/etc/sysconfig/network-scripts/ifcfg-ens4.0004 # Generated by dracut initrd NAME="ens4.0004" ONBOOT=yes NETBOOT=yes BOOTPROTO=none IPADDR="192.168.57.104" PREFIX="24" GATEWAY="192.168.57.1" TYPE=Vlan DEVICE="ens4.0004" VLAN=yes PHYSDEV="ens4" /run/initramfs/state/etc/sysconfig/network-scripts/ifcfg-ens4.3 # Generated by dracut initrd NAME="ens4.3" ONBOOT=yes NETBOOT=yes BOOTPROTO=none IPADDR="192.168.56.103" PREFIX="24" GATEWAY="192.168.56.1" TYPE=Vlan DEVICE="ens4.3" VLAN=yes PHYSDEV="ens4" /run/initramfs/state/etc/sysconfig/network-scripts/ifcfg-vlan0001 # Generated by dracut initrd NAME="vlan0001" ONBOOT=yes NETBOOT=yes BOOTPROTO=none IPADDR="192.168.54.101" PREFIX="24" GATEWAY="192.168.54.1" TYPE=Vlan DEVICE="vlan0001" VLAN=yes PHYSDEV="ens4" /run/initramfs/state/etc/sysconfig/network-scripts/ifcfg-vlan2 # Generated by dracut initrd NAME="vlan2" ONBOOT=yes NETBOOT=yes BOOTPROTO=none IPADDR="192.168.55.102" PREFIX="24" GATEWAY="192.168.55.1" TYPE=Vlan DEVICE="vlan2" VLAN=yes PHYSDEV="ens4" EOF ' \
+ 'ens3 ens5.0004 ens5.3 vlan0001 vlan2 /run/initramfs/state/etc/sysconfig/network-scripts/ifcfg-ens3 # Generated by dracut initrd NAME="ens3" DEVICE="ens3" ONBOOT=yes NETBOOT=yes IPV6INIT=yes BOOTPROTO=dhcp TYPE=Ethernet /run/initramfs/state/etc/sysconfig/network-scripts/ifcfg-ens5.0004 # Generated by dracut initrd NAME="ens5.0004" ONBOOT=yes NETBOOT=yes BOOTPROTO=none IPADDR="192.168.57.104" PREFIX="24" GATEWAY="192.168.57.1" TYPE=Vlan DEVICE="ens5.0004" VLAN=yes PHYSDEV="ens5" /run/initramfs/state/etc/sysconfig/network-scripts/ifcfg-ens5.3 # Generated by dracut initrd NAME="ens5.3" ONBOOT=yes NETBOOT=yes BOOTPROTO=none IPADDR="192.168.56.103" PREFIX="24" GATEWAY="192.168.56.1" TYPE=Vlan DEVICE="ens5.3" VLAN=yes PHYSDEV="ens5" /run/initramfs/state/etc/sysconfig/network-scripts/ifcfg-vlan0001 # Generated by dracut initrd NAME="vlan0001" ONBOOT=yes NETBOOT=yes BOOTPROTO=none IPADDR="192.168.54.101" PREFIX="24" GATEWAY="192.168.54.1" TYPE=Vlan DEVICE="vlan0001" VLAN=yes PHYSDEV="ens5" /run/initramfs/state/etc/sysconfig/network-scripts/ifcfg-vlan2 # Generated by dracut initrd NAME="vlan2" ONBOOT=yes NETBOOT=yes BOOTPROTO=none IPADDR="192.168.55.102" PREFIX="24" GATEWAY="192.168.55.1" TYPE=Vlan DEVICE="vlan2" VLAN=yes PHYSDEV="ens5" EOF ' \
|| return 1
client_test "Multiple Bonds" \

View File

@ -1,48 +0,0 @@
From ab94a204e0cb22bcaa2b2863dee9ffb9f22e91c5 Mon Sep 17 00:00:00 2001
From: Harald Hoyer <harald@redhat.com>
Date: Tue, 14 Aug 2018 11:03:11 +0200
Subject: [PATCH] load modules earlier for iscsi via dhcp root-path
---
modules.d/95iscsi/parse-iscsiroot.sh | 15 +++++++--------
1 file changed, 7 insertions(+), 8 deletions(-)
diff --git a/modules.d/95iscsi/parse-iscsiroot.sh b/modules.d/95iscsi/parse-iscsiroot.sh
index f884e684..7a64d888 100755
--- a/modules.d/95iscsi/parse-iscsiroot.sh
+++ b/modules.d/95iscsi/parse-iscsiroot.sh
@@ -90,19 +90,13 @@ if [ -n "$iscsi_firmware" ]; then
initqueue --unique --onetime --settled /sbin/iscsiroot online "iscsi:" "'$NEWROOT'"
fi
-if [ -z "$netroot" ] || ! [ "${netroot%%:*}" = "iscsi" ]; then
- return 1
-fi
-
-initqueue --unique --onetime --timeout /sbin/iscsiroot timeout "$netroot" "$NEWROOT"
-
-initqueue --onetime modprobe --all -b -q qla4xxx cxgb3i cxgb4i bnx2i be2iscsi qedi
-
# ISCSI actually supported?
if ! [ -e /sys/module/iscsi_tcp ]; then
modprobe -b -q iscsi_tcp || die "iscsiroot requested but kernel/initrd does not support iscsi"
fi
+modprobe --all -b -q qla4xxx cxgb3i cxgb4i bnx2i be2iscsi
+
if [ -n "$netroot" ] && [ "$root" != "/dev/root" ] && [ "$root" != "dhcp" ]; then
if ! getargbool 1 rd.neednet >/dev/null || ! getarg "ip="; then
initqueue --unique --onetime --settled /sbin/iscsiroot dummy "'$netroot'" "'$NEWROOT'"
@@ -141,6 +135,11 @@ if [ -z $iscsi_initiator ] && [ -f /sys/firmware/ibft/initiator/initiator-name ]
fi
fi
+if [ -z "$netroot" ] || ! [ "${netroot%%:*}" = "iscsi" ]; then
+ return 1
+fi
+
+initqueue --unique --onetime --timeout /sbin/iscsiroot timeout "$netroot" "$NEWROOT"
for nroot in $(getargs netroot); do
[ "${nroot%%:*}" = "iscsi" ] || continue

View File

@ -1,32 +0,0 @@
From ffbd37d7844b96611506eb4631a3e4f3b5e74c86 Mon Sep 17 00:00:00 2001
From: Harald Hoyer <harald@redhat.com>
Date: Tue, 14 Aug 2018 11:03:48 +0200
Subject: [PATCH] TEST-31-ISCSI-MULTI: use different port than TEST-30
---
test/TEST-31-ISCSI-MULTI/test.sh | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/test/TEST-31-ISCSI-MULTI/test.sh b/test/TEST-31-ISCSI-MULTI/test.sh
index 2f2b6ed5..c2f86ac8 100755
--- a/test/TEST-31-ISCSI-MULTI/test.sh
+++ b/test/TEST-31-ISCSI-MULTI/test.sh
@@ -24,7 +24,7 @@ run_server() {
${SERIAL:--serial file:"$TESTDIR"/server.log} \
-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 \
+ -net socket,listen=127.0.0.1:12331 \
-no-reboot \
-append "panic=1 root=/dev/sda rootfstype=ext3 rw console=ttyS0,115200n81 selinux=0 $SERVER_DEBUG" \
-initrd $TESTDIR/initramfs.server \
@@ -49,7 +49,7 @@ run_client() {
-m 512M -smp 2 -nographic \
-net nic,macaddr=52:54:00:12:34:00,model=e1000 \
-net nic,macaddr=52:54:00:12:34:01,model=e1000 \
- -net socket,connect=127.0.0.1:12330 \
+ -net socket,connect=127.0.0.1:12331 \
-no-reboot \
-append "panic=1 rw rd.auto rd.retry=50 console=ttyS0,115200n81 selinux=0 rd.debug=0 rd.shell=0 $DEBUGFAIL $*" \
-initrd $TESTDIR/initramfs.testing

View File

@ -1,231 +0,0 @@
From 82fe4ea0a5a745c920aa396775b9ebb52b4d2927 Mon Sep 17 00:00:00 2001
From: Harald Hoyer <harald@redhat.com>
Date: Tue, 14 Aug 2018 11:04:17 +0200
Subject: [PATCH] enable parallel test suite
$ time sudo make -j SKIP=14 V=2 check
make[1]: Entering directory '/home/harald/git/dracut/test/TEST-13-ENC-RAID-LVM'
make[1]: Entering directory '/home/harald/git/dracut/test/TEST-40-NBD'
make[1]: Entering directory '/home/harald/git/dracut/test/TEST-04-FULL-SYSTEMD'
make[1]: Entering directory '/home/harald/git/dracut/test/TEST-12-RAID-DEG'
make[1]: Entering directory '/home/harald/git/dracut/test/TEST-15-BTRFSRAID'
make[1]: Entering directory '/home/harald/git/dracut/test/TEST-16-DMSQUASH'
make[1]: Entering directory '/home/harald/git/dracut/test/TEST-17-LVM-THIN'
make[1]: Entering directory '/home/harald/git/dracut/test/TEST-11-LVM'
make[1]: Entering directory '/home/harald/git/dracut/test/TEST-31-ISCSI-MULTI'
make[1]: Entering directory '/home/harald/git/dracut/test/TEST-20-NFS'
make[1]: Entering directory '/home/harald/git/dracut/test/TEST-99-RPM'
make[1]: Entering directory '/home/harald/git/dracut/test/TEST-02-SYSTEMD'
make[1]: Entering directory '/home/harald/git/dracut/test/TEST-30-ISCSI'
make[1]: Entering directory '/home/harald/git/dracut/test/TEST-01-BASIC'
make[1]: Entering directory '/home/harald/git/dracut/test/TEST-03-USR-MOUNT'
make[1]: Entering directory '/home/harald/git/dracut/test/TEST-70-BONDBRIDGETEAMVLAN'
make[1]: Entering directory '/home/harald/git/dracut/test/TEST-50-MULTINIC'
make[1]: Entering directory '/home/harald/git/dracut/test/TEST-10-RAID'
make[1]: Entering directory '/home/harald/git/dracut/test/TEST-18-LVM-ENC-LV'
TEST: root filesystem on an encrypted LVM PV on a degraded RAID-5 [STARTED]
TEST: root filesystem on NBD [STARTED]
TEST: root filesystem on NBD [SKIPPED]
TEST: Full systemd serialization/deserialization test with /usr mount [STARTED]
TEST: root filesystem on multiple device btrfs [STARTED]
make[1]: Leaving directory '/home/harald/git/dracut/test/TEST-40-NBD'
TEST: root filesystem on a LiveCD dmsquash filesystem [STARTED]
TEST: root filesystem on a LiveCD dmsquash filesystem [SKIPPED]
make[1]: Leaving directory '/home/harald/git/dracut/test/TEST-16-DMSQUASH'
TEST: root filesystem on LVM on encrypted partitions of a RAID-5 [STARTED]
TEST: root filesystem on LVM PV [STARTED]
TEST: rpm integrity after dracut and kernel install [STARTED]
TEST: root filesystem on NFS [STARTED]
TEST: root filesystem over iSCSI [STARTED]
TEST: root filesystem on LVM PV with thin pool [STARTED]
TEST: root filesystem over iSCSI [STARTED]
TEST: root filesystem on a ext3 filesystem [STARTED]
TEST: root filesystem on a ext3 filesystem [STARTED]
TEST: root filesystem on a btrfs filesystem with /usr subvolume [STARTED]
TEST: root filesystem on NFS with bridging/bonding/vlan [STARTED]
TEST: root filesystem on NFS with multiple nics [STARTED]
TEST: root filesystem on an encrypted LVM PV on a RAID-5 [STARTED]
TEST: root filesystem on LVM on encrypted partitions of a RAID-5 [STARTED]
TEST: root filesystem on LVM PV [OK]
make[1]: Leaving directory '/home/harald/git/dracut/test/TEST-11-LVM'
TEST: root filesystem on multiple device btrfs [OK]
make[1]: Leaving directory '/home/harald/git/dracut/test/TEST-15-BTRFSRAID'
TEST: root filesystem on LVM PV with thin pool [OK]
make[1]: Leaving directory '/home/harald/git/dracut/test/TEST-17-LVM-THIN'
TEST: root filesystem on a ext3 filesystem [OK]
make[1]: Leaving directory '/home/harald/git/dracut/test/TEST-02-SYSTEMD'
TEST: root filesystem on a btrfs filesystem with /usr subvolume [OK]
make[1]: Leaving directory '/home/harald/git/dracut/test/TEST-03-USR-MOUNT'
TEST: root filesystem on LVM on encrypted partitions of a RAID-5 [OK]
make[1]: Leaving directory '/home/harald/git/dracut/test/TEST-18-LVM-ENC-LV'
TEST: Full systemd serialization/deserialization test with /usr mount [OK]
make[1]: Leaving directory '/home/harald/git/dracut/test/TEST-04-FULL-SYSTEMD'
TEST: root filesystem on an encrypted LVM PV on a RAID-5 [OK]
make[1]: Leaving directory '/home/harald/git/dracut/test/TEST-10-RAID'
TEST: root filesystem on LVM on encrypted partitions of a RAID-5 [OK]
make[1]: Leaving directory '/home/harald/git/dracut/test/TEST-13-ENC-RAID-LVM'
TEST: root filesystem over iSCSI [OK]
make[1]: Leaving directory '/home/harald/git/dracut/test/TEST-30-ISCSI'
TEST: root filesystem on a ext3 filesystem [OK]
make[1]: Leaving directory '/home/harald/git/dracut/test/TEST-01-BASIC'
TEST: root filesystem over iSCSI [OK]
make[1]: Leaving directory '/home/harald/git/dracut/test/TEST-31-ISCSI-MULTI'
TEST: rpm integrity after dracut and kernel install [OK]
make[1]: Leaving directory '/home/harald/git/dracut/test/TEST-99-RPM'
TEST: root filesystem on NFS [OK]
make[1]: Leaving directory '/home/harald/git/dracut/test/TEST-20-NFS'
TEST: root filesystem on NFS with bridging/bonding/vlan [OK]
make[1]: Leaving directory '/home/harald/git/dracut/test/TEST-70-BONDBRIDGETEAMVLAN'
TEST: root filesystem on an encrypted LVM PV on a degraded RAID-5 [OK]
make[1]: Leaving directory '/home/harald/git/dracut/test/TEST-12-RAID-DEG'
TEST: root filesystem on NFS with multiple nics [OK]
make[1]: Leaving directory '/home/harald/git/dracut/test/TEST-50-MULTINIC'
real 9m3,969s
user 22m50,323s
sys 5m24,411s
---
test/Makefile | 21 +++++++++--------
test/test-functions | 68 ++++++++++++++++++++++++++++-------------------------
2 files changed, 47 insertions(+), 42 deletions(-)
diff --git a/test/Makefile b/test/Makefile
index eaa944fb..0b33660b 100644
--- a/test/Makefile
+++ b/test/Makefile
@@ -1,15 +1,16 @@
-.PHONY: all check clean
+.PHONY: all check clean $(wildcard TEST-??-*)
-check:
+$(wildcard TEST-??-*):
@[ "$$EUID" == "0" ] || { echo "'check' must be run as root! Please use 'sudo'."; exit 1; }
- @{ ret=0; \
- for i in TEST-[0-9]*; do \
- [ -d $$i ] || continue ; \
- [ -f $$i/Makefile ] || continue ; \
- if [ -n "$$TESTS" ]; then t=$${i##TEST-}; t=$${t%%-*}; [ "$${TESTS#*$$t*}" != "$$TESTS" ] || continue; fi; \
- if [ -n "$$SKIP" ]; then t=$${i##TEST-}; t=$${t%%-*}; [ "$${SKIP#*$$t*}" != "$$SKIP" ] && continue; fi; \
- $(MAKE) -C $$i all ; ret=$$((ret + $$?)); \
- done; exit $$ret; }
+ @{ \
+ [ -d $@ ] || exit 0; \
+ [ -f $@/Makefile ] || exit 0; \
+ if [ -n "$$TESTS" ]; then t=$${$@##TEST-}; t=$${t%%-*}; [ "$${TESTS#*$$t*}" != "$$TESTS" ] || exit 0; fi; \
+ if [ -n "$$SKIP" ]; then t=$${$@##TEST-}; t=$${t%%-*}; [ "$${SKIP#*$$t*}" != "$$SKIP" ] && exit 0; fi; \
+ $(MAKE) -C $@ all ; \
+ }
+
+check: $(wildcard TEST-??-*)
clean:
@for i in TEST-[0-9]*; do \
diff --git a/test/test-functions b/test/test-functions
index 2b8a4d26..57611ff5 100644
--- a/test/test-functions
+++ b/test/test-functions
@@ -4,14 +4,14 @@ export PATH
[[ -e .testdir ]] && . .testdir
if [[ -z "$TESTDIR" ]] || [[ ! -d "$TESTDIR" ]]; then
- TESTDIR=$(mktemp -d -p "/var/tmp" -t dracut-test.XXXXXX)
+ TESTDIR=$(mktemp -d -p "/var/tmp" -t dracut-test.XXXXXX)
fi
echo "TESTDIR=\"$TESTDIR\"" > .testdir
export TESTDIR
command -v test_check &>/dev/null || test_check() {
- :
-}
+ :
+ }
# terminal sequence to set color to a 'success' color (currently: green)
function SETCOLOR_SUCCESS() { echo -en '\033[0;32m'; }
@@ -22,6 +22,11 @@ function SETCOLOR_WARNING() { echo -en '\033[0;33m'; }
# terminal sequence to reset to the default color.
function SETCOLOR_NORMAL() { echo -en '\033[0;39m'; }
+COLOR_SUCCESS='\033[0;32m'
+COLOR_FAILURE='\033[0;31m'
+COLOR_WARNING='\033[0;33m'
+COLOR_NORMAL='\033[0;39m'
+
check_root() {
if (( $EUID != 0 )); then
SETCOLOR_FAILURE; echo "Tests must be run as root! Please use 'sudo'."; SETCOLOR_NORMAL
@@ -49,45 +54,44 @@ while (($# > 0)); do
exit $?;;
--all)
check_root
- echo -n "TEST: $TEST_DESCRIPTION ";
if ! test_check 2&>test.log ; then
- SETCOLOR_WARNING
- echo "[SKIPPED]"
- SETCOLOR_NORMAL
+ echo -e "TEST: $TEST_DESCRIPTION " $COLOR_WARNING "[SKIPPED]" $COLOR_NORMAL
exit 0;
+ else
+ echo "TEST: $TEST_DESCRIPTION [STARTED]";
fi
if [ "$V" != "1" ]; then
- (
- test_setup && test_run
- ret=$?
- test_cleanup
- rm -fr -- "$TESTDIR"
- rm -f -- .testdir
- exit $ret
- ) </dev/null >test.log 2>&1
+ (
+ test_setup && test_run
+ ret=$?
+ test_cleanup
+ rm -fr -- "$TESTDIR"
+ rm -f -- .testdir
+ exit $ret
+ ) </dev/null >test.log 2>&1
else
- set -o pipefail
- (
- test_setup && test_run
- ret=$?
- test_cleanup
- rm -fr -- "$TESTDIR"
- rm -f -- .testdir
- exit $ret
- ) </dev/null 2>&1 | tee test.log
+ set -o pipefail
+ (
+ test_setup && test_run
+ ret=$?
+ test_cleanup
+ rm -fr -- "$TESTDIR"
+ rm -f -- .testdir
+ exit $ret
+ ) </dev/null 2>&1 | tee test.log
fi
ret=$?
set +o pipefail
if [ $ret -eq 0 ]; then
- rm -- test.log
- SETCOLOR_SUCCESS
- echo "[OK]"
- SETCOLOR_NORMAL
+ rm -- test.log
+ echo -e "TEST: $TEST_DESCRIPTION " $COLOR_SUCCESS "[OK]" $COLOR_NORMAL
else
- SETCOLOR_FAILURE
- echo "[FAILED]"
- SETCOLOR_NORMAL
- echo "see $(pwd)/test.log"
+ echo -e "TEST: $TEST_DESCRIPTION " $COLOR_FAILURE "[FAILED]" $COLOR_NORMAL
+ if [ "$V" == "2" ]; then
+ cat $(pwd)/test.log
+ else
+ echo "see $(pwd)/test.log"
+ fi
fi
exit $ret;;
*) break ;;

View File

@ -1,23 +0,0 @@
From 393da0c370deaea03b7f72a35782fde506526a49 Mon Sep 17 00:00:00 2001
From: Harald Hoyer <harald@redhat.com>
Date: Tue, 14 Aug 2018 11:35:26 +0200
Subject: [PATCH] TEST-50-MULTINIC: s/--device/-device
---
test/TEST-50-MULTINIC/test.sh | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/test/TEST-50-MULTINIC/test.sh b/test/TEST-50-MULTINIC/test.sh
index de40790f..2640c318 100755
--- a/test/TEST-50-MULTINIC/test.sh
+++ b/test/TEST-50-MULTINIC/test.sh
@@ -57,7 +57,7 @@ client_test() {
-net nic,macaddr=52:54:00:12:34:$mac3,model=e1000 \
-netdev hubport,id=n1,hubid=1 \
-netdev hubport,id=n2,hubid=2 \
- --device e1000,netdev=n1,mac=52:54:00:12:34:98 \
+ -device e1000,netdev=n1,mac=52:54:00:12:34:98 \
-device e1000,netdev=n2,mac=52:54:00:12:34:99 \
-watchdog i6300esb -watchdog-action poweroff \
-no-reboot \

View File

@ -1,34 +0,0 @@
From 827a5b1a80c63f62fbe70945d46a8eb9453fc9fe Mon Sep 17 00:00:00 2001
From: Harald Hoyer <harald@redhat.com>
Date: Tue, 14 Aug 2018 11:37:57 +0200
Subject: [PATCH] test: also output server.log on failure
---
test/test-functions | 6 +++++-
1 file changed, 5 insertions(+), 1 deletion(-)
diff --git a/test/test-functions b/test/test-functions
index 57611ff5..f27be912 100644
--- a/test/test-functions
+++ b/test/test-functions
@@ -75,6 +75,9 @@ while (($# > 0)); do
test_setup && test_run
ret=$?
test_cleanup
+ if ((ret!=0)) && [[ -f "$TESTDIR"/server.log ]]; then
+ mv [[ -f "$TESTDIR"/server.log ]] ./
+ fi
rm -fr -- "$TESTDIR"
rm -f -- .testdir
exit $ret
@@ -88,7 +91,8 @@ while (($# > 0)); do
else
echo -e "TEST: $TEST_DESCRIPTION " $COLOR_FAILURE "[FAILED]" $COLOR_NORMAL
if [ "$V" == "2" ]; then
- cat $(pwd)/test.log
+ cat $(pwd)/server.log $(pwd)/test.log
+ echo -e "TEST: $TEST_DESCRIPTION " $COLOR_FAILURE "[FAILED]" $COLOR_NORMAL
else
echo "see $(pwd)/test.log"
fi

View File

@ -1,23 +0,0 @@
From 94cc856cb8e4a325cc26a3bcc2d9e92da6a2be69 Mon Sep 17 00:00:00 2001
From: Harald Hoyer <harald@redhat.com>
Date: Tue, 14 Aug 2018 13:57:15 +0200
Subject: [PATCH] TEST-70-BONDBRIDGETEAMVLAN: load vlan kernel modules
---
test/TEST-70-BONDBRIDGETEAMVLAN/server-init.sh | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/test/TEST-70-BONDBRIDGETEAMVLAN/server-init.sh b/test/TEST-70-BONDBRIDGETEAMVLAN/server-init.sh
index 503ed9ed..b9f01c9b 100755
--- a/test/TEST-70-BONDBRIDGETEAMVLAN/server-init.sh
+++ b/test/TEST-70-BONDBRIDGETEAMVLAN/server-init.sh
@@ -49,7 +49,7 @@ linkup() {
&& wait_for_if_up $1 2>/dev/null
}
-modprobe -b -q 8021q
+modprobe --all -b -q 8021q ipvlan macvlan
>/dev/watchdog
ip addr add 127.0.0.1/8 dev lo
linkup lo

View File

@ -1,338 +0,0 @@
From ca8f1c1ba3e5f1ebfb2e5e70ea4d4b7a791b0bc2 Mon Sep 17 00:00:00 2001
From: Harald Hoyer <harald@redhat.com>
Date: Tue, 14 Aug 2018 13:58:21 +0200
Subject: [PATCH] test: fixed KVERSION and qemu backwards compatiblity
---
test/TEST-50-MULTINIC/test.sh | 137 ++++++++++++++++++--------------
test/TEST-70-BONDBRIDGETEAMVLAN/test.sh | 52 ++++++++----
2 files changed, 115 insertions(+), 74 deletions(-)
diff --git a/test/TEST-50-MULTINIC/test.sh b/test/TEST-50-MULTINIC/test.sh
index 2640c318..02443c40 100755
--- a/test/TEST-50-MULTINIC/test.sh
+++ b/test/TEST-50-MULTINIC/test.sh
@@ -12,19 +12,36 @@ run_server() {
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 \
- -m 512M -smp 2 \
- -display none \
- -net socket,listen=127.0.0.1:12350 \
- -net nic,macaddr=52:54:01:12:34:56,model=e1000 \
- ${SERIAL:+-serial "$SERIAL"} \
- ${SERIAL:--serial file:"$TESTDIR"/server.log} \
- -watchdog i6300esb -watchdog-action poweroff \
- -no-reboot \
- -append "panic=1 loglevel=7 root=/dev/sda rootfstype=ext3 rw console=ttyS0,115200n81 selinux=0" \
- -initrd "$TESTDIR"/initramfs.server \
- -pidfile "$TESTDIR"/server.pid -daemonize || return 1
+
+ if $testdir/run-qemu --help | grep -qF -m1 'netdev hubport,id=str,hubid=n[,netdev=nd]' && echo OK; then
+ $testdir/run-qemu \
+ -drive format=raw,index=0,media=disk,file="$TESTDIR"/server.ext3 \
+ -m 512M -smp 2 \
+ -display none \
+ -net socket,listen=127.0.0.1:12350 \
+ -net nic,macaddr=52:54:01:12:34:56,model=e1000 \
+ ${SERIAL:+-serial "$SERIAL"} \
+ ${SERIAL:--serial file:"$TESTDIR"/server.log} \
+ -watchdog i6300esb -watchdog-action poweroff \
+ -no-reboot \
+ -append "panic=1 loglevel=7 root=/dev/sda rootfstype=ext3 rw console=ttyS0,115200n81 selinux=0" \
+ -initrd "$TESTDIR"/initramfs.server \
+ -pidfile "$TESTDIR"/server.pid -daemonize || return 1
+ else
+ $testdir/run-qemu \
+ -drive format=raw,index=0,media=disk,file="$TESTDIR"/client.img -m 512M -smp 2 -nographic \
+ -net socket,vlan=0,connect=127.0.0.1:12350 \
+ -net nic,vlan=0,macaddr=52:54:00:12:34:$mac1,model=e1000 \
+ -net nic,vlan=0,macaddr=52:54:00:12:34:$mac2,model=e1000 \
+ -net nic,vlan=0,macaddr=52:54:00:12:34:$mac3,model=e1000 \
+ -net nic,vlan=1,macaddr=52:54:00:12:34:98,model=e1000 \
+ -net nic,vlan=2,macaddr=52:54:00:12:34:99,model=e1000 \
+ -watchdog i6300esb -watchdog-action poweroff \
+ -no-reboot \
+ -append "panic=1 rd.shell=0 $cmdline $DEBUGFAIL rd.retry=5 ro console=ttyS0,115200n81 selinux=0 init=/sbin/init rd.debug systemd.log_target=console loglevel=7" \
+ -initrd "$TESTDIR"/initramfs.testing
+ fi
+
sudo chmod 644 -- "$TESTDIR"/server.pid || return 1
# Cleanup the terminal if we have one
@@ -51,18 +68,18 @@ client_test() {
fi
$testdir/run-qemu -drive format=raw,index=0,media=disk,file="$TESTDIR"/client.img -m 512M -smp 2 -nographic \
- -net socket,connect=127.0.0.1:12350 \
- -net nic,macaddr=52:54:00:12:34:$mac1,model=e1000 \
- -net nic,macaddr=52:54:00:12:34:$mac2,model=e1000 \
- -net nic,macaddr=52:54:00:12:34:$mac3,model=e1000 \
- -netdev hubport,id=n1,hubid=1 \
- -netdev hubport,id=n2,hubid=2 \
- -device e1000,netdev=n1,mac=52:54:00:12:34:98 \
- -device e1000,netdev=n2,mac=52:54:00:12:34:99 \
- -watchdog i6300esb -watchdog-action poweroff \
- -no-reboot \
- -append "panic=1 rd.shell=0 $cmdline $DEBUGFAIL rd.retry=5 ro console=ttyS0,115200n81 selinux=0 init=/sbin/init rd.debug systemd.log_target=console loglevel=7" \
- -initrd "$TESTDIR"/initramfs.testing
+ -net socket,connect=127.0.0.1:12350 \
+ -net nic,macaddr=52:54:00:12:34:$mac1,model=e1000 \
+ -net nic,macaddr=52:54:00:12:34:$mac2,model=e1000 \
+ -net nic,macaddr=52:54:00:12:34:$mac3,model=e1000 \
+ -netdev hubport,id=n1,hubid=1 \
+ -netdev hubport,id=n2,hubid=2 \
+ -device e1000,netdev=n1,mac=52:54:00:12:34:98 \
+ -device e1000,netdev=n2,mac=52:54:00:12:34:99 \
+ -watchdog i6300esb -watchdog-action poweroff \
+ -no-reboot \
+ -append "panic=1 rd.shell=0 $cmdline $DEBUGFAIL rd.retry=5 ro console=ttyS0,115200n81 selinux=0 init=/sbin/init rd.debug systemd.log_target=console loglevel=7" \
+ -initrd "$TESTDIR"/initramfs.testing
{ read OK; read IFACES; } < "$TESTDIR"/client.img
@@ -110,58 +127,58 @@ test_client() {
# PXE Style BOOTIF=
client_test "MULTINIC root=nfs BOOTIF=" \
- 00 01 02 \
- "root=nfs:192.168.50.1:/nfs/client BOOTIF=52-54-00-12-34-00" \
- "ens3" || return 1
+ 00 01 02 \
+ "root=nfs:192.168.50.1:/nfs/client BOOTIF=52-54-00-12-34-00" \
+ "ens3" || return 1
client_test "MULTINIC root=nfs BOOTIF= ip=ens4:dhcp" \
- 00 01 02 \
- "root=nfs:192.168.50.1:/nfs/client BOOTIF=52-54-00-12-34-00 ip=ens4:dhcp" \
- "ens3 ens4" || return 1
+ 00 01 02 \
+ "root=nfs:192.168.50.1:/nfs/client BOOTIF=52-54-00-12-34-00 ip=ens4:dhcp" \
+ "ens3 ens4" || return 1
# PXE Style BOOTIF= with dhcp root-path
client_test "MULTINIC root=dhcp BOOTIF=" \
- 00 01 02 \
- "root=dhcp BOOTIF=52-54-00-12-34-02" \
- "ens5" || return 1
+ 00 01 02 \
+ "root=dhcp BOOTIF=52-54-00-12-34-02" \
+ "ens5" || return 1
# Multinic case, where only one nic works
client_test "MULTINIC root=nfs ip=dhcp" \
- FF 00 FE \
- "root=nfs:192.168.50.1:/nfs/client ip=dhcp" \
- "ens4" || return 1
+ FF 00 FE \
+ "root=nfs:192.168.50.1:/nfs/client ip=dhcp" \
+ "ens4" || return 1
# Require two interfaces
client_test "MULTINIC root=nfs ip=ens4:dhcp ip=ens5:dhcp bootdev=ens4" \
- 00 01 02 \
- "root=nfs:192.168.50.1:/nfs/client ip=ens4:dhcp ip=ens5:dhcp bootdev=ens4" \
- "ens4 ens5" || return 1
+ 00 01 02 \
+ "root=nfs:192.168.50.1:/nfs/client ip=ens4:dhcp ip=ens5:dhcp bootdev=ens4" \
+ "ens4 ens5" || return 1
# Require three interfaces with dhcp root-path
client_test "MULTINIC root=dhcp ip=ens3:dhcp ip=ens4:dhcp ip=ens5:dhcp bootdev=ens5" \
- 00 01 02 \
- "root=dhcp ip=ens3:dhcp ip=ens4:dhcp ip=ens5:dhcp bootdev=ens5" \
- "ens3 ens4 ens5" || return 1
+ 00 01 02 \
+ "root=dhcp ip=ens3:dhcp ip=ens4:dhcp ip=ens5:dhcp bootdev=ens5" \
+ "ens3 ens4 ens5" || return 1
client_test "MULTINIC bonding" \
- 00 01 02 \
- "root=nfs:192.168.50.1:/nfs/client ip=bond0:dhcp bond=bond0:ens3,ens4,ens5:mode=balance-rr" \
- "bond0" || return 1
+ 00 01 02 \
+ "root=nfs:192.168.50.1:/nfs/client ip=bond0:dhcp bond=bond0:ens3,ens4,ens5:mode=balance-rr" \
+ "bond0" || return 1
client_test "MULTINIC bridging" \
- 00 01 02 \
- "root=nfs:192.168.50.1:/nfs/client ip=bridge0:dhcp bridge=bridge0:ens3,ens6,ens7" \
- "bridge0" || return 1
+ 00 01 02 \
+ "root=nfs:192.168.50.1:/nfs/client ip=bridge0:dhcp bridge=bridge0:ens3,ens6,ens7" \
+ "bridge0" || return 1
return 0
}
test_setup() {
- # Make server root
+ # Make server root
dd if=/dev/null of="$TESTDIR"/server.ext3 bs=1M seek=120
mke2fs -j -F -- "$TESTDIR"/server.ext3
mkdir -- "$TESTDIR"/mnt
sudo mount -o loop -- "$TESTDIR"/server.ext3 "$TESTDIR"/mnt
-
+ kernel=$KVERSION
(
export initdir="$TESTDIR"/mnt
. "$basedir"/dracut-init.sh
@@ -185,9 +202,9 @@ test_setup() {
done
inst_multiple sh ls shutdown poweroff stty cat ps ln ip \
- dmesg mkdir cp ping exportfs \
- modprobe rpc.nfsd rpc.mountd showmount tcpdump \
- /etc/services sleep mount chmod
+ dmesg mkdir cp ping exportfs \
+ modprobe rpc.nfsd rpc.mountd showmount tcpdump \
+ /etc/services sleep mount chmod
for _terminfodir in /lib/terminfo /etc/terminfo /usr/share/terminfo; do
[ -f "${_terminfodir}"/l/linux ] && break
done
@@ -212,7 +229,7 @@ test_setup() {
inst_libdir_file 'libnfsidmap*.so*'
_nsslibs=$(sed -e '/^#/d' -e 's/^.*://' -e 's/\[NOTFOUND=return\]//' /etc/nsswitch.conf \
- | tr -s '[:space:]' '\n' | sort -u | tr -s '[:space:]' '|')
+ | tr -s '[:space:]' '\n' | sort -u | tr -s '[:space:]' '|')
_nsslibs=${_nsslibs#|}
_nsslibs=${_nsslibs%|}
@@ -241,7 +258,7 @@ test_setup() {
done
)
inst_multiple sh shutdown poweroff stty cat ps ln ip \
- mount dmesg mkdir cp ping grep ls
+ mount dmesg mkdir cp ping grep ls
for _terminfodir in /lib/terminfo /etc/terminfo /usr/share/terminfo; do
[[ -f ${_terminfodir}/l/linux ]] && break
done
@@ -258,7 +275,7 @@ test_setup() {
inst_libdir_file 'libnfsidmap*.so*'
_nsslibs=$(sed -e '/^#/d' -e 's/^.*://' -e 's/\[NOTFOUND=return\]//' -- /etc/nsswitch.conf \
- | tr -s '[:space:]' '\n' | sort -u | tr -s '[:space:]' '|')
+ | tr -s '[:space:]' '\n' | sort -u | tr -s '[:space:]' '|')
_nsslibs=${_nsslibs#|}
_nsslibs=${_nsslibs%|}
@@ -282,14 +299,16 @@ test_setup() {
)
# Make server's dracut image
- $basedir/dracut.sh -l -i "$TESTDIR"/overlay / \
+ $basedir/dracut.sh \
+ -l -i "$TESTDIR"/overlay / \
-m "dash udev-rules base rootfs-block fs-lib debug kernel-modules watchdog" \
-d "af_packet piix ide-gd_mod ata_piix ext3 sd_mod nfsv2 nfsv3 nfsv4 nfs_acl nfs_layout_nfsv41_files nfsd e1000 i6300esb ib700wdt" \
--no-hostonly-cmdline -N \
-f "$TESTDIR"/initramfs.server "$KVERSION" || return 1
# Make client's dracut image
- $basedir/dracut.sh -l -i "$TESTDIR"/overlay / \
+ $basedir/dracut.sh \
+ -l -i "$TESTDIR"/overlay / \
-o "plymouth" \
-a "debug" \
-d "af_packet piix sd_mod sr_mod ata_piix ide-gd_mod e1000 nfsv2 nfsv3 nfsv4 nfs_acl nfs_layout_nfsv41_files sunrpc i6300esb ib700wdt" \
diff --git a/test/TEST-70-BONDBRIDGETEAMVLAN/test.sh b/test/TEST-70-BONDBRIDGETEAMVLAN/test.sh
index eadf09f1..8c11a7d3 100755
--- a/test/TEST-70-BONDBRIDGETEAMVLAN/test.sh
+++ b/test/TEST-70-BONDBRIDGETEAMVLAN/test.sh
@@ -14,6 +14,7 @@ run_server() {
echo "MULTINIC TEST SETUP: Starting DHCP/NFS server"
fsck -a "$TESTDIR"/server.ext3 || return 1
+
$testdir/run-qemu \
-hda "$TESTDIR"/server.ext3 \
-m 512M -smp 2 \
@@ -66,17 +67,38 @@ client_test() {
nic3=" -netdev hubport,id=n3,hubid=3"
fi
- $testdir/run-qemu -hda "$TESTDIR"/client.img -m 512M -smp 2 -nographic \
- -netdev socket,connect=127.0.0.1:12370,id=s1 -netdev hubport,hubid=1,id=h1,netdev=s1 \
- -netdev hubport,hubid=1,id=h2 -device e1000,mac=52:54:00:12:34:01,netdev=h2 \
- -netdev hubport,hubid=1,id=h3 -device e1000,mac=52:54:00:12:34:02,netdev=h3 \
- $nic1 -device e1000,mac=52:54:00:12:34:03,netdev=n1 \
- -netdev socket,connect=127.0.0.1:12372,id=n2 -device e1000,mac=52:54:00:12:34:04,netdev=n2 \
- $nic3 -device e1000,mac=52:54:00:12:34:05,netdev=n3 \
- -watchdog i6300esb -watchdog-action poweroff \
- -no-reboot \
- -append "panic=1 $cmdline rd.debug $DEBUGFAIL rd.retry=5 rw console=ttyS0,115200n81 selinux=0 init=/sbin/init" \
- -initrd "$TESTDIR"/initramfs.testing
+ if $testdir/run-qemu --help | grep -qF -m1 'netdev hubport,id=str,hubid=n[,netdev=nd]' && echo OK; then
+ $testdir/run-qemu \
+ -hda "$TESTDIR"/client.img -m 512M -smp 2 -nographic \
+ -netdev socket,connect=127.0.0.1:12370,id=s1 \
+ -netdev hubport,hubid=1,id=h1,netdev=s1 \
+ -netdev hubport,hubid=1,id=h2 -device e1000,mac=52:54:00:12:34:01,netdev=h2 \
+ -netdev hubport,hubid=1,id=h3 -device e1000,mac=52:54:00:12:34:02,netdev=h3 \
+ $nic1 -device e1000,mac=52:54:00:12:34:03,netdev=n1 \
+ -netdev socket,connect=127.0.0.1:12372,id=n2 -device e1000,mac=52:54:00:12:34:04,netdev=n2 \
+ $nic3 -device e1000,mac=52:54:00:12:34:05,netdev=n3 \
+ -watchdog i6300esb -watchdog-action poweroff \
+ -no-reboot \
+ -append "panic=1 $cmdline rd.debug $DEBUGFAIL rd.retry=5 rw console=ttyS0,115200n81 selinux=0 init=/sbin/init" \
+ -initrd "$TESTDIR"/initramfs.testing
+ else
+ $testdir/run-qemu \
+ -hda "$TESTDIR"/client.img -m 512M -smp 2 -nographic \
+ -net socket,vlan=0,connect=127.0.0.1:12370 \
+ ${do_vlan13:+-net socket,vlan=1,connect=127.0.0.1:12371} \
+ -net socket,vlan=2,connect=127.0.0.1:12372 \
+ ${do_vlan13:+-net socket,vlan=3,connect=127.0.0.1:12373} \
+ -net nic,vlan=0,macaddr=52:54:00:12:34:01,model=e1000 \
+ -net nic,vlan=0,macaddr=52:54:00:12:34:02,model=e1000 \
+ -net nic,vlan=1,macaddr=52:54:00:12:34:03,model=e1000 \
+ -net nic,vlan=2,macaddr=52:54:00:12:34:04,model=e1000 \
+ -net nic,vlan=3,macaddr=52:54:00:12:34:05,model=e1000 \
+ -watchdog i6300esb -watchdog-action poweroff \
+ -no-reboot \
+ -append "panic=1 $cmdline rd.debug $DEBUGFAIL rd.retry=5 rw console=ttyS0,115200n81 selinux=0 init=/sbin/init" \
+ -initrd "$TESTDIR"/initramfs.testing
+ fi
+
{
read OK
if [[ "$OK" != "OK" ]]; then
@@ -167,7 +189,7 @@ test_setup() {
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
@@ -203,7 +225,7 @@ test_setup() {
[ -f /etc/netconfig ] && inst_multiple /etc/netconfig
type -P dhcpd >/dev/null && inst_multiple dhcpd
[ -x /usr/sbin/dhcpd3 ] && inst /usr/sbin/dhcpd3 /usr/sbin/dhcpd
- instmods nfsd sunrpc ipv6 lockd af_packet 8021q
+ instmods nfsd sunrpc ipv6 lockd af_packet 8021q ipvlan macvlan
inst_simple /etc/os-release
inst ./server-init.sh /sbin/init
inst ./hosts /etc/hosts
@@ -286,7 +308,7 @@ test_setup() {
$basedir/dracut.sh -l -i "$TESTDIR"/overlay / \
--no-early-microcode \
-m "udev-rules base rootfs-block fs-lib debug kernel-modules watchdog" \
- -d "af_packet piix ide-gd_mod ata_piix ext3 sd_mod nfsv2 nfsv3 nfsv4 nfs_acl nfs_layout_nfsv41_files nfsd e1000 i6300esb ib700wdt" \
+ -d "ipvlan macvlan af_packet piix ide-gd_mod ata_piix ext3 sd_mod nfsv2 nfsv3 nfsv4 nfs_acl nfs_layout_nfsv41_files nfsd e1000 i6300esb ib700wdt" \
--no-hostonly-cmdline -N \
-f "$TESTDIR"/initramfs.server "$KVERSION" || return 1
@@ -295,7 +317,7 @@ test_setup() {
--no-early-microcode \
-o "plymouth" \
-a "debug" \
- -d "af_packet piix sd_mod sr_mod ata_piix ide-gd_mod e1000 nfsv2 nfsv3 nfsv4 nfs_acl nfs_layout_nfsv41_files sunrpc i6300esb ib700wdt" \
+ -d "ipvlan macvlan af_packet piix sd_mod sr_mod ata_piix ide-gd_mod e1000 nfsv2 nfsv3 nfsv4 nfs_acl nfs_layout_nfsv41_files sunrpc i6300esb ib700wdt" \
--no-hostonly-cmdline -N \
-f "$TESTDIR"/initramfs.testing "$KVERSION" || return 1
}

View File

@ -1,23 +0,0 @@
From bb75d16521a9d76ccedbf06f3a6239efbbca77d7 Mon Sep 17 00:00:00 2001
From: Harald Hoyer <harald@redhat.com>
Date: Tue, 14 Aug 2018 14:07:12 +0200
Subject: [PATCH] kernel-network-modules: add vlan kernel modules
---
modules.d/90kernel-network-modules/module-setup.sh | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/modules.d/90kernel-network-modules/module-setup.sh b/modules.d/90kernel-network-modules/module-setup.sh
index 16ed3a74..600ef112 100755
--- a/modules.d/90kernel-network-modules/module-setup.sh
+++ b/modules.d/90kernel-network-modules/module-setup.sh
@@ -28,7 +28,7 @@ installkernel() {
=drivers/net/phy \
=drivers/net/team \
=drivers/net/ethernet \
- ecb arc4 bridge stp llc ipv6 bonding 8021q af_packet virtio_net xennet
+ ecb arc4 bridge stp llc ipv6 bonding 8021q ipvlan macvlan af_packet virtio_net xennet
hostonly="" instmods iscsi_ibft crc32c iscsi_boot_sysfs
}

View File

@ -1,37 +0,0 @@
From f9c8b3112aee5216a6bb5a42fb46146f6f228854 Mon Sep 17 00:00:00 2001
From: Harald Hoyer <harald@redhat.com>
Date: Tue, 14 Aug 2018 14:12:54 +0200
Subject: [PATCH] TEST-50-MULTINIC/test.sh: fixed server startup
---
test/TEST-50-MULTINIC/test.sh | 9 ++++++---
1 file changed, 6 insertions(+), 3 deletions(-)
diff --git a/test/TEST-50-MULTINIC/test.sh b/test/TEST-50-MULTINIC/test.sh
index 02443c40..d7cec437 100755
--- a/test/TEST-50-MULTINIC/test.sh
+++ b/test/TEST-50-MULTINIC/test.sh
@@ -29,7 +29,9 @@ run_server() {
-pidfile "$TESTDIR"/server.pid -daemonize || return 1
else
$testdir/run-qemu \
- -drive format=raw,index=0,media=disk,file="$TESTDIR"/client.img -m 512M -smp 2 -nographic \
+ -drive format=raw,index=0,media=disk,file="$TESTDIR"/server.ext3 \
+ -m 512M -smp 2 \
+ -display none \
-net socket,vlan=0,connect=127.0.0.1:12350 \
-net nic,vlan=0,macaddr=52:54:00:12:34:$mac1,model=e1000 \
-net nic,vlan=0,macaddr=52:54:00:12:34:$mac2,model=e1000 \
@@ -38,8 +40,9 @@ run_server() {
-net nic,vlan=2,macaddr=52:54:00:12:34:99,model=e1000 \
-watchdog i6300esb -watchdog-action poweroff \
-no-reboot \
- -append "panic=1 rd.shell=0 $cmdline $DEBUGFAIL rd.retry=5 ro console=ttyS0,115200n81 selinux=0 init=/sbin/init rd.debug systemd.log_target=console loglevel=7" \
- -initrd "$TESTDIR"/initramfs.testing
+ -append "panic=1 loglevel=7 root=/dev/sda rootfstype=ext3 rw console=ttyS0,115200n81 selinux=0" \
+ -initrd "$TESTDIR"/initramfs.server \
+ -pidfile "$TESTDIR"/server.pid -daemonize || return 1
fi
sudo chmod 644 -- "$TESTDIR"/server.pid || return 1

View File

@ -1,21 +0,0 @@
From 604c09b1dacd4a364ee88d0e405a4e6692bdc1c2 Mon Sep 17 00:00:00 2001
From: Harald Hoyer <harald@redhat.com>
Date: Tue, 14 Aug 2018 15:28:56 +0200
Subject: [PATCH] TEST-31-ISCSI-MULTI/test.sh: fixed test description
---
test/TEST-31-ISCSI-MULTI/test.sh | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/test/TEST-31-ISCSI-MULTI/test.sh b/test/TEST-31-ISCSI-MULTI/test.sh
index c2f86ac8..1ed3fb7b 100755
--- a/test/TEST-31-ISCSI-MULTI/test.sh
+++ b/test/TEST-31-ISCSI-MULTI/test.sh
@@ -1,5 +1,5 @@
#!/bin/bash
-TEST_DESCRIPTION="root filesystem over iSCSI"
+TEST_DESCRIPTION="root filesystem over multiple iSCSI"
KVERSION=${KVERSION-$(uname -r)}

View File

@ -1,86 +0,0 @@
From a2dbecfcd65ac243363c9544442f7bf526ec6091 Mon Sep 17 00:00:00 2001
From: Harald Hoyer <harald@redhat.com>
Date: Tue, 14 Aug 2018 15:42:21 +0200
Subject: [PATCH] test: add TEST_RUN_ID
---
test/test-functions | 24 ++++++++++++------------
1 file changed, 12 insertions(+), 12 deletions(-)
diff --git a/test/test-functions b/test/test-functions
index f27be912..bde5f742 100644
--- a/test/test-functions
+++ b/test/test-functions
@@ -2,11 +2,11 @@
PATH=/sbin:/bin:/usr/sbin:/usr/bin
export PATH
-[[ -e .testdir ]] && . .testdir
+[[ -e .testdir${TEST_RUN_ID:+-$TEST_RUN_ID} ]] && . .testdir${TEST_RUN_ID:+-$TEST_RUN_ID}
if [[ -z "$TESTDIR" ]] || [[ ! -d "$TESTDIR" ]]; then
TESTDIR=$(mktemp -d -p "/var/tmp" -t dracut-test.XXXXXX)
fi
-echo "TESTDIR=\"$TESTDIR\"" > .testdir
+echo "TESTDIR=\"$TESTDIR\"" > .testdir${TEST_RUN_ID:+-$TEST_RUN_ID}
export TESTDIR
command -v test_check &>/dev/null || test_check() {
@@ -50,11 +50,11 @@ while (($# > 0)); do
echo "TEST CLEANUP: $TEST_DESCRIPTION"
test_cleanup
rm -fr -- "$TESTDIR"
- rm -f -- .testdir
+ rm -f -- .testdir${TEST_RUN_ID:+-$TEST_RUN_ID}
exit $?;;
--all)
check_root
- if ! test_check 2&>test.log ; then
+ if ! test_check 2&>test-${TEST_RUN_ID:+-$TEST_RUN_ID}.log ; then
echo -e "TEST: $TEST_DESCRIPTION " $COLOR_WARNING "[SKIPPED]" $COLOR_NORMAL
exit 0;
else
@@ -66,9 +66,9 @@ while (($# > 0)); do
ret=$?
test_cleanup
rm -fr -- "$TESTDIR"
- rm -f -- .testdir
+ rm -f -- .testdir${TEST_RUN_ID:+-$TEST_RUN_ID}
exit $ret
- ) </dev/null >test.log 2>&1
+ ) </dev/null >test-${TEST_RUN_ID:+-$TEST_RUN_ID}.log 2>&1
else
set -o pipefail
(
@@ -76,25 +76,25 @@ while (($# > 0)); do
ret=$?
test_cleanup
if ((ret!=0)) && [[ -f "$TESTDIR"/server.log ]]; then
- mv [[ -f "$TESTDIR"/server.log ]] ./
+ mv [[ -f "$TESTDIR"/server.log ]] ./server${TEST_RUN_ID:+-$TEST_RUN_ID}.log
fi
rm -fr -- "$TESTDIR"
- rm -f -- .testdir
+ rm -f -- .testdir${TEST_RUN_ID:+-$TEST_RUN_ID}
exit $ret
- ) </dev/null 2>&1 | tee test.log
+ ) </dev/null 2>&1 | tee test-${TEST_RUN_ID:+-$TEST_RUN_ID}.log
fi
ret=$?
set +o pipefail
if [ $ret -eq 0 ]; then
- rm -- test.log
+ rm -- test-${TEST_RUN_ID:+-$TEST_RUN_ID}.log
echo -e "TEST: $TEST_DESCRIPTION " $COLOR_SUCCESS "[OK]" $COLOR_NORMAL
else
echo -e "TEST: $TEST_DESCRIPTION " $COLOR_FAILURE "[FAILED]" $COLOR_NORMAL
if [ "$V" == "2" ]; then
- cat $(pwd)/server.log $(pwd)/test.log
+ cat $(pwd)/server${TEST_RUN_ID:+-$TEST_RUN_ID}.log $(pwd)/test-${TEST_RUN_ID:+-$TEST_RUN_ID}.log
echo -e "TEST: $TEST_DESCRIPTION " $COLOR_FAILURE "[FAILED]" $COLOR_NORMAL
else
- echo "see $(pwd)/test.log"
+ echo "see $(pwd)/test-${TEST_RUN_ID:+-$TEST_RUN_ID}.log"
fi
fi
exit $ret;;

View File

@ -1,26 +0,0 @@
From 0f294d90b246e15d00dd56627a8085e5bfc5bf85 Mon Sep 17 00:00:00 2001
From: Harald Hoyer <harald@redhat.com>
Date: Tue, 14 Aug 2018 15:54:42 +0200
Subject: [PATCH] TEST-31-ISCSI-MULTI: increase verbose level
---
test/TEST-31-ISCSI-MULTI/test.sh | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/test/TEST-31-ISCSI-MULTI/test.sh b/test/TEST-31-ISCSI-MULTI/test.sh
index 1ed3fb7b..5c38249c 100755
--- a/test/TEST-31-ISCSI-MULTI/test.sh
+++ b/test/TEST-31-ISCSI-MULTI/test.sh
@@ -3,9 +3,9 @@ TEST_DESCRIPTION="root filesystem over multiple iSCSI"
KVERSION=${KVERSION-$(uname -r)}
-DEBUGFAIL="loglevel=1"
+#DEBUGFAIL="loglevel=1"
#DEBUGFAIL="rd.shell rd.break rd.debug loglevel=7 "
-#DEBUGFAIL="rd.debug loglevel=7 "
+DEBUGFAIL="rd.debug loglevel=7 "
#SERVER_DEBUG="rd.debug loglevel=7"
#SERIAL="tcp:127.0.0.1:9999"

View File

@ -1,93 +0,0 @@
From 3c1a083e5c5e56bf2e26aa806f023d4f053fc7b7 Mon Sep 17 00:00:00 2001
From: Harald Hoyer <harald@redhat.com>
Date: Tue, 14 Aug 2018 16:01:39 +0200
Subject: [PATCH] add travis build job
---
.travis.yml | 15 +++++++++++++++
fedora-test.sh | 55 +++++++++++++++++++++++++++++++++++++++++++++++++++++++
2 files changed, 70 insertions(+)
diff --git a/.travis.yml b/.travis.yml
new file mode 100644
index 00000000..16f9a511
--- /dev/null
+++ b/.travis.yml
@@ -0,0 +1,15 @@
+sudo: required
+
+services:
+ - docker
+
+env:
+ matrix:
+ - IMAGE=latest
+ - IMAGE=rawhide
+
+before_script:
+- docker pull fedora:$IMAGE
+
+script:
+- docker run --privileged -it -v $(pwd)/:/dracut fedora:$IMAGE /dracut/fedora-test.sh $IMAGE-$$
diff --git a/fedora-test.sh b/fedora-test.sh
new file mode 100755
index 00000000..ee506caf
--- /dev/null
+++ b/fedora-test.sh
@@ -0,0 +1,55 @@
+#!/bin/bash
+
+set -ex
+
+cd ${0%/*}
+
+RUN_ID="$1"
+
+dnf -y update --best --allowerasing
+
+dnf -y install --best --allowerasing \
+ dash \
+ asciidoc \
+ mdadm \
+ lvm2 \
+ dmraid \
+ cryptsetup \
+ nfs-utils \
+ nbd \
+ dhcp-server \
+ scsi-target-utils \
+ iscsi-initiator-utils \
+ strace \
+ btrfs-progs \
+ kmod-devel \
+ gcc \
+ bzip2 \
+ xz \
+ tar \
+ wget \
+ rpm-build \
+ make \
+ git \
+ bash-completion \
+ sudo \
+ kernel \
+ dhcp-client \
+ /usr/bin/qemu-kvm \
+ e2fsprogs \
+ $NULL
+
+./configure
+
+NCPU=$(getconf _NPROCESSORS_ONLN)
+
+make -j$NCPU all syncheck rpm
+
+cd test
+
+time sudo make -j$((NCPU/2+1)) \
+ KVERSION=$(rpm -qa kernel --qf '%{VERSION}-%{RELEASE}.%{ARCH}\n' | sort -rn | head -1) \
+ TEST_RUN_ID=$RUN_ID \
+ -k V=2 \
+ SKIP="14 16" \
+ check

View File

@ -1,44 +0,0 @@
From b7774da97ca743ada8a94d5eab4484cb96504ca0 Mon Sep 17 00:00:00 2001
From: Harald Hoyer <harald@redhat.com>
Date: Tue, 14 Aug 2018 16:18:53 +0200
Subject: [PATCH] might even run without kvm
---
.travis.yml | 5 +----
test/run-qemu | 1 +
2 files changed, 2 insertions(+), 4 deletions(-)
diff --git a/.travis.yml b/.travis.yml
index 16f9a511..a71d9be2 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -1,15 +1,12 @@
+language: generic
sudo: required
-
services:
- docker
-
env:
matrix:
- IMAGE=latest
- IMAGE=rawhide
-
before_script:
- docker pull fedora:$IMAGE
-
script:
- docker run --privileged -it -v $(pwd)/:/dracut fedora:$IMAGE /dracut/fedora-test.sh $IMAGE-$$
diff --git a/test/run-qemu b/test/run-qemu
index a4e15548..c28de2db 100755
--- a/test/run-qemu
+++ b/test/run-qemu
@@ -8,6 +8,7 @@ $(lsmod | grep -q '^kqemu ') && BIN=/usr/bin/qemu && ARGS="-kernel-kqemu "
[[ -c /dev/kvm && -x /usr/bin/kvm ]] && BIN=/usr/bin/kvm && ARGS=""
[[ -c /dev/kvm && -x /usr/bin/qemu-kvm ]] && BIN=/usr/bin/qemu-kvm && ARGS=""
[[ -c /dev/kvm && -x /usr/libexec/qemu-kvm ]] && BIN=/usr/libexec/qemu-kvm && ARGS=""
+[[ -x /usr/bin/qemu-system-$(uname -i) ]] && BIN=/usr/bin/qemu-system-$(uname -i) && ARGS=""
[[ -c /dev/kvm && -x /usr/bin/qemu-system-$(uname -i) ]] && BIN=/usr/bin/qemu-system-$(uname -i) && ARGS="-enable-kvm"
[[ $BIN ]] || {

View File

@ -1,23 +0,0 @@
From fba4d2843382540839d90abbaa2cae0d5bf1c2dd Mon Sep 17 00:00:00 2001
From: Harald Hoyer <harald@redhat.com>
Date: Tue, 14 Aug 2018 16:30:42 +0200
Subject: [PATCH] TEST-50-MULTINIC: fixed server.log
---
test/TEST-50-MULTINIC/test.sh | 2 ++
1 file changed, 2 insertions(+)
diff --git a/test/TEST-50-MULTINIC/test.sh b/test/TEST-50-MULTINIC/test.sh
index d7cec437..0a4d29c2 100755
--- a/test/TEST-50-MULTINIC/test.sh
+++ b/test/TEST-50-MULTINIC/test.sh
@@ -38,6 +38,8 @@ run_server() {
-net nic,vlan=0,macaddr=52:54:00:12:34:$mac3,model=e1000 \
-net nic,vlan=1,macaddr=52:54:00:12:34:98,model=e1000 \
-net nic,vlan=2,macaddr=52:54:00:12:34:99,model=e1000 \
+ ${SERIAL:+-serial "$SERIAL"} \
+ ${SERIAL:--serial file:"$TESTDIR"/server.log} \
-watchdog i6300esb -watchdog-action poweroff \
-no-reboot \
-append "panic=1 loglevel=7 root=/dev/sda rootfstype=ext3 rw console=ttyS0,115200n81 selinux=0" \

View File

@ -1,51 +0,0 @@
From cafe6675c2e54cbdc576785bc98e5f7fda76ba7c Mon Sep 17 00:00:00 2001
From: Harald Hoyer <harald@redhat.com>
Date: Tue, 14 Aug 2018 16:31:00 +0200
Subject: [PATCH] test/run-qemu: move -cpu host to kvm args
---
fedora-test.sh | 1 +
test/run-qemu | 12 ++++++------
2 files changed, 7 insertions(+), 6 deletions(-)
diff --git a/fedora-test.sh b/fedora-test.sh
index ee506caf..146c7f2f 100755
--- a/fedora-test.sh
+++ b/fedora-test.sh
@@ -36,6 +36,7 @@ dnf -y install --best --allowerasing \
kernel \
dhcp-client \
/usr/bin/qemu-kvm \
+ /usr/bin/qemu-system-$(uname -i) \
e2fsprogs \
$NULL
diff --git a/test/run-qemu b/test/run-qemu
index c28de2db..4eb497ff 100755
--- a/test/run-qemu
+++ b/test/run-qemu
@@ -4,12 +4,12 @@
export PATH=/sbin:/bin:/usr/sbin:/usr/bin
[[ -x /usr/bin/qemu ]] && BIN=/usr/bin/qemu && ARGS=""
-$(lsmod | grep -q '^kqemu ') && BIN=/usr/bin/qemu && ARGS="-kernel-kqemu "
-[[ -c /dev/kvm && -x /usr/bin/kvm ]] && BIN=/usr/bin/kvm && ARGS=""
-[[ -c /dev/kvm && -x /usr/bin/qemu-kvm ]] && BIN=/usr/bin/qemu-kvm && ARGS=""
-[[ -c /dev/kvm && -x /usr/libexec/qemu-kvm ]] && BIN=/usr/libexec/qemu-kvm && ARGS=""
+$(lsmod | grep -q '^kqemu ') && BIN=/usr/bin/qemu && ARGS="-kernel-kqemu -cpu host"
+[[ -c /dev/kvm && -x /usr/bin/kvm ]] && BIN=/usr/bin/kvm && ARGS="-cpu host"
+[[ -c /dev/kvm && -x /usr/bin/qemu-kvm ]] && BIN=/usr/bin/qemu-kvm && ARGS="-cpu host"
+[[ -c /dev/kvm && -x /usr/libexec/qemu-kvm ]] && BIN=/usr/libexec/qemu-kvm && ARGS="-cpu host"
[[ -x /usr/bin/qemu-system-$(uname -i) ]] && BIN=/usr/bin/qemu-system-$(uname -i) && ARGS=""
-[[ -c /dev/kvm && -x /usr/bin/qemu-system-$(uname -i) ]] && BIN=/usr/bin/qemu-system-$(uname -i) && ARGS="-enable-kvm"
+[[ -c /dev/kvm && -x /usr/bin/qemu-system-$(uname -i) ]] && BIN=/usr/bin/qemu-system-$(uname -i) && ARGS="-enable-kvm -cpu host"
[[ $BIN ]] || {
echo "Could not find a working KVM or QEMU to test with!" >&2
@@ -31,4 +31,4 @@ if ! [ -f "$VMLINUZ" ]; then
fi
fi
-exec sudo $BIN $ARGS -kernel $VMLINUZ -cpu host "$@"
+exec sudo $BIN $ARGS -kernel $VMLINUZ "$@"

View File

@ -1,67 +0,0 @@
From 9288d21b9fd992cc7a32fbf79ad4f80b070e2277 Mon Sep 17 00:00:00 2001
From: Harald Hoyer <harald@redhat.com>
Date: Tue, 14 Aug 2018 16:37:01 +0200
Subject: [PATCH] TEST-50-MULTINIC: removed bogus qemu compat server call
---
test/TEST-50-MULTINIC/test.sh | 46 ++++++++++++-------------------------------
1 file changed, 13 insertions(+), 33 deletions(-)
diff --git a/test/TEST-50-MULTINIC/test.sh b/test/TEST-50-MULTINIC/test.sh
index 0a4d29c2..495a66f2 100755
--- a/test/TEST-50-MULTINIC/test.sh
+++ b/test/TEST-50-MULTINIC/test.sh
@@ -13,39 +13,19 @@ run_server() {
fsck -a "$TESTDIR"/server.ext3 || return 1
- if $testdir/run-qemu --help | grep -qF -m1 'netdev hubport,id=str,hubid=n[,netdev=nd]' && echo OK; then
- $testdir/run-qemu \
- -drive format=raw,index=0,media=disk,file="$TESTDIR"/server.ext3 \
- -m 512M -smp 2 \
- -display none \
- -net socket,listen=127.0.0.1:12350 \
- -net nic,macaddr=52:54:01:12:34:56,model=e1000 \
- ${SERIAL:+-serial "$SERIAL"} \
- ${SERIAL:--serial file:"$TESTDIR"/server.log} \
- -watchdog i6300esb -watchdog-action poweroff \
- -no-reboot \
- -append "panic=1 loglevel=7 root=/dev/sda rootfstype=ext3 rw console=ttyS0,115200n81 selinux=0" \
- -initrd "$TESTDIR"/initramfs.server \
- -pidfile "$TESTDIR"/server.pid -daemonize || return 1
- else
- $testdir/run-qemu \
- -drive format=raw,index=0,media=disk,file="$TESTDIR"/server.ext3 \
- -m 512M -smp 2 \
- -display none \
- -net socket,vlan=0,connect=127.0.0.1:12350 \
- -net nic,vlan=0,macaddr=52:54:00:12:34:$mac1,model=e1000 \
- -net nic,vlan=0,macaddr=52:54:00:12:34:$mac2,model=e1000 \
- -net nic,vlan=0,macaddr=52:54:00:12:34:$mac3,model=e1000 \
- -net nic,vlan=1,macaddr=52:54:00:12:34:98,model=e1000 \
- -net nic,vlan=2,macaddr=52:54:00:12:34:99,model=e1000 \
- ${SERIAL:+-serial "$SERIAL"} \
- ${SERIAL:--serial file:"$TESTDIR"/server.log} \
- -watchdog i6300esb -watchdog-action poweroff \
- -no-reboot \
- -append "panic=1 loglevel=7 root=/dev/sda rootfstype=ext3 rw console=ttyS0,115200n81 selinux=0" \
- -initrd "$TESTDIR"/initramfs.server \
- -pidfile "$TESTDIR"/server.pid -daemonize || return 1
- fi
+ $testdir/run-qemu \
+ -drive format=raw,index=0,media=disk,file="$TESTDIR"/server.ext3 \
+ -m 512M -smp 2 \
+ -display none \
+ -net socket,listen=127.0.0.1:12350 \
+ -net nic,macaddr=52:54:01:12:34:56,model=e1000 \
+ ${SERIAL:+-serial "$SERIAL"} \
+ ${SERIAL:--serial file:"$TESTDIR"/server.log} \
+ -watchdog i6300esb -watchdog-action poweroff \
+ -no-reboot \
+ -append "panic=1 loglevel=7 root=/dev/sda rootfstype=ext3 rw console=ttyS0,115200n81 selinux=0" \
+ -initrd "$TESTDIR"/initramfs.server \
+ -pidfile "$TESTDIR"/server.pid -daemonize || return 1
sudo chmod 644 -- "$TESTDIR"/server.pid || return 1

View File

@ -1,23 +0,0 @@
From d15c15c8f54d3aa97f7906e4f926584ac646fc5e Mon Sep 17 00:00:00 2001
From: Harald Hoyer <harald@redhat.com>
Date: Tue, 14 Aug 2018 16:54:27 +0200
Subject: [PATCH] test/test-functions: be verbose for any $V not empty
---
test/test-functions | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/test/test-functions b/test/test-functions
index bde5f742..d6b28d20 100644
--- a/test/test-functions
+++ b/test/test-functions
@@ -60,7 +60,7 @@ while (($# > 0)); do
else
echo "TEST: $TEST_DESCRIPTION [STARTED]";
fi
- if [ "$V" != "1" ]; then
+ if ! [[ "$V" ]]; then
(
test_setup && test_run
ret=$?

View File

@ -1,25 +0,0 @@
From 1363167d655f8d08ea8fd71e56c8c85ff94ccc04 Mon Sep 17 00:00:00 2001
From: Harald Hoyer <harald@redhat.com>
Date: Tue, 14 Aug 2018 16:58:52 +0200
Subject: [PATCH] Update README.md
---
README.md | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/README.md b/README.md
index e229641b..36ae7e1b 100644
--- a/README.md
+++ b/README.md
@@ -2,6 +2,10 @@
dracut is an initramfs infrastructure.
+## Travis
+
+[![Build Status](https://travis-ci.org/dracutdevs/dracut.svg?branch=master)](https://travis-ci.org/dracutdevs/dracut)
+
## CentOS CI
[![Build Status](https://ci.centos.org/job/dracut-push-master/badge/icon)](https://ci.centos.org/job/dracut-push-master/)

View File

@ -1,23 +0,0 @@
From 75b8b144a1cf5c7e15e0454f847615cadf6518e9 Mon Sep 17 00:00:00 2001
From: Harald Hoyer <harald@redhat.com>
Date: Tue, 14 Aug 2018 17:02:14 +0200
Subject: [PATCH] fedora-test.sh: don't parallelize travis tests
---
fedora-test.sh | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/fedora-test.sh b/fedora-test.sh
index 146c7f2f..9528f08c 100755
--- a/fedora-test.sh
+++ b/fedora-test.sh
@@ -48,7 +48,7 @@ make -j$NCPU all syncheck rpm
cd test
-time sudo make -j$((NCPU/2+1)) \
+time sudo make \
KVERSION=$(rpm -qa kernel --qf '%{VERSION}-%{RELEASE}.%{ARCH}\n' | sort -rn | head -1) \
TEST_RUN_ID=$RUN_ID \
-k V=2 \

View File

@ -1,26 +0,0 @@
From da5a44cfb727561e3a2b8e6e24003cd410537cfc Mon Sep 17 00:00:00 2001
From: Harald Hoyer <harald@redhat.com>
Date: Tue, 14 Aug 2018 17:06:58 +0200
Subject: [PATCH] .travis.yml: add gitter notifications
---
.travis.yml | 8 ++++++++
1 file changed, 8 insertions(+)
diff --git a/.travis.yml b/.travis.yml
index a71d9be2..96dcd951 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -10,3 +10,11 @@ before_script:
- docker pull fedora:$IMAGE
script:
- docker run --privileged -it -v $(pwd)/:/dracut fedora:$IMAGE /dracut/fedora-test.sh $IMAGE-$$
+notifications:
+ webhooks:
+ urls:
+ - https://webhooks.gitter.im/e/effa917ca3e0ed5fd00e
+ on_success: change # options: [always|never|change] default: always
+ on_failure: always # options: [always|never|change] default: always
+ on_start: never # options: [always|never|change] default: always
+

View File

@ -1,94 +0,0 @@
From 65d16d19141d0378f6cbab33b435a231ffdd37c4 Mon Sep 17 00:00:00 2001
From: Harald Hoyer <harald@redhat.com>
Date: Thu, 16 Aug 2018 08:50:11 +0200
Subject: [PATCH] travis: extend matrix
---
.travis.yml | 45 ++++++++++++++++++++++++++++++++++++++++++---
fedora-test.sh | 4 +++-
2 files changed, 45 insertions(+), 4 deletions(-)
diff --git a/.travis.yml b/.travis.yml
index 96dcd951..fbaafdac 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -4,12 +4,51 @@ services:
- docker
env:
matrix:
- - IMAGE=latest
- - IMAGE=rawhide
+ - IMAGE=latest TESTS=01
+ - IMAGE=latest TESTS=02
+ - IMAGE=latest TESTS=03
+ - IMAGE=latest TESTS=04
+ - IMAGE=latest TESTS=10
+ - IMAGE=latest TESTS=11
+ - IMAGE=latest TESTS=12
+ - IMAGE=latest TESTS=13
+ - IMAGE=latest TESTS=14
+ - IMAGE=latest TESTS=15
+ - IMAGE=latest TESTS=16
+ - IMAGE=latest TESTS=17
+ - IMAGE=latest TESTS=18
+ - IMAGE=latest TESTS=20
+ - IMAGE=latest TESTS=30
+ - IMAGE=latest TESTS=31
+ - IMAGE=latest TESTS=40
+ - IMAGE=latest TESTS=50
+ - IMAGE=latest TESTS=70
+ - IMAGE=latest TESTS=99
+ - IMAGE=rawhide TESTS=01
+ - IMAGE=rawhide TESTS=02
+ - IMAGE=rawhide TESTS=03
+ - IMAGE=rawhide TESTS=04
+ - IMAGE=rawhide TESTS=10
+ - IMAGE=rawhide TESTS=11
+ - IMAGE=rawhide TESTS=12
+ - IMAGE=rawhide TESTS=13
+ - IMAGE=rawhide TESTS=14
+ - IMAGE=rawhide TESTS=15
+ - IMAGE=rawhide TESTS=16
+ - IMAGE=rawhide TESTS=17
+ - IMAGE=rawhide TESTS=18
+ - IMAGE=rawhide TESTS=20
+ - IMAGE=rawhide TESTS=30
+ - IMAGE=rawhide TESTS=31
+ - IMAGE=rawhide TESTS=40
+ - IMAGE=rawhide TESTS=50
+ - IMAGE=rawhide TESTS=70
+ - IMAGE=rawhide TESTS=99
+
before_script:
- docker pull fedora:$IMAGE
script:
-- docker run --privileged -it -v $(pwd)/:/dracut fedora:$IMAGE /dracut/fedora-test.sh $IMAGE-$$
+- docker run --privileged -it -v $(pwd)/:/dracut fedora:$IMAGE /dracut/fedora-test.sh $IMAGE-$$ $TESTS
notifications:
webhooks:
urls:
diff --git a/fedora-test.sh b/fedora-test.sh
index 9528f08c..df7147c6 100755
--- a/fedora-test.sh
+++ b/fedora-test.sh
@@ -2,9 +2,10 @@
set -ex
-cd ${0%/*}
+[[ -d ${0%/*} ]] && cd ${0%/*}
RUN_ID="$1"
+TESTS=$2
dnf -y update --best --allowerasing
@@ -51,6 +52,7 @@ cd test
time sudo make \
KVERSION=$(rpm -qa kernel --qf '%{VERSION}-%{RELEASE}.%{ARCH}\n' | sort -rn | head -1) \
TEST_RUN_ID=$RUN_ID \
+ ${TESTS:+TESTS="$TESTS"} \
-k V=2 \
SKIP="14 16" \
check

View File

@ -1,94 +0,0 @@
From 1ebbe2eb7b177f169e48df6318d9169e9ae1afe9 Mon Sep 17 00:00:00 2001
From: Harald Hoyer <harald@redhat.com>
Date: Thu, 16 Aug 2018 09:10:29 +0200
Subject: [PATCH] travis: combine jobs
---
.travis.yml | 64 +++++++++++++++++++++----------------------------------------
1 file changed, 22 insertions(+), 42 deletions(-)
diff --git a/.travis.yml b/.travis.yml
index fbaafdac..f2cd8b26 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -1,49 +1,29 @@
language: generic
sudo: required
services:
- - docker
+- docker
env:
matrix:
- - IMAGE=latest TESTS=01
- - IMAGE=latest TESTS=02
- - IMAGE=latest TESTS=03
- - IMAGE=latest TESTS=04
- - IMAGE=latest TESTS=10
- - IMAGE=latest TESTS=11
- - IMAGE=latest TESTS=12
- - IMAGE=latest TESTS=13
- - IMAGE=latest TESTS=14
- - IMAGE=latest TESTS=15
- - IMAGE=latest TESTS=16
- - IMAGE=latest TESTS=17
- - IMAGE=latest TESTS=18
- - IMAGE=latest TESTS=20
- - IMAGE=latest TESTS=30
- - IMAGE=latest TESTS=31
- - IMAGE=latest TESTS=40
- - IMAGE=latest TESTS=50
- - IMAGE=latest TESTS=70
- - IMAGE=latest TESTS=99
- - IMAGE=rawhide TESTS=01
- - IMAGE=rawhide TESTS=02
- - IMAGE=rawhide TESTS=03
- - IMAGE=rawhide TESTS=04
- - IMAGE=rawhide TESTS=10
- - IMAGE=rawhide TESTS=11
- - IMAGE=rawhide TESTS=12
- - IMAGE=rawhide TESTS=13
- - IMAGE=rawhide TESTS=14
- - IMAGE=rawhide TESTS=15
- - IMAGE=rawhide TESTS=16
- - IMAGE=rawhide TESTS=17
- - IMAGE=rawhide TESTS=18
- - IMAGE=rawhide TESTS=20
- - IMAGE=rawhide TESTS=30
- - IMAGE=rawhide TESTS=31
- - IMAGE=rawhide TESTS=40
- - IMAGE=rawhide TESTS=50
- - IMAGE=rawhide TESTS=70
- - IMAGE=rawhide TESTS=99
+ - IMAGE=latest TESTS=01
+ - IMAGE=latest TESTS="02 03 04"
+ - IMAGE=latest TESTS="10 11 12 13 15 17 18"
+ - IMAGE=latest TESTS=20
+ - IMAGE=latest TESTS=30
+ - IMAGE=latest TESTS=31
+ - IMAGE=latest TESTS=40
+ - IMAGE=latest TESTS=50
+ - IMAGE=latest TESTS=70
+ - IMAGE=latest TESTS=99
+ - IMAGE=rawhide TESTS=01
+ - IMAGE=rawhide TESTS="02 03 04"
+ - IMAGE=rawhide TESTS="10 11 12 13 15 17 18"
+ - IMAGE=rawhide TESTS=20
+ - IMAGE=rawhide TESTS=30
+ - IMAGE=rawhide TESTS=31
+ - IMAGE=rawhide TESTS=40
+ - IMAGE=rawhide TESTS=50
+ - IMAGE=rawhide TESTS=70
+ - IMAGE=rawhide TESTS=99
before_script:
- docker pull fedora:$IMAGE
@@ -52,7 +32,7 @@ script:
notifications:
webhooks:
urls:
- - https://webhooks.gitter.im/e/effa917ca3e0ed5fd00e
+ - https://webhooks.gitter.im/e/effa917ca3e0ed5fd00e
on_success: change # options: [always|never|change] default: always
on_failure: always # options: [always|never|change] default: always
on_start: never # options: [always|never|change] default: always

View File

@ -1,24 +0,0 @@
From 311198868044b79e8e4f37872514f580b51e4ceb Mon Sep 17 00:00:00 2001
From: Harald Hoyer <harald@redhat.com>
Date: Thu, 16 Aug 2018 09:19:52 +0200
Subject: [PATCH] dracut.sh: remove bogus dir removal for --rebuild
---
dracut.sh | 3 ---
1 file changed, 3 deletions(-)
diff --git a/dracut.sh b/dracut.sh
index 6614d27d..8ee8c168 100755
--- a/dracut.sh
+++ b/dracut.sh
@@ -474,9 +474,6 @@ if [[ $append_args_l == "yes" ]]; then
eval set -- "$TEMP"
rearrange_params "$@"
fi
-
- # clean the temporarily used scratch-pad directory
- rm -rf $scratch_dir
fi
unset PARMS_TO_STORE

View File

@ -1,49 +0,0 @@
From 01f9d0d9bf47f80823094de6b184ee67023406c7 Mon Sep 17 00:00:00 2001
From: Harald Hoyer <harald@redhat.com>
Date: Thu, 16 Aug 2018 09:26:35 +0200
Subject: [PATCH] travis: combine more tests
---
.travis.yml | 14 +++++---------
1 file changed, 5 insertions(+), 9 deletions(-)
diff --git a/.travis.yml b/.travis.yml
index f2cd8b26..a99418e3 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -5,21 +5,17 @@ services:
env:
matrix:
- IMAGE=latest TESTS=01
- - IMAGE=latest TESTS="02 03 04"
- - IMAGE=latest TESTS="10 11 12 13 15 17 18"
+ - IMAGE=latest TESTS="02 03 04 10 11 12 13 15 17 18"
- IMAGE=latest TESTS=20
- - IMAGE=latest TESTS=30
- - IMAGE=latest TESTS=31
+ - IMAGE=latest TESTS="30 31"
- IMAGE=latest TESTS=40
- IMAGE=latest TESTS=50
- IMAGE=latest TESTS=70
- IMAGE=latest TESTS=99
- IMAGE=rawhide TESTS=01
- - IMAGE=rawhide TESTS="02 03 04"
- - IMAGE=rawhide TESTS="10 11 12 13 15 17 18"
+ - IMAGE=rawhide TESTS="02 03 04 10 11 12 13 15 17 18"
- IMAGE=rawhide TESTS=20
- - IMAGE=rawhide TESTS=30
- - IMAGE=rawhide TESTS=31
+ - IMAGE=rawhide TESTS="30 31"
- IMAGE=rawhide TESTS=40
- IMAGE=rawhide TESTS=50
- IMAGE=rawhide TESTS=70
@@ -28,7 +24,7 @@ env:
before_script:
- docker pull fedora:$IMAGE
script:
-- docker run --privileged -it -v $(pwd)/:/dracut fedora:$IMAGE /dracut/fedora-test.sh $IMAGE-$$ $TESTS
+- docker run --privileged -it -v $(pwd)/:/dracut fedora:$IMAGE /dracut/fedora-test.sh $IMAGE-$$ "$TESTS"
notifications:
webhooks:
urls:

View File

@ -1,52 +0,0 @@
From 3c8d3a65656707148d5f9e5de1c0191339a72053 Mon Sep 17 00:00:00 2001
From: Harald Hoyer <harald@redhat.com>
Date: Thu, 16 Aug 2018 09:35:33 +0200
Subject: [PATCH] travis: don't run TEST-40-NBD
---
.travis.yml | 16 +++++++---------
fedora-test.sh | 1 -
2 files changed, 7 insertions(+), 10 deletions(-)
diff --git a/.travis.yml b/.travis.yml
index a99418e3..d6d3947c 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -4,19 +4,17 @@ services:
- docker
env:
matrix:
- - IMAGE=latest TESTS=01
- - IMAGE=latest TESTS="02 03 04 10 11 12 13 15 17 18"
- - IMAGE=latest TESTS=20
- - IMAGE=latest TESTS="30 31"
- - IMAGE=latest TESTS=40
- - IMAGE=latest TESTS=50
- - IMAGE=latest TESTS=70
- - IMAGE=latest TESTS=99
+ - IMAGE=latest TESTS=01
+ - IMAGE=latest TESTS="02 03 04 10 11 12 13 15 17 18"
+ - IMAGE=latest TESTS=20
+ - IMAGE=latest TESTS="30 31"
+ - IMAGE=latest TESTS=50
+ - IMAGE=latest TESTS=70
+ - IMAGE=latest TESTS=99
- IMAGE=rawhide TESTS=01
- IMAGE=rawhide TESTS="02 03 04 10 11 12 13 15 17 18"
- IMAGE=rawhide TESTS=20
- IMAGE=rawhide TESTS="30 31"
- - IMAGE=rawhide TESTS=40
- IMAGE=rawhide TESTS=50
- IMAGE=rawhide TESTS=70
- IMAGE=rawhide TESTS=99
diff --git a/fedora-test.sh b/fedora-test.sh
index df7147c6..5e7d34d6 100755
--- a/fedora-test.sh
+++ b/fedora-test.sh
@@ -54,5 +54,4 @@ time sudo make \
TEST_RUN_ID=$RUN_ID \
${TESTS:+TESTS="$TESTS"} \
-k V=2 \
- SKIP="14 16" \
check

View File

@ -1,32 +0,0 @@
From 79afb279c273d46b65fafc2c686ed99c5433fe94 Mon Sep 17 00:00:00 2001
From: Harald Hoyer <harald@redhat.com>
Date: Thu, 16 Aug 2018 09:48:02 +0200
Subject: [PATCH] travis: fedora-test.sh send dnf output to dev/null
---
fedora-test.sh | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/fedora-test.sh b/fedora-test.sh
index 5e7d34d6..e7d0f633 100755
--- a/fedora-test.sh
+++ b/fedora-test.sh
@@ -7,7 +7,7 @@ set -ex
RUN_ID="$1"
TESTS=$2
-dnf -y update --best --allowerasing
+dnf -y update --best --allowerasing &>/dev/null
dnf -y install --best --allowerasing \
dash \
@@ -39,7 +39,7 @@ dnf -y install --best --allowerasing \
/usr/bin/qemu-kvm \
/usr/bin/qemu-system-$(uname -i) \
e2fsprogs \
- $NULL
+ $NULL &>/dev/null
./configure

View File

@ -1,46 +0,0 @@
From c31a80c9edf8603cbdc5d2fe4465571a2ffcdff0 Mon Sep 17 00:00:00 2001
From: Harald Hoyer <harald@redhat.com>
Date: Thu, 16 Aug 2018 09:50:52 +0200
Subject: [PATCH] TEST-01: remove memdebug
---
.travis.yml | 6 ++----
test/TEST-01-BASIC/test.sh | 2 +-
2 files changed, 3 insertions(+), 5 deletions(-)
diff --git a/.travis.yml b/.travis.yml
index d6d3947c..1f50b6d9 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -4,15 +4,13 @@ services:
- docker
env:
matrix:
- - IMAGE=latest TESTS=01
- - IMAGE=latest TESTS="02 03 04 10 11 12 13 15 17 18"
+ - IMAGE=latest TESTS="01 02 03 04 10 11 12 13 15 17 18"
- IMAGE=latest TESTS=20
- IMAGE=latest TESTS="30 31"
- IMAGE=latest TESTS=50
- IMAGE=latest TESTS=70
- IMAGE=latest TESTS=99
- - IMAGE=rawhide TESTS=01
- - IMAGE=rawhide TESTS="02 03 04 10 11 12 13 15 17 18"
+ - IMAGE=rawhide TESTS="01 02 03 04 10 11 12 13 15 17 18"
- IMAGE=rawhide TESTS=20
- IMAGE=rawhide TESTS="30 31"
- IMAGE=rawhide TESTS=50
diff --git a/test/TEST-01-BASIC/test.sh b/test/TEST-01-BASIC/test.sh
index 137249f4..455afef6 100755
--- a/test/TEST-01-BASIC/test.sh
+++ b/test/TEST-01-BASIC/test.sh
@@ -15,7 +15,7 @@ test_run() {
-net none \
-watchdog i6300esb -watchdog-action poweroff \
-no-reboot \
- -append "panic=1 root=LABEL=dracut rw systemd.log_level=debug systemd.log_target=console rd.retry=3 rd.debug console=ttyS0,115200n81 rd.shell=0 $DEBUGFAIL rd.memdebug=4" \
+ -append "panic=1 root=LABEL=dracut rw systemd.log_level=debug systemd.log_target=console rd.retry=3 rd.debug console=ttyS0,115200n81 rd.shell=0 $DEBUGFAIL" \
-initrd $TESTDIR/initramfs.testing || return 1
grep -F -m 1 -q dracut-root-block-success $TESTDIR/result || return 1
}

View File

@ -1,149 +0,0 @@
From 51d0a545557d535f814e402fff20274f9e125d85 Mon Sep 17 00:00:00 2001
From: Harald Hoyer <harald@redhat.com>
Date: Thu, 16 Aug 2018 10:16:52 +0200
Subject: [PATCH] travis: use own logtee.c to reduce log output
---
.travis.yml | 12 ++++++------
Makefile | 3 +++
fedora-test.sh | 2 +-
logtee.c | 46 ++++++++++++++++++++++++++++++++++++++++++++++
test/test-functions | 15 ++++++++++++++-
5 files changed, 70 insertions(+), 8 deletions(-)
diff --git a/.travis.yml b/.travis.yml
index 1f50b6d9..5298a816 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -10,12 +10,12 @@ env:
- IMAGE=latest TESTS=50
- IMAGE=latest TESTS=70
- IMAGE=latest TESTS=99
- - IMAGE=rawhide TESTS="01 02 03 04 10 11 12 13 15 17 18"
- - IMAGE=rawhide TESTS=20
- - IMAGE=rawhide TESTS="30 31"
- - IMAGE=rawhide TESTS=50
- - IMAGE=rawhide TESTS=70
- - IMAGE=rawhide TESTS=99
+# - IMAGE=rawhide TESTS="01 02 03 04 10 11 12 13 15 17 18"
+# - IMAGE=rawhide TESTS=20
+# - IMAGE=rawhide TESTS="30 31"
+# - IMAGE=rawhide TESTS=50
+# - IMAGE=rawhide TESTS=70
+# - IMAGE=rawhide TESTS=99
before_script:
- docker pull fedora:$IMAGE
diff --git a/Makefile b/Makefile
index 414fb330..cd02dab0 100644
--- a/Makefile
+++ b/Makefile
@@ -63,6 +63,9 @@ install/strv.o: install/strv.c install/strv.h install/util.h install/macro.h ins
install/dracut-install: $(DRACUT_INSTALL_OBJECTS)
$(CC) $(LDFLAGS) -o $@ $(DRACUT_INSTALL_OBJECTS) $(LDLIBS) $(KMOD_LIBS)
+logtee: logtee.c
+ $(CC) $(LDFLAGS) -o $@ $<
+
dracut-install: install/dracut-install
ln -fs $< $@
diff --git a/fedora-test.sh b/fedora-test.sh
index e7d0f633..af38bc33 100755
--- a/fedora-test.sh
+++ b/fedora-test.sh
@@ -45,7 +45,7 @@ dnf -y install --best --allowerasing \
NCPU=$(getconf _NPROCESSORS_ONLN)
-make -j$NCPU all syncheck rpm
+make -j$NCPU all syncheck rpm logtee
cd test
diff --git a/logtee.c b/logtee.c
new file mode 100644
index 00000000..2f1937d4
--- /dev/null
+++ b/logtee.c
@@ -0,0 +1,46 @@
+#define _GNU_SOURCE
+#include <fcntl.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <unistd.h>
+#include <errno.h>
+#include <limits.h>
+
+int
+main(int argc, char *argv[])
+{
+ int fd;
+ int len, slen;
+
+ if (argc != 2) {
+ fprintf(stderr, "Usage: %s <file>\n", argv[0]);
+ exit(EXIT_FAILURE);
+ }
+
+ fd = open(argv[1], O_WRONLY | O_CREAT | O_TRUNC, 0644);
+ if (fd == -1) {
+ perror("open");
+ exit(EXIT_FAILURE);
+ }
+
+ fprintf(stderr, "Logging to %s: ", argv[1]);
+
+ do {
+ len = splice(STDIN_FILENO, NULL, fd, NULL,
+ 65536, SPLICE_F_MOVE);
+
+ if (len < 0) {
+ if (errno == EAGAIN)
+ continue;
+ perror("tee");
+ exit(EXIT_FAILURE);
+ } else
+ if (len == 0)
+ break;
+ fprintf(stderr, ".", len);
+ } while (1);
+ close(fd);
+ fprintf(stderr, "\n");
+ exit(EXIT_SUCCESS);
+}
+
diff --git a/test/test-functions b/test/test-functions
index d6b28d20..02ceafec 100644
--- a/test/test-functions
+++ b/test/test-functions
@@ -60,7 +60,7 @@ while (($# > 0)); do
else
echo "TEST: $TEST_DESCRIPTION [STARTED]";
fi
- if ! [[ "$V" ]]; then
+ if [[ "$V" == "1" ]]; then
(
test_setup && test_run
ret=$?
@@ -69,6 +69,19 @@ while (($# > 0)); do
rm -f -- .testdir${TEST_RUN_ID:+-$TEST_RUN_ID}
exit $ret
) </dev/null >test-${TEST_RUN_ID:+-$TEST_RUN_ID}.log 2>&1
+ elif [[ "$V" == "2" ]]; then
+ set -o pipefail
+ (
+ test_setup && test_run
+ ret=$?
+ test_cleanup
+ if ((ret!=0)) && [[ -f "$TESTDIR"/server.log ]]; then
+ mv [[ -f "$TESTDIR"/server.log ]] ./server${TEST_RUN_ID:+-$TEST_RUN_ID}.log
+ fi
+ rm -fr -- "$TESTDIR"
+ rm -f -- .testdir${TEST_RUN_ID:+-$TEST_RUN_ID}
+ exit $ret
+ ) </dev/null 2>&1 | $basedir/logtee test-${TEST_RUN_ID:+-$TEST_RUN_ID}.log
else
set -o pipefail
(

View File

@ -1,24 +0,0 @@
From 110063c5850ea1cb95dd2af171adff1a03305e60 Mon Sep 17 00:00:00 2001
From: Harald Hoyer <harald@redhat.com>
Date: Thu, 16 Aug 2018 10:29:16 +0200
Subject: [PATCH] travis: git check
---
.travis.yml | 3 +++
1 file changed, 3 insertions(+)
diff --git a/.travis.yml b/.travis.yml
index 5298a816..72cfe8f9 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -19,6 +19,9 @@ env:
before_script:
- docker pull fedora:$IMAGE
+- git describe --abbrev=0 --tags || :
+- git describe --tags || :
+
script:
- docker run --privileged -it -v $(pwd)/:/dracut fedora:$IMAGE /dracut/fedora-test.sh $IMAGE-$$ "$TESTS"
notifications:

View File

@ -1,39 +0,0 @@
From 6f90be2971439e84c4efb61d1fc888b165b3f3ca Mon Sep 17 00:00:00 2001
From: Harald Hoyer <harald@redhat.com>
Date: Thu, 16 Aug 2018 10:33:06 +0200
Subject: [PATCH] travis: fixup
---
.travis.yml | 13 ++++---------
1 file changed, 4 insertions(+), 9 deletions(-)
diff --git a/.travis.yml b/.travis.yml
index 72cfe8f9..cd05ceae 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -10,20 +10,15 @@ env:
- IMAGE=latest TESTS=50
- IMAGE=latest TESTS=70
- IMAGE=latest TESTS=99
-# - IMAGE=rawhide TESTS="01 02 03 04 10 11 12 13 15 17 18"
-# - IMAGE=rawhide TESTS=20
-# - IMAGE=rawhide TESTS="30 31"
-# - IMAGE=rawhide TESTS=50
-# - IMAGE=rawhide TESTS=70
-# - IMAGE=rawhide TESTS=99
before_script:
-- docker pull fedora:$IMAGE
-- git describe --abbrev=0 --tags || :
-- git describe --tags || :
+ - docker pull fedora:$IMAGE
+ - git describe --abbrev=0 --tags || :
+ - git describe --tags || :
script:
- docker run --privileged -it -v $(pwd)/:/dracut fedora:$IMAGE /dracut/fedora-test.sh $IMAGE-$$ "$TESTS"
+
notifications:
webhooks:
urls:

View File

@ -1,26 +0,0 @@
From 2b77ba0b75dad8f87c141fc517f2999b2e45ae0c Mon Sep 17 00:00:00 2001
From: Harald Hoyer <harald@redhat.com>
Date: Thu, 16 Aug 2018 10:36:17 +0200
Subject: [PATCH] travis: fight with yaml
---
.travis.yml | 5 +++--
1 file changed, 3 insertions(+), 2 deletions(-)
diff --git a/.travis.yml b/.travis.yml
index cd05ceae..38b29ca4 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -13,8 +13,9 @@ env:
before_script:
- docker pull fedora:$IMAGE
- - git describe --abbrev=0 --tags || :
- - git describe --tags || :
+ - |
+ git describe --abbrev=0 --tags || :
+ git describe --tags || :
script:
- docker run --privileged -it -v $(pwd)/:/dracut fedora:$IMAGE /dracut/fedora-test.sh $IMAGE-$$ "$TESTS"

View File

@ -1,22 +0,0 @@
From 9f02b291ac9c315b94d42c4c029645fb1298dac4 Mon Sep 17 00:00:00 2001
From: Harald Hoyer <harald@redhat.com>
Date: Thu, 16 Aug 2018 10:39:49 +0200
Subject: [PATCH] travis: git pull --tags
---
.travis.yml | 1 +
1 file changed, 1 insertion(+)
diff --git a/.travis.yml b/.travis.yml
index 38b29ca4..01be428f 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -13,6 +13,7 @@ env:
before_script:
- docker pull fedora:$IMAGE
+ - git pull --tags
- |
git describe --abbrev=0 --tags || :
git describe --tags || :

View File

@ -1,38 +0,0 @@
From 0ae584824519995219857ca7f447e73f31a6da9a Mon Sep 17 00:00:00 2001
From: Harald Hoyer <harald@redhat.com>
Date: Thu, 16 Aug 2018 10:46:57 +0200
Subject: [PATCH] travis: git pull more depth
---
.travis.yml | 2 +-
Makefile | 4 ++--
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/.travis.yml b/.travis.yml
index 01be428f..2df45f4d 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -13,7 +13,7 @@ env:
before_script:
- docker pull fedora:$IMAGE
- - git pull --tags
+ - git pull --depth=100
- |
git describe --abbrev=0 --tags || :
git describe --tags || :
diff --git a/Makefile b/Makefile
index cd02dab0..80623437 100644
--- a/Makefile
+++ b/Makefile
@@ -1,7 +1,7 @@
-include dracut-version.sh
-VERSION ?= $(shell [ -d .git ] && git describe --abbrev=0 --tags 2>/dev/null || echo $(DRACUT_VERSION))
-GITVERSION ?= $(shell [ -d .git ] && { v=$$(git describe --tags 2>/dev/null); [ -n "$$v" ] && [ $${v\#*-} != $$v ] && echo -$${v\#*-}; } )
+VERSION ?= $(shell [ -d .git ] && git describe --abbrev=0 --tags --always 2>/dev/null || echo $(DRACUT_VERSION))
+GITVERSION ?= $(shell [ -d .git ] && { v=$$(git describe --tags --always 2>/dev/null); [ -n "$$v" ] && [ $${v\#*-} != $$v ] && echo -$${v\#*-}; } )
-include Makefile.inc

View File

@ -1,66 +0,0 @@
From 67f43d2124cb827f45f4a1f3a2c1aae7cb08378e Mon Sep 17 00:00:00 2001
From: Harald Hoyer <harald@redhat.com>
Date: Thu, 16 Aug 2018 11:13:55 +0200
Subject: [PATCH] test: fixed test.log name
---
test/test-functions | 14 +++++++-------
1 file changed, 7 insertions(+), 7 deletions(-)
diff --git a/test/test-functions b/test/test-functions
index 02ceafec..0c9d88c8 100644
--- a/test/test-functions
+++ b/test/test-functions
@@ -54,7 +54,7 @@ while (($# > 0)); do
exit $?;;
--all)
check_root
- if ! test_check 2&>test-${TEST_RUN_ID:+-$TEST_RUN_ID}.log ; then
+ if ! test_check 2&>test${TEST_RUN_ID:+-$TEST_RUN_ID}.log ; then
echo -e "TEST: $TEST_DESCRIPTION " $COLOR_WARNING "[SKIPPED]" $COLOR_NORMAL
exit 0;
else
@@ -68,7 +68,7 @@ while (($# > 0)); do
rm -fr -- "$TESTDIR"
rm -f -- .testdir${TEST_RUN_ID:+-$TEST_RUN_ID}
exit $ret
- ) </dev/null >test-${TEST_RUN_ID:+-$TEST_RUN_ID}.log 2>&1
+ ) </dev/null >test${TEST_RUN_ID:+-$TEST_RUN_ID}.log 2>&1
elif [[ "$V" == "2" ]]; then
set -o pipefail
(
@@ -81,7 +81,7 @@ while (($# > 0)); do
rm -fr -- "$TESTDIR"
rm -f -- .testdir${TEST_RUN_ID:+-$TEST_RUN_ID}
exit $ret
- ) </dev/null 2>&1 | $basedir/logtee test-${TEST_RUN_ID:+-$TEST_RUN_ID}.log
+ ) </dev/null 2>&1 | $basedir/logtee test${TEST_RUN_ID:+-$TEST_RUN_ID}.log
else
set -o pipefail
(
@@ -94,20 +94,20 @@ while (($# > 0)); do
rm -fr -- "$TESTDIR"
rm -f -- .testdir${TEST_RUN_ID:+-$TEST_RUN_ID}
exit $ret
- ) </dev/null 2>&1 | tee test-${TEST_RUN_ID:+-$TEST_RUN_ID}.log
+ ) </dev/null 2>&1 | tee test${TEST_RUN_ID:+-$TEST_RUN_ID}.log
fi
ret=$?
set +o pipefail
if [ $ret -eq 0 ]; then
- rm -- test-${TEST_RUN_ID:+-$TEST_RUN_ID}.log
+ rm -- test${TEST_RUN_ID:+-$TEST_RUN_ID}.log
echo -e "TEST: $TEST_DESCRIPTION " $COLOR_SUCCESS "[OK]" $COLOR_NORMAL
else
echo -e "TEST: $TEST_DESCRIPTION " $COLOR_FAILURE "[FAILED]" $COLOR_NORMAL
if [ "$V" == "2" ]; then
- cat $(pwd)/server${TEST_RUN_ID:+-$TEST_RUN_ID}.log $(pwd)/test-${TEST_RUN_ID:+-$TEST_RUN_ID}.log
+ cat $(pwd)/server${TEST_RUN_ID:+-$TEST_RUN_ID}.log $(pwd)/test${TEST_RUN_ID:+-$TEST_RUN_ID}.log
echo -e "TEST: $TEST_DESCRIPTION " $COLOR_FAILURE "[FAILED]" $COLOR_NORMAL
else
- echo "see $(pwd)/test-${TEST_RUN_ID:+-$TEST_RUN_ID}.log"
+ echo "see $(pwd)/test${TEST_RUN_ID:+-$TEST_RUN_ID}.log"
fi
fi
exit $ret;;

View File

@ -1,55 +0,0 @@
From f59664a01fa9b525e211fbcb837bf8b54cac9acb Mon Sep 17 00:00:00 2001
From: Harald Hoyer <harald@redhat.com>
Date: Thu, 16 Aug 2018 11:14:11 +0200
Subject: [PATCH] logtee: reduce output
---
logtee.c | 16 ++++++++++++----
1 file changed, 12 insertions(+), 4 deletions(-)
diff --git a/logtee.c b/logtee.c
index 2f1937d4..2690e72d 100644
--- a/logtee.c
+++ b/logtee.c
@@ -6,6 +6,8 @@
#include <errno.h>
#include <limits.h>
+#define BUFLEN 4096
+
int
main(int argc, char *argv[])
{
@@ -25,9 +27,11 @@ main(int argc, char *argv[])
fprintf(stderr, "Logging to %s: ", argv[1]);
+ slen = 0;
+
do {
len = splice(STDIN_FILENO, NULL, fd, NULL,
- 65536, SPLICE_F_MOVE);
+ BUFLEN, SPLICE_F_MOVE);
if (len < 0) {
if (errno == EAGAIN)
@@ -37,10 +41,14 @@ main(int argc, char *argv[])
} else
if (len == 0)
break;
- fprintf(stderr, ".", len);
+ slen += len;
+ if ((slen/BUFLEN) > 0) {
+ fprintf(stderr, ".");
+ }
+ slen = slen % BUFLEN;
+
} while (1);
close(fd);
fprintf(stderr, "\n");
exit(EXIT_SUCCESS);
-}
-
+}
\ No newline at end of file

View File

@ -1,30 +0,0 @@
From c128b969bb860dee863fcd3beed1f4097f6fb44a Mon Sep 17 00:00:00 2001
From: Harald Hoyer <harald@redhat.com>
Date: Thu, 16 Aug 2018 11:15:16 +0200
Subject: [PATCH] travis: combine more tests
---
.travis.yml | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/.travis.yml b/.travis.yml
index 2df45f4d..dfb4a616 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -4,12 +4,12 @@ services:
- docker
env:
matrix:
- - IMAGE=latest TESTS="01 02 03 04 10 11 12 13 15 17 18"
+ - IMAGE=latest TESTS="01 02 03 04 10 11"
+ - IMAGE=latest TESTS="12 13 15 17 18"
- IMAGE=latest TESTS=20
- IMAGE=latest TESTS="30 31"
- IMAGE=latest TESTS=50
- - IMAGE=latest TESTS=70
- - IMAGE=latest TESTS=99
+ - IMAGE=latest TESTS="70 99"
before_script:
- docker pull fedora:$IMAGE

View File

@ -1,23 +0,0 @@
From f8cad00948c10107f84b9fcba812589a256f8f80 Mon Sep 17 00:00:00 2001
From: Harald Hoyer <harald@redhat.com>
Date: Thu, 16 Aug 2018 11:47:21 +0200
Subject: [PATCH] test: for V=2 tail only the last MB of logs
---
test/test-functions | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/test/test-functions b/test/test-functions
index 0c9d88c8..6d7f418b 100644
--- a/test/test-functions
+++ b/test/test-functions
@@ -104,7 +104,7 @@ while (($# > 0)); do
else
echo -e "TEST: $TEST_DESCRIPTION " $COLOR_FAILURE "[FAILED]" $COLOR_NORMAL
if [ "$V" == "2" ]; then
- cat $(pwd)/server${TEST_RUN_ID:+-$TEST_RUN_ID}.log $(pwd)/test${TEST_RUN_ID:+-$TEST_RUN_ID}.log
+ tail -c 1048576 $(pwd)/server${TEST_RUN_ID:+-$TEST_RUN_ID}.log $(pwd)/test${TEST_RUN_ID:+-$TEST_RUN_ID}.log
echo -e "TEST: $TEST_DESCRIPTION " $COLOR_FAILURE "[FAILED]" $COLOR_NORMAL
else
echo "see $(pwd)/test${TEST_RUN_ID:+-$TEST_RUN_ID}.log"

View File

@ -1,65 +0,0 @@
From 9c034dc326b4acd8e66af15f76f151311a5408bb Mon Sep 17 00:00:00 2001
From: Harald Hoyer <harald@redhat.com>
Date: Thu, 16 Aug 2018 11:57:30 +0200
Subject: [PATCH] travis: no rpm check for all matrix tests
---
.travis.yml | 10 +++++-----
fedora-test.sh | 24 ++++++++++++++----------
2 files changed, 19 insertions(+), 15 deletions(-)
diff --git a/.travis.yml b/.travis.yml
index dfb4a616..075cbc6a 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -4,12 +4,12 @@ services:
- docker
env:
matrix:
- - IMAGE=latest TESTS="01 02 03 04 10 11"
- - IMAGE=latest TESTS="12 13 15 17 18"
+ - IMAGE=latest
+ - IMAGE=latest TESTS="01 02 03 04 10 11 12"
+ - IMAGE=latest TESTS="13 15 17 18"
- IMAGE=latest TESTS=20
- - IMAGE=latest TESTS="30 31"
- - IMAGE=latest TESTS=50
- - IMAGE=latest TESTS="70 99"
+ - IMAGE=latest TESTS="30 31 99"
+ - IMAGE=latest TESTS="50 70"
before_script:
- docker pull fedora:$IMAGE
diff --git a/fedora-test.sh b/fedora-test.sh
index af38bc33..87023a84 100755
--- a/fedora-test.sh
+++ b/fedora-test.sh
@@ -45,13 +45,17 @@ dnf -y install --best --allowerasing \
NCPU=$(getconf _NPROCESSORS_ONLN)
-make -j$NCPU all syncheck rpm logtee
-
-cd test
-
-time sudo make \
- KVERSION=$(rpm -qa kernel --qf '%{VERSION}-%{RELEASE}.%{ARCH}\n' | sort -rn | head -1) \
- TEST_RUN_ID=$RUN_ID \
- ${TESTS:+TESTS="$TESTS"} \
- -k V=2 \
- check
+if ! [[ $TESTS ]]; then
+ make -j$NCPU all syncheck rpm logtee
+else
+ make -j$NCPU all logtee
+
+ cd test
+
+ time sudo make \
+ KVERSION=$(rpm -qa kernel --qf '%{VERSION}-%{RELEASE}.%{ARCH}\n' | sort -rn | head -1) \
+ TEST_RUN_ID=$RUN_ID \
+ ${TESTS:+TESTS="$TESTS"} \
+ -k V=2 \
+ check
+fi

View File

@ -1,45 +0,0 @@
From 5a8f1aef556056de88d55bb398443fe2b57eae52 Mon Sep 17 00:00:00 2001
From: Harald Hoyer <harald@redhat.com>
Date: Thu, 16 Aug 2018 11:59:09 +0200
Subject: [PATCH] TEST-15-BTRFSRAID: sync in test-init
strange failure
---
test/TEST-15-BTRFSRAID/test-init.sh | 1 +
test/TEST-15-BTRFSRAID/test.sh | 3 ++-
2 files changed, 3 insertions(+), 1 deletion(-)
diff --git a/test/TEST-15-BTRFSRAID/test-init.sh b/test/TEST-15-BTRFSRAID/test-init.sh
index 8f7cdf3a..ab9021df 100755
--- a/test/TEST-15-BTRFSRAID/test-init.sh
+++ b/test/TEST-15-BTRFSRAID/test-init.sh
@@ -2,6 +2,7 @@
export PATH=/sbin:/bin:/usr/sbin:/usr/bin
exec >/dev/console 2>&1
echo "dracut-root-block-success" >/dev/sda1
+sync
export TERM=linux
export PS1='initramfs-test:\w\$ '
[ -f /etc/fstab ] || ln -s /proc/mounts /etc/fstab
diff --git a/test/TEST-15-BTRFSRAID/test.sh b/test/TEST-15-BTRFSRAID/test.sh
index b8969863..3936ade2 100755
--- a/test/TEST-15-BTRFSRAID/test.sh
+++ b/test/TEST-15-BTRFSRAID/test.sh
@@ -15,6 +15,7 @@ test_run() {
-append "panic=1 root=LABEL=root rw rd.retry=3 rd.info console=ttyS0,115200n81 selinux=0 rd.shell=0 $DEBUGFAIL" \
-initrd $TESTDIR/initramfs.testing
dd if=$DISKIMAGE bs=512 count=4 skip=2048 | grep -F -m 1 -q dracut-root-block-success $DISKIMAGE || return 1
+ return 0
}
test_setup() {
@@ -38,7 +39,7 @@ test_setup() {
mkdir -p -- var/lib/nfs/rpc_pipefs
)
inst_multiple sh df free ls shutdown poweroff stty cat ps ln ip \
- mount dmesg dhclient mkdir cp ping dhclient
+ mount dmesg dhclient mkdir cp ping dhclient sync
for _terminfodir in /lib/terminfo /etc/terminfo /usr/share/terminfo; do
[ -f ${_terminfodir}/l/linux ] && break
done

View File

@ -1,23 +0,0 @@
From 2699d8ff7eb41ffafba46194f29bab9670b9e874 Mon Sep 17 00:00:00 2001
From: Harald Hoyer <harald@redhat.com>
Date: Thu, 16 Aug 2018 12:03:40 +0200
Subject: [PATCH] TEST-99-RPM: removed --releasever
---
test/TEST-99-RPM/test.sh | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/test/TEST-99-RPM/test.sh b/test/TEST-99-RPM/test.sh
index b76a061b..984b9385 100755
--- a/test/TEST-99-RPM/test.sh
+++ b/test/TEST-99-RPM/test.sh
@@ -35,7 +35,7 @@ test_run() {
dnf_or_yum_cmd=yum
command -v dnf >/dev/null && { dnf_or_yum="dnf"; dnf_or_yum_cmd="dnf --allowerasing"; }
for (( i=0; i < 5 ; i++)); do
- $dnf_or_yum_cmd -v --nogpgcheck --installroot "$rootdir"/ --releasever 29 --disablerepo='*' \
+ $dnf_or_yum_cmd -v --nogpgcheck --installroot "$rootdir"/ --disablerepo='*' \
--enablerepo=fedora --enablerepo=updates \
install -y \
$dnf_or_yum \

View File

@ -1,50 +0,0 @@
From 7c62555bcffd7565883738df5e8c2150e887694f Mon Sep 17 00:00:00 2001
From: Harald Hoyer <harald@redhat.com>
Date: Thu, 16 Aug 2018 13:05:42 +0200
Subject: [PATCH] TEST-15-BTRFSRAID: use seperate disk image for boot result
---
test/TEST-15-BTRFSRAID/test-init.sh | 2 +-
test/TEST-15-BTRFSRAID/test.sh | 10 ++++++----
2 files changed, 7 insertions(+), 5 deletions(-)
diff --git a/test/TEST-15-BTRFSRAID/test-init.sh b/test/TEST-15-BTRFSRAID/test-init.sh
index ab9021df..ed66a2b3 100755
--- a/test/TEST-15-BTRFSRAID/test-init.sh
+++ b/test/TEST-15-BTRFSRAID/test-init.sh
@@ -1,7 +1,7 @@
#!/bin/sh
export PATH=/sbin:/bin:/usr/sbin:/usr/bin
exec >/dev/console 2>&1
-echo "dracut-root-block-success" >/dev/sda1
+echo "dracut-root-block-success" >/dev/sda
sync
export TERM=linux
export PS1='initramfs-test:\w\$ '
diff --git a/test/TEST-15-BTRFSRAID/test.sh b/test/TEST-15-BTRFSRAID/test.sh
index 3936ade2..092ed254 100755
--- a/test/TEST-15-BTRFSRAID/test.sh
+++ b/test/TEST-15-BTRFSRAID/test.sh
@@ -7,15 +7,17 @@ KVERSION=${KVERSION-$(uname -r)}
#DEBUGFAIL="rd.shell"
test_run() {
DISKIMAGE=$TESTDIR/TEST-15-BTRFSRAID-root.img
+ MARKER_DISKIMAGE=$TESTDIR/TEST-15-BTRFSRAID-marker.img
+ dd if=/dev/zero of=$MARKER_DISKIMAGE bs=512 count=10
$testdir/run-qemu \
- -drive format=raw,index=0,media=disk,file=$DISKIMAGE \
- -m 512M -smp 2 -nographic \
+ -drive format=raw,index=0,media=disk,file=$MARKER_DISKIMAGE \
+ -drive format=raw,index=1,media=disk,file=$DISKIMAGE \
+ -m 512M -smp 2 -nographic \
-net none \
-no-reboot \
-append "panic=1 root=LABEL=root rw rd.retry=3 rd.info console=ttyS0,115200n81 selinux=0 rd.shell=0 $DEBUGFAIL" \
-initrd $TESTDIR/initramfs.testing
- dd if=$DISKIMAGE bs=512 count=4 skip=2048 | grep -F -m 1 -q dracut-root-block-success $DISKIMAGE || return 1
- return 0
+ grep -F -m 1 -q dracut-root-block-success $MARKER_DISKIMAGE || return 1
}
test_setup() {

View File

@ -1,29 +0,0 @@
From 286685cb720f4150f363487c3702ea12d838f7df Mon Sep 17 00:00:00 2001
From: Harald Hoyer <harald@redhat.com>
Date: Thu, 16 Aug 2018 13:20:40 +0200
Subject: [PATCH] TEST-99-RPM: use releasever of the host system
---
test/TEST-99-RPM/test.sh | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/test/TEST-99-RPM/test.sh b/test/TEST-99-RPM/test.sh
index 984b9385..b4aca176 100755
--- a/test/TEST-99-RPM/test.sh
+++ b/test/TEST-99-RPM/test.sh
@@ -30,12 +30,12 @@ test_run() {
"$TESTDIR"/dracut-[0-9]*.$(arch).rpm \
"$TESTDIR"/dracut-network-[0-9]*.$(arch).rpm \
"$rootdir/$TESTDIR/"
-
+ . /etc/os-release
dnf_or_yum=yum
dnf_or_yum_cmd=yum
command -v dnf >/dev/null && { dnf_or_yum="dnf"; dnf_or_yum_cmd="dnf --allowerasing"; }
for (( i=0; i < 5 ; i++)); do
- $dnf_or_yum_cmd -v --nogpgcheck --installroot "$rootdir"/ --disablerepo='*' \
+ $dnf_or_yum_cmd -v --nogpgcheck --installroot "$rootdir"/ --releasever "$VERSION_ID" --disablerepo='*' \
--enablerepo=fedora --enablerepo=updates \
install -y \
$dnf_or_yum \

View File

@ -1,31 +0,0 @@
From f059ce76826645569575ee9631b23806764095fe Mon Sep 17 00:00:00 2001
From: Harald Hoyer <harald@redhat.com>
Date: Thu, 16 Aug 2018 13:56:19 +0200
Subject: [PATCH] travis: reshuffle tests
---
.travis.yml | 10 +++++-----
1 file changed, 5 insertions(+), 5 deletions(-)
diff --git a/.travis.yml b/.travis.yml
index 075cbc6a..8e20054a 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -5,11 +5,11 @@ services:
env:
matrix:
- IMAGE=latest
- - IMAGE=latest TESTS="01 02 03 04 10 11 12"
- - IMAGE=latest TESTS="13 15 17 18"
- - IMAGE=latest TESTS=20
- - IMAGE=latest TESTS="30 31 99"
- - IMAGE=latest TESTS="50 70"
+ - IMAGE=latest TESTS="13 15 17 18 30 31"
+ - IMAGE=latest TESTS="10 20"
+ - IMAGE=latest TESTS="01 02 03 04 70"
+ - IMAGE=latest TESTS="11 12 99"
+ - IMAGE=latest TESTS="50"
before_script:
- docker pull fedora:$IMAGE

View File

@ -1,34 +0,0 @@
From 06e12e4ba8d827eedd0882d9918f94758d52a579 Mon Sep 17 00:00:00 2001
From: Harald Hoyer <harald@redhat.com>
Date: Thu, 16 Aug 2018 14:25:23 +0200
Subject: [PATCH] travis: rebalance tests
---
.travis.yml | 10 +++++++---
1 file changed, 7 insertions(+), 3 deletions(-)
diff --git a/.travis.yml b/.travis.yml
index 8e20054a..91ecafed 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -7,12 +7,16 @@ env:
- IMAGE=latest
- IMAGE=latest TESTS="13 15 17 18 30 31"
- IMAGE=latest TESTS="10 20"
- - IMAGE=latest TESTS="01 02 03 04 70"
- - IMAGE=latest TESTS="11 12 99"
- - IMAGE=latest TESTS="50"
+ - IMAGE=latest TESTS="01 02 03 04 11 70"
+ - IMAGE=latest TESTS="12"
+ - IMAGE=latest TESTS="50 99"
before_script:
- docker pull fedora:$IMAGE
+ - |
+ sudo modprobe kvm-intel nested=y || :
+ sudo modprobe kvm-amd nested=y || :
+ dmesg | tail || :
- git pull --depth=100
- |
git describe --abbrev=0 --tags || :

View File

@ -1,30 +0,0 @@
From bd03d374b704324b595e2af1901e590ff7c5a92b Mon Sep 17 00:00:00 2001
From: Harald Hoyer <harald@redhat.com>
Date: Thu, 16 Aug 2018 14:28:54 +0200
Subject: [PATCH] travis: modprobe amd nested=1
GREAT!
$ modinfo kvm-intel kvm-amd| fgrep nested
parm: nested:bool
parm: nested:int
---
.travis.yml | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/.travis.yml b/.travis.yml
index 91ecafed..0932805f 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -14,8 +14,8 @@ env:
before_script:
- docker pull fedora:$IMAGE
- |
- sudo modprobe kvm-intel nested=y || :
- sudo modprobe kvm-amd nested=y || :
+ sudo modprobe kvm-intel nested=1 || :
+ sudo modprobe kvm-amd nested=1 || :
dmesg | tail || :
- git pull --depth=100
- |

View File

@ -1,44 +0,0 @@
From a17440713acdc943983c61cf12c56aa0a7e3a58d Mon Sep 17 00:00:00 2001
From: Harald Hoyer <harald@redhat.com>
Date: Thu, 16 Aug 2018 14:48:21 +0200
Subject: [PATCH] travis: reshuffle tests
long running tests first
---
.travis.yml | 22 +++++++++++++++++-----
1 file changed, 17 insertions(+), 5 deletions(-)
diff --git a/.travis.yml b/.travis.yml
index 0932805f..f1aab2a9 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -5,11 +5,23 @@ services:
env:
matrix:
- IMAGE=latest
- - IMAGE=latest TESTS="13 15 17 18 30 31"
- - IMAGE=latest TESTS="10 20"
- - IMAGE=latest TESTS="01 02 03 04 11 70"
- - IMAGE=latest TESTS="12"
- - IMAGE=latest TESTS="50 99"
+ - IMAGE=latest TESTS=01
+ - IMAGE=latest TESTS=12
+ - IMAGE=latest TESTS=20
+ - IMAGE=latest TESTS=50
+ - IMAGE=latest TESTS=31
+ - IMAGE=latest TESTS=30
+ - IMAGE=latest TESTS=70
+ - IMAGE=latest TESTS=99
+ - IMAGE=latest TESTS=02
+ - IMAGE=latest TESTS=03
+ - IMAGE=latest TESTS=04
+ - IMAGE=latest TESTS=10
+ - IMAGE=latest TESTS=11
+ - IMAGE=latest TESTS=13
+ - IMAGE=latest TESTS=15
+ - IMAGE=latest TESTS=17
+ - IMAGE=latest TESTS=18
before_script:
- docker pull fedora:$IMAGE

View File

@ -1,41 +0,0 @@
From f19063ac71b9a82d19f3be7f252bf90d98be454f Mon Sep 17 00:00:00 2001
From: Harald Hoyer <harald@redhat.com>
Date: Thu, 16 Aug 2018 15:28:04 +0200
Subject: [PATCH] travis: one last job reshuffle
---
.travis.yml | 15 +++------------
1 file changed, 3 insertions(+), 12 deletions(-)
diff --git a/.travis.yml b/.travis.yml
index f1aab2a9..83e9b4d1 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -5,23 +5,14 @@ services:
env:
matrix:
- IMAGE=latest
- - IMAGE=latest TESTS=01
+ - IMAGE=latest TESTS="01 02 03 04"
- IMAGE=latest TESTS=12
- IMAGE=latest TESTS=20
- IMAGE=latest TESTS=50
- - IMAGE=latest TESTS=31
- - IMAGE=latest TESTS=30
+ - IMAGE=latest TESTS="30 31"
- IMAGE=latest TESTS=70
- IMAGE=latest TESTS=99
- - IMAGE=latest TESTS=02
- - IMAGE=latest TESTS=03
- - IMAGE=latest TESTS=04
- - IMAGE=latest TESTS=10
- - IMAGE=latest TESTS=11
- - IMAGE=latest TESTS=13
- - IMAGE=latest TESTS=15
- - IMAGE=latest TESTS=17
- - IMAGE=latest TESTS=18
+ - IMAGE=latest TESTS="10 11 13 15 17"
before_script:
- docker pull fedora:$IMAGE

View File

@ -1,142 +0,0 @@
From 09132c732a36cc892310b26c829ac00c007d84ec Mon Sep 17 00:00:00 2001
From: Harald Hoyer <harald@redhat.com>
Date: Fri, 17 Aug 2018 15:38:03 +0200
Subject: [PATCH] test/test-functions: fixed V=1 logic
---
test/test-functions | 96 ++++++++++++++++++++++++++---------------------------
1 file changed, 48 insertions(+), 48 deletions(-)
diff --git a/test/test-functions b/test/test-functions
index 6d7f418b..a6254ec7 100644
--- a/test/test-functions
+++ b/test/test-functions
@@ -38,79 +38,79 @@ while (($# > 0)); do
case $1 in
--run)
check_root
- echo "TEST RUN: $TEST_DESCRIPTION"
- test_check && test_run
- exit $?;;
+ echo "TEST RUN: $TEST_DESCRIPTION"
+ test_check && test_run
+ exit $?;;
--setup)
check_root
- echo "TEST SETUP: $TEST_DESCRIPTION"
- test_check && test_setup
- exit $?;;
+ echo "TEST SETUP: $TEST_DESCRIPTION"
+ test_check && test_setup
+ exit $?;;
--clean)
- echo "TEST CLEANUP: $TEST_DESCRIPTION"
- test_cleanup
- rm -fr -- "$TESTDIR"
- rm -f -- .testdir${TEST_RUN_ID:+-$TEST_RUN_ID}
- exit $?;;
+ echo "TEST CLEANUP: $TEST_DESCRIPTION"
+ test_cleanup
+ rm -fr -- "$TESTDIR"
+ rm -f -- .testdir${TEST_RUN_ID:+-$TEST_RUN_ID}
+ exit $?;;
--all)
check_root
if ! test_check 2&>test${TEST_RUN_ID:+-$TEST_RUN_ID}.log ; then
- echo -e "TEST: $TEST_DESCRIPTION " $COLOR_WARNING "[SKIPPED]" $COLOR_NORMAL
- exit 0;
+ echo -e "TEST: $TEST_DESCRIPTION " $COLOR_WARNING "[SKIPPED]" $COLOR_NORMAL
+ exit 0;
else
- echo "TEST: $TEST_DESCRIPTION [STARTED]";
+ echo "TEST: $TEST_DESCRIPTION [STARTED]";
fi
if [[ "$V" == "1" ]]; then
- (
- test_setup && test_run
- ret=$?
- test_cleanup
- rm -fr -- "$TESTDIR"
- rm -f -- .testdir${TEST_RUN_ID:+-$TEST_RUN_ID}
- exit $ret
- ) </dev/null >test${TEST_RUN_ID:+-$TEST_RUN_ID}.log 2>&1
- elif [[ "$V" == "2" ]]; then
set -o pipefail
(
- test_setup && test_run
- ret=$?
- test_cleanup
+ test_setup && test_run
+ ret=$?
+ test_cleanup
if ((ret!=0)) && [[ -f "$TESTDIR"/server.log ]]; then
mv [[ -f "$TESTDIR"/server.log ]] ./server${TEST_RUN_ID:+-$TEST_RUN_ID}.log
fi
- rm -fr -- "$TESTDIR"
- rm -f -- .testdir${TEST_RUN_ID:+-$TEST_RUN_ID}
- exit $ret
- ) </dev/null 2>&1 | $basedir/logtee test${TEST_RUN_ID:+-$TEST_RUN_ID}.log
- else
+ rm -fr -- "$TESTDIR"
+ rm -f -- .testdir${TEST_RUN_ID:+-$TEST_RUN_ID}
+ exit $ret
+ ) </dev/null 2>&1 | tee test${TEST_RUN_ID:+-$TEST_RUN_ID}.log
+ elif [[ "$V" == "2" ]]; then
set -o pipefail
(
- test_setup && test_run
- ret=$?
- test_cleanup
+ test_setup && test_run
+ ret=$?
+ test_cleanup
if ((ret!=0)) && [[ -f "$TESTDIR"/server.log ]]; then
mv [[ -f "$TESTDIR"/server.log ]] ./server${TEST_RUN_ID:+-$TEST_RUN_ID}.log
fi
- rm -fr -- "$TESTDIR"
- rm -f -- .testdir${TEST_RUN_ID:+-$TEST_RUN_ID}
- exit $ret
- ) </dev/null 2>&1 | tee test${TEST_RUN_ID:+-$TEST_RUN_ID}.log
+ rm -fr -- "$TESTDIR"
+ rm -f -- .testdir${TEST_RUN_ID:+-$TEST_RUN_ID}
+ exit $ret
+ ) </dev/null 2>&1 | $basedir/logtee test${TEST_RUN_ID:+-$TEST_RUN_ID}.log
+ else
+ (
+ test_setup && test_run
+ ret=$?
+ test_cleanup
+ rm -fr -- "$TESTDIR"
+ rm -f -- .testdir${TEST_RUN_ID:+-$TEST_RUN_ID}
+ exit $ret
+ ) </dev/null >test${TEST_RUN_ID:+-$TEST_RUN_ID}.log 2>&1
fi
- ret=$?
+ ret=$?
set +o pipefail
- if [ $ret -eq 0 ]; then
+ if [ $ret -eq 0 ]; then
rm -- test${TEST_RUN_ID:+-$TEST_RUN_ID}.log
- echo -e "TEST: $TEST_DESCRIPTION " $COLOR_SUCCESS "[OK]" $COLOR_NORMAL
- else
- echo -e "TEST: $TEST_DESCRIPTION " $COLOR_FAILURE "[FAILED]" $COLOR_NORMAL
+ echo -e "TEST: $TEST_DESCRIPTION " $COLOR_SUCCESS "[OK]" $COLOR_NORMAL
+ else
+ echo -e "TEST: $TEST_DESCRIPTION " $COLOR_FAILURE "[FAILED]" $COLOR_NORMAL
if [ "$V" == "2" ]; then
- tail -c 1048576 $(pwd)/server${TEST_RUN_ID:+-$TEST_RUN_ID}.log $(pwd)/test${TEST_RUN_ID:+-$TEST_RUN_ID}.log
- echo -e "TEST: $TEST_DESCRIPTION " $COLOR_FAILURE "[FAILED]" $COLOR_NORMAL
+ tail -c 1048576 $(pwd)/server${TEST_RUN_ID:+-$TEST_RUN_ID}.log $(pwd)/test${TEST_RUN_ID:+-$TEST_RUN_ID}.log
+ echo -e "TEST: $TEST_DESCRIPTION " $COLOR_FAILURE "[FAILED]" $COLOR_NORMAL
else
- echo "see $(pwd)/test${TEST_RUN_ID:+-$TEST_RUN_ID}.log"
+ echo "see $(pwd)/test${TEST_RUN_ID:+-$TEST_RUN_ID}.log"
fi
- fi
- exit $ret;;
+ fi
+ exit $ret;;
*) break ;;
esac
shift

View File

@ -1,44 +0,0 @@
From ee18dd2b88d6767902d442baa92c95f7be69c265 Mon Sep 17 00:00:00 2001
From: Harald Hoyer <harald@redhat.com>
Date: Fri, 17 Aug 2018 12:50:29 +0200
Subject: [PATCH] ifcfg/write-ifcfg.sh: aggregate resolv.conf
The old code used /tmp/net.$netif.resolv.conf with $netif being randomly
chosen.
As it is not known which nameserver have which priority, just sort them
and deduplicate.
---
modules.d/45ifcfg/module-setup.sh | 1 +
modules.d/45ifcfg/write-ifcfg.sh | 5 ++++-
2 files changed, 5 insertions(+), 1 deletion(-)
diff --git a/modules.d/45ifcfg/module-setup.sh b/modules.d/45ifcfg/module-setup.sh
index 6791985a..c89def3e 100755
--- a/modules.d/45ifcfg/module-setup.sh
+++ b/modules.d/45ifcfg/module-setup.sh
@@ -14,6 +14,7 @@ depends() {
# called by dracut
install() {
+ inst_binary sort
inst_hook pre-pivot 85 "$moddir/write-ifcfg.sh"
}
diff --git a/modules.d/45ifcfg/write-ifcfg.sh b/modules.d/45ifcfg/write-ifcfg.sh
index 25c81be3..3bf847a5 100755
--- a/modules.d/45ifcfg/write-ifcfg.sh
+++ b/modules.d/45ifcfg/write-ifcfg.sh
@@ -286,7 +286,10 @@ echo "files /etc/sysconfig/network-scripts" >> /run/initramfs/rwtab
echo "files /var/lib/dhclient" >> /run/initramfs/rwtab
{
cp /tmp/net.* /run/initramfs/
- cp /tmp/net.$netif.resolv.conf /run/initramfs/state/etc/resolv.conf
+ for i in /tmp/net.*.resolv.conf; do
+ [ -f "$i" ] && cat "$i"
+ done | sort -u > /run/initramfs/state/etc/resolv.conf
+ [ -s /run/initramfs/state/etc/resolv.conf ] || rm -f /run/initramfs/state/etc/resolv.conf
copytree /tmp/ifcfg /run/initramfs/state/etc/sysconfig/network-scripts
cp /tmp/ifcfg-leases/* /run/initramfs/state/var/lib/dhclient
} > /dev/null 2>&1

View File

@ -1,42 +0,0 @@
From e0e6d96d696349c69cffd72a9c4eaf3be3dd22d5 Mon Sep 17 00:00:00 2001
From: Harald Hoyer <harald@redhat.com>
Date: Mon, 20 Aug 2018 10:04:52 +0200
Subject: [PATCH] travis: re-enable test 14
https://bugzilla.redhat.com/show_bug.cgi?id=1615271
---
.travis.yml | 15 ++++++++++++---
1 file changed, 12 insertions(+), 3 deletions(-)
diff --git a/.travis.yml b/.travis.yml
index 83e9b4d1..f913db57 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -5,14 +5,23 @@ services:
env:
matrix:
- IMAGE=latest
- - IMAGE=latest TESTS="01 02 03 04"
+ - IMAGE=latest TESTS=01
- IMAGE=latest TESTS=12
- IMAGE=latest TESTS=20
- IMAGE=latest TESTS=50
- - IMAGE=latest TESTS="30 31"
+ - IMAGE=latest TESTS=30
+ - IMAGE=latest TESTS=31
- IMAGE=latest TESTS=70
- IMAGE=latest TESTS=99
- - IMAGE=latest TESTS="10 11 13 15 17"
+ - IMAGE=latest TESTS=02
+ - IMAGE=latest TESTS=03
+ - IMAGE=latest TESTS=04
+ - IMAGE=latest TESTS=10
+ - IMAGE=latest TESTS=11
+ - IMAGE=latest TESTS=13
+ - IMAGE=latest TESTS=14
+ - IMAGE=latest TESTS=15
+ - IMAGE=latest TESTS=17
before_script:
- docker pull fedora:$IMAGE

View File

@ -1,129 +0,0 @@
From e791d753bed41315cfbd8611e65cc8cd64ea2d15 Mon Sep 17 00:00:00 2001
From: Frederick Grose <fgrose@sugarlabs.org>
Date: Wed, 1 Aug 2018 18:40:20 -0400
Subject: [PATCH] livenet: Enable OverlayFS overlay in sysroot.mount generator.
Adjust sysroot.mount configuration for rd.live.overlay.overlayfs option.
Use link at /dev/root as a consistent flag for wait_for_dev.
Adjust documentation.
---
dracut.cmdline.7.asc | 9 +++++----
modules.d/90dmsquash-live/dmsquash-live-root.sh | 5 +++--
modules.d/90dmsquash-live/parse-dmsquash-live.sh | 2 +-
modules.d/90livenet/livenet-generator.sh | 18 ++++++++++++++----
4 files changed, 23 insertions(+), 11 deletions(-)
diff --git a/dracut.cmdline.7.asc b/dracut.cmdline.7.asc
index 9252d253..df633e5d 100644
--- a/dracut.cmdline.7.asc
+++ b/dracut.cmdline.7.asc
@@ -930,7 +930,8 @@ NOTE: There must be enough free RAM available to hold the complete image.
This method is very suitable for diskless boots.
**root=**live:__<url>__::
-Boots a live image retrieved from __<url>__. Valid handlers: __http, https, ftp, torrent, tftp__.
+Boots a live image retrieved from __<url>__. Requires dracut 'livenet' module.
+Valid handlers: __http, https, ftp, torrent, tftp__.
+
[listing]
.Example
@@ -955,7 +956,7 @@ By default, this is __squashfs.img__.
Copy the complete image to RAM and use this for booting. This is useful
when the image resides on, i.e., a DVD which needs to be ejected later on.
-**rd.live.overlay=**__<devspec>__:__(<pathspec>|auto)__|__none__::
+**rd.live.overlay={**__<devspec>__[:__{<pathspec>|auto}__]|__none__}::
Allow the usage of a permanent overlay.
- _<devspec>_ specifies the path to a device with a mountable filesystem.
- _<pathspec>_ is the path to a file within that filesystem, which shall be
@@ -1005,10 +1006,10 @@ extended attributes and provides a valid d_type in readdir responses, such as
with ext4 and xfs. On non-vfat-formatted devices, a persistent OverlayFS
overlay can extend the available root filesystem storage up to the capacity of
the LiveOS device.
-
++
If a persistent overlay is detected at the standard LiveOS path, the overlay &
overlay type detected (whether OverlayFS or Device-mapper) will be used.
-
++
The **rd.live.overlay.readonly** option, which allows a persistent overlayfs to
be mounted read only through a higher level transient overlay directory, has
been implemented through the multiple lower layers feature of OverlayFS.
diff --git a/modules.d/90dmsquash-live/dmsquash-live-root.sh b/modules.d/90dmsquash-live/dmsquash-live-root.sh
index 8f3b2bf9..ac603408 100755
--- a/modules.d/90dmsquash-live/dmsquash-live-root.sh
+++ b/modules.d/90dmsquash-live/dmsquash-live-root.sh
@@ -376,19 +376,20 @@ if [ -n "$overlayfs" ]; then
mount -r $FSIMG /run/rootfsbase
fi
if [ -z "$DRACUT_SYSTEMD" ]; then
- #FIXME What to link to /dev/root? Is it even needed?
printf 'mount -t overlay LiveOS_rootfs -o%s,%s %s\n' "$ROOTFLAGS" \
'lowerdir=/run/rootfsbase,upperdir=/run/overlayfs,workdir=/run/ovlwork' \
"$NEWROOT" > $hookdir/mount/01-$$-live.sh
fi
+ _dev=/run/rootfsbase
else
- ln -s /dev/mapper/live-rw /dev/root
+ _dev=/dev/mapper/live-rw
if [ -z "$DRACUT_SYSTEMD" ]; then
[ -n "$ROOTFLAGS" ] && ROOTFLAGS="-o $ROOTFLAGS"
printf 'mount %s /dev/mapper/live-rw %s\n' "$ROOTFLAGS" "$NEWROOT" > $hookdir/mount/01-$$-live.sh
fi
ln -s $BASE_LOOPDEV /run/rootfsbase
fi
+ln -s $_dev /dev/root
need_shutdown
diff --git a/modules.d/90dmsquash-live/parse-dmsquash-live.sh b/modules.d/90dmsquash-live/parse-dmsquash-live.sh
index a9b78ab5..0eedf1f6 100755
--- a/modules.d/90dmsquash-live/parse-dmsquash-live.sh
+++ b/modules.d/90dmsquash-live/parse-dmsquash-live.sh
@@ -57,6 +57,6 @@ info "root was $liveroot, is now $root"
# make sure that init doesn't complain
[ -z "$root" ] && root="live"
-wait_for_dev -n /run/rootfsbase
+wait_for_dev -n /dev/root
return 0
diff --git a/modules.d/90livenet/livenet-generator.sh b/modules.d/90livenet/livenet-generator.sh
index a349cd0b..e2b5b6eb 100755
--- a/modules.d/90livenet/livenet-generator.sh
+++ b/modules.d/90livenet/livenet-generator.sh
@@ -43,19 +43,29 @@ GENERATOR_DIR="$2"
[ -d "$GENERATOR_DIR" ] || mkdir "$GENERATOR_DIR"
+getargbool 0 rd.live.overlay.overlayfs && overlayfs="yes"
+[ -e /xor_overlayfs ] && xor_overlayfs="yes"
ROOTFLAGS="$(getarg rootflags)"
{
echo "[Unit]"
echo "Before=initrd-root-fs.target"
echo "[Mount]"
echo "Where=/sysroot"
- echo "What=/dev/mapper/live-rw"
- [ -n "$ROOTFLAGS" ] && echo "Options=${ROOTFLAGS}"
+ if [ "$overlayfs$xor_overlayfs" = "yes" ]; then
+ echo "What=LiveOS_rootfs"
+ echo "Options=${ROOTFLAGS},lowerdir=/run/rootfsbase,upperdir=/run/overlayfs,workdir=/run/ovlwork"
+ echo "Type=overlay"
+ _dev=LiveOS_rootfs
+ else
+ echo "What=/dev/mapper/live-rw"
+ [ -n "$ROOTFLAGS" ] && echo "Options=${ROOTFLAGS}"
+ _dev=$'dev-mapper-live\\x2drw'
+ fi
} > "$GENERATOR_DIR"/sysroot.mount
-mkdir -p "$GENERATOR_DIR/dev-mapper-live\x2drw.device.d"
+mkdir -p "$GENERATOR_DIR/$_dev.device.d"
{
echo "[Unit]"
echo "JobTimeoutSec=3000"
echo "JobRunningTimeoutSec=3000"
-} > "$GENERATOR_DIR/dev-mapper-live\x2drw.device.d/timeout.conf"
+} > "$GENERATOR_DIR/$_dev.device.d/timeout.conf"

View File

@ -1,361 +0,0 @@
From 789668deb3e6f8584ffab964d2204ddcb75f0a06 Mon Sep 17 00:00:00 2001
From: Frederick Grose <fgrose@sugarlabs.org>
Date: Mon, 20 Aug 2018 09:47:50 -0400
Subject: [PATCH] dmsquash-live: Support a flattened squashfs.img
A simplified root filesystem structure may be provided for OverlayFS
overlays by squashing the root filesystem directly instead of squashing
an embedded image file at /LiveOS/rootfs.img. Detect and configure
such a squashed root filesystem for live booting.
For OverlayFS boots, avoid the read-only Device-mapper linear device
at /dev/mapper/live-base.
Create a consistent device link at /dev/live-base for the read-only
base loop device for all overlayed live root filesystems.
Consistently provide a link at /dev/root for wait_for_dev.
Update documentation.
---
dracut.cmdline.7.asc | 126 +++++++++++++++---------
modules.d/90dmsquash-live/dmsquash-live-root.sh | 51 ++++++----
2 files changed, 110 insertions(+), 67 deletions(-)
diff --git a/dracut.cmdline.7.asc b/dracut.cmdline.7.asc
index df633e5d..882035af 100644
--- a/dracut.cmdline.7.asc
+++ b/dracut.cmdline.7.asc
@@ -838,23 +838,24 @@ Booting live images
Dracut offers multiple options for live booted images:
=====================
-SquashFS with read-only filesystem image::: The system will boot with a read
-only filesystem from the SquashFS and apply a writable device-mapper snapshot
-over the read only filesystem. Using this method ensures a relatively fast
-boot and lower RAM usage. Users **must be careful** to avoid writing too many
-blocks to the snapshot volume. Once the blocks of the snapshot overlay are
-exhausted, the root filesystem becomes read only and may cause application
-failures. The overlay file is marked 'Overflow', and a difficult recovery is
-required to repair and enlarge the overlay offline. Non-persistent overlays
-are sparse files in RAM that only consume content space as required blocks are
-allocated. They default to an apparent size of 32 GiB in RAM. The size can be
-adjusted with the **rd.live.overlay.size=** kernel command line option.
+SquashFS with read-only filesystem image::: The system will boot with a
+read-only filesystem from the SquashFS and apply a writable Device-mapper
+snapshot or an OverlayFS overlay mount for the read-only base filesystem. This
+method ensures a relatively fast boot and lower RAM usage. Users **must be
+careful** to avoid writing too many blocks to a snapshot volume. Once the
+blocks of the snapshot overlay are exhausted, the root filesystem becomes
+read-only and may cause application failures. The snapshot overlay file is
+marked 'Overflow', and a difficult recovery is required to repair and enlarge
+the overlay offline. Non-persistent overlays are sparse files in RAM that only
+consume content space as required blocks are allocated. They default to an
+apparent size of 32 GiB in RAM. The size can be adjusted with the
+**rd.live.overlay.size=** kernel command line option.
+
-The filesystem structure is expected to be:
+The filesystem structure is traditionally expected to be:
+
[listing]
--
-squashfs.img | Squashfs from LiveCD .iso downloaded via network
+squashfs.img | SquashFS from LiveCD .iso
!(mount)
/LiveOS
|- rootfs.img | Filesystem image to mount read-only
@@ -865,21 +866,35 @@ squashfs.img | Squashfs from LiveCD .iso downloaded via network
... |
--
+
-Dracut uses this method of live booting by default. No additional command line
-options are required other than **root=live:<URL>** to specify the location
-of your squashed filesystem.
+For OverlayFS mount overlays, the filesystem structure may also be a direct
+compression of the root filesystem:
++
+[listing]
+--
+squashfs.img | SquashFS from LiveCD .iso
+ !(mount)
+ /bin | Live filesystem
+ /boot |
+ /dev |
+ ... |
+--
++
+Dracut uses one of the overlay methods of live booting by default. No
+additional command line options are required other than **root=live:<URL>** to
+specify the location of your squashed filesystem.
+
- The compressed SquashFS image can be copied during boot to RAM at
`/run/initramfs/squashed.img` by using the **rd.live.ram=1** option.
-- A device with a persistent overlay can be booted read only by using the
+- A device with a persistent overlay can be booted read-only by using the
**rd.live.overlay.readonly** option on the kernel command line. This will
-cause a temporary, writable overlay to be stacked over a read-only snapshot
-of the root filesystem.
+either cause a temporary, writable overlay to be stacked over a read-only
+snapshot of the root filesystem or the OverlayFS mount will use an additional
+lower layer with the root filesystem.
+
Uncompressed live filesystem image:::
When the live system was installed with the '--skipcompress' option of the
__livecd-iso-to-disk__ installation script for Live USB devices, the root
-filesystem image, `rootfs.img`, is expanded on installation and no SquashFS
+filesystem image, __rootfs.img__, is expanded on installation and no SquashFS
is involved during boot.
+
- If **rd.live.ram=1** is used in this situation, the full, uncompressed
@@ -887,12 +902,12 @@ root filesystem is copied during boot to `/run/initramfs/rootfs.img` in the
`/run` tmpfs.
+
- If **rd.live.overlay=none** is provided as a kernel command line option,
-a writable, linear device-mapper target is created on boot with no overlay.
+a writable, linear Device-mapper target is created on boot with no overlay.
-writable filesystem image:::
+Writable filesystem image:::
The system will retrieve a compressed filesystem image, extract it to
`/run/initramfs/fsimg/rootfs.img`, connect it to a loop device, create a
-writable, linear device-mapper target at `/dev/mapper/live-rw`, and mount that
+writable, linear Device-mapper target at `/dev/mapper/live-rw`, and mount that
as a writable volume at `/`. More RAM is required during boot but the live
filesystem is easier to manage if it becomes full. Users can make a filesystem
image of any size and that size will be maintained when the system boots. There
@@ -902,7 +917,7 @@ The filesystem structure is expected to be:
+
[listing]
--
-rootfs.tgz | Compressed tarball containing fileystem image
+rootfs.tgz | Compressed tarball containing filesystem image
!(unpack)
/rootfs.img | Filesystem image at /run/initramfs/fsimg/
!(mount)
@@ -930,11 +945,11 @@ NOTE: There must be enough free RAM available to hold the complete image.
This method is very suitable for diskless boots.
**root=**live:__<url>__::
-Boots a live image retrieved from __<url>__. Requires dracut 'livenet' module.
-Valid handlers: __http, https, ftp, torrent, tftp__.
+Boots a live image retrieved from __<url>__. Requires the dracut 'livenet'
+module. Valid handlers: __http, https, ftp, torrent, tftp__.
+
[listing]
-.Example
+.Examples
--
root=live:http://example.com/liveboot.img
root=live:ftp://ftp.example.com/liveboot.img
@@ -946,7 +961,7 @@ Enables debug output from the live boot process.
**rd.live.dir=**__<path>__::
Specifies the directory within the boot device where the squashfs.img or
-rootfs.img can be found. By default, this is __LiveOS__.
+rootfs.img can be found. By default, this is `/LiveOS`.
**rd.live.squashimg=**__<filename of SquashFS image>__::
Specifies the filename for a SquashFS image of the root filesystem.
@@ -954,35 +969,52 @@ By default, this is __squashfs.img__.
**rd.live.ram=**1::
Copy the complete image to RAM and use this for booting. This is useful
-when the image resides on, i.e., a DVD which needs to be ejected later on.
+when the image resides on, e.g., a DVD which needs to be ejected later on.
**rd.live.overlay={**__<devspec>__[:__{<pathspec>|auto}__]|__none__}::
-Allow the usage of a permanent overlay.
-- _<devspec>_ specifies the path to a device with a mountable filesystem.
-- _<pathspec>_ is the path to a file within that filesystem, which shall be
+Manage the usage of a permanent overlay.
++
+--
+* _<devspec>_ specifies the path to a device with a mountable filesystem.
+* _<pathspec>_ is the path to a file within that filesystem, which shall be
used to persist the changes made to the device specified by the
**root=live:__<url>__** option.
-- _none_ specifies no overlay when an uncompressed live root filesystem is
-available.
-If a persistent overlay is detected at the standard LiveOS path, the overlay &
-overlay type detected (whether Device-mapper or OverlayFS) will be used.
++
+The default _pathspec_, when _auto_ or no _:<pathspec>_ is given, is
+`/<+++<b>rd.live.dir</b>+++>/overlay-<label>-<uuid>`, where _<label>_ is the
+device LABEL, and _<uuid>_ is the device UUID.
+* _none_ (the word itself) specifies that no overlay will be used, such as when
+an uncompressed, writable live root filesystem is available.
++
+If a persistent overlay __is detected__ at the standard LiveOS path, the
+overlay & overlay type detected, whether Device-mapper or OverlayFS, will be
+used.
+--
+
[listing]
-.Example
+.Examples
--
rd.live.overlay=/dev/sdb1:persistent-overlay.img
+rd.live.overlay=UUID=99440c1f-8daa-41bf-b965-b7240a8996f4
--
**rd.live.overlay.size=**__<size_MiB>__::
-Specifies a non-persistent overlay size in MiB. The default is _32768_.
+Specifies a non-persistent Device-mapper overlay size in MiB. The default is
+_32768_.
**rd.live.overlay.readonly=**1::
-Specifies a non-persistent, writable snapshot overlay to be stacked over a
-read-only snapshot of the root filesystem, `/dev/mapper/live-ro`, or a read-
-only loop device of a writable `rootfs.img`.
+This is used to boot with a normally read-write persistent overlay in a
+read-only mode. With this option, either an additional, non-persistent,
+writable snapshot overlay will be stacked over a read-only snapshot,
+`/dev/mapper/livero`, of the base filesystem with the persistent overlay, or a
+read-only loop device, in the case of a writable __rootfs.img__, or an OverlayFS
+mount will use the persistent overlay directory linked at `/run/overlayfsr` as
+an additional lower layer along with the base root filesystem and apply a
+transient, writable upper directory overlay, in order to complete the booted
+root filesystem.
**rd.live.overlay.reset=**1::
-Specifies that a persistent overlay should be reset on boot. All root
+Specifies that a persistent overlay should be reset on boot. All previous root
filesystem changes are vacated by this action.
**rd.live.overlay.thin=**1::
@@ -993,25 +1025,25 @@ that memory is given back to the kernel when the filesystem does not claim it
anymore.
**rd.live.overlay.overlayfs=**1::
-Enables the use of the **OverlayFS** kernel module, if available, to provide a
+Enables the use of the *OverlayFS* kernel module, if available, to provide a
copy-on-write union directory for the root filesystem. OverlayFS overlays are
directories of the files that have changed on the read-only base (lower)
filesystem. The root filesystem is provided through a special overlay type
mount that merges the lower and upper directories. If an OverlayFS upper
directory is not present on the boot device, a tmpfs directory will be created
-at /run/overlayfs to provide temporary storage. Persistent storage can be
+at `/run/overlayfs` to provide temporary storage. Persistent storage can be
provided on vfat or msdos formatted devices by supplying the OverlayFS upper
directory within an embedded filesystem that supports the creation of trusted.*
extended attributes and provides a valid d_type in readdir responses, such as
with ext4 and xfs. On non-vfat-formatted devices, a persistent OverlayFS
overlay can extend the available root filesystem storage up to the capacity of
-the LiveOS device.
+the LiveOS disk device.
+
If a persistent overlay is detected at the standard LiveOS path, the overlay &
-overlay type detected (whether OverlayFS or Device-mapper) will be used.
+overlay type detected, whether OverlayFS or Device-mapper, will be used.
+
The **rd.live.overlay.readonly** option, which allows a persistent overlayfs to
-be mounted read only through a higher level transient overlay directory, has
+be mounted read-only through a higher level transient overlay directory, has
been implemented through the multiple lower layers feature of OverlayFS.
diff --git a/modules.d/90dmsquash-live/dmsquash-live-root.sh b/modules.d/90dmsquash-live/dmsquash-live-root.sh
index ac603408..0c5e010e 100755
--- a/modules.d/90dmsquash-live/dmsquash-live-root.sh
+++ b/modules.d/90dmsquash-live/dmsquash-live-root.sh
@@ -250,13 +250,11 @@ do_live_overlay() {
echo 0 $sz snapshot $base $over PO 8 | dmsetup create live-rw
fi
- # Create a device that always points to a ro base image
- if [ -n "$overlayfs" ]; then
- BASE_LOOPDUP=$(losetup -f --show -r $BASE_LOOPDEV)
- echo 0 $sz linear $BASE_LOOPDUP 0 | dmsetup create --readonly live-base
- else
+ # Create a device for the ro base of overlayed file systems.
+ if [ -z "$overlayfs" ]; then
echo 0 $sz linear $BASE_LOOPDEV 0 | dmsetup create --readonly live-base
fi
+ ln -s $BASE_LOOPDEV /dev/live-base
}
# we might have a genMinInstDelta delta file for anaconda to take advantage of
@@ -291,10 +289,21 @@ if [ -e "$SQUASHED" ]; then
mkdir -m 0755 -p /run/initramfs/squashfs
mount -n -t squashfs -o ro $SQUASHED_LOOPDEV /run/initramfs/squashfs
- if [ -f /run/initramfs/squashfs/LiveOS/rootfs.img ]; then
- FSIMG="/run/initramfs/squashfs/LiveOS/rootfs.img"
- elif [ -f /run/initramfs/squashfs/LiveOS/ext3fs.img ]; then
- FSIMG="/run/initramfs/squashfs/LiveOS/ext3fs.img"
+ if [ -d /run/initramfs/squashfs/LiveOS ]; then
+ if [ -f /run/initramfs/squashfs/LiveOS/rootfs.img ]; then
+ FSIMG="/run/initramfs/squashfs/LiveOS/rootfs.img"
+ elif [ -f /run/initramfs/squashfs/LiveOS/ext3fs.img ]; then
+ FSIMG="/run/initramfs/squashfs/LiveOS/ext3fs.img"
+ fi
+ elif [ -d /run/initramfs/squashfs/proc ]; then
+ FSIMG=$SQUASHED
+ if [ -z "$overlayfs" ]; then
+ overlayfs="yes"
+ [ -n "$DRACUT_SYSTEMD" ] && reloadsysrootmountunit="yes"
+ fi
+ else
+ die "Failed to find a root filesystem in $SQUASHED."
+ exit 1
fi
else
# we might have an embedded fs image to use as rootfs (uncompressed live)
@@ -312,8 +321,8 @@ else
fi
fi
-if [ -n "$FSIMG" ] ; then
- if [ -n "$writable_fsimg" ] ; then
+if [ -n "$FSIMG" ]; then
+ if [ -n "$writable_fsimg" ]; then
# mount the provided filesystem read/write
echo "Unpacking live filesystem (may take some time)" > /dev/kmsg
mkdir -m 0755 /run/initramfs/fsimg/
@@ -336,9 +345,13 @@ if [ -n "$FSIMG" ] ; then
setup=yes
fi
fi
- BASE_LOOPDEV=$(losetup -f --show $opt $FSIMG)
- sz=$(blockdev --getsz $BASE_LOOPDEV)
- if [ "$setup" == rw ]; then
+ if [ "$FSIMG" = "$SQUASHED" ]; then
+ BASE_LOOPDEV=$SQUASHED_LOOPDEV
+ else
+ BASE_LOOPDEV=$(losetup -f --show $opt $FSIMG)
+ sz=$(blockdev --getsz $BASE_LOOPDEV)
+ fi
+ if [ "$setup" = rw ]; then
echo 0 $sz linear $BASE_LOOPDEV 0 | dmsetup create live-rw
else
# Add a DM snapshot or OverlayFS for writes.
@@ -346,8 +359,6 @@ if [ -n "$FSIMG" ] ; then
fi
fi
-[ -e "$SQUASHED" ] && [ -z "$overlayfs" ] && umount -l /run/initramfs/squashfs
-
if [ -b "$OSMIN_LOOPDEV" ]; then
# set up the devicemapper snapshot device, which will merge
# the normal live fs image, and the delta, into a minimzied fs image
@@ -380,17 +391,17 @@ if [ -n "$overlayfs" ]; then
'lowerdir=/run/rootfsbase,upperdir=/run/overlayfs,workdir=/run/ovlwork' \
"$NEWROOT" > $hookdir/mount/01-$$-live.sh
fi
- _dev=/run/rootfsbase
else
- _dev=/dev/mapper/live-rw
if [ -z "$DRACUT_SYSTEMD" ]; then
[ -n "$ROOTFLAGS" ] && ROOTFLAGS="-o $ROOTFLAGS"
printf 'mount %s /dev/mapper/live-rw %s\n' "$ROOTFLAGS" "$NEWROOT" > $hookdir/mount/01-$$-live.sh
fi
- ln -s $BASE_LOOPDEV /run/rootfsbase
fi
-ln -s $_dev /dev/root
+[ -e "$SQUASHED" ] && umount -l /run/initramfs/squashfs
+
+ln -s null /dev/root
need_shutdown
exit 0
+

View File

@ -1,193 +0,0 @@
From eb18a1fe29a3ffcd646fe6d25ae2d7d998b63e71 Mon Sep 17 00:00:00 2001
From: Frederick Grose <fgrose@sugarlabs.org>
Date: Mon, 20 Aug 2018 19:52:53 -0400
Subject: [PATCH] dmsquash-live, livenet: Simplify OverlayFS read-only overlay
setup.
Use multiple lower layer directories in a single OverlayFS mount with
a transient overlay directory.
Tolerate a command line with rd.live.overlay.readonly and NO persistent
overlay by reconfiguring the OverlayFS mount options.
Use more compatible shell syntax for testing symlinks, and use printf
instead of echo -e.
---
modules.d/90dmsquash-live/dmsquash-generator.sh | 9 ++++++-
modules.d/90dmsquash-live/dmsquash-live-root.sh | 34 ++++++++++++++-----------
modules.d/90livenet/livenet-generator.sh | 9 ++++++-
3 files changed, 35 insertions(+), 17 deletions(-)
diff --git a/modules.d/90dmsquash-live/dmsquash-generator.sh b/modules.d/90dmsquash-live/dmsquash-generator.sh
index fe190012..1129ddff 100755
--- a/modules.d/90dmsquash-live/dmsquash-generator.sh
+++ b/modules.d/90dmsquash-live/dmsquash-generator.sh
@@ -54,8 +54,10 @@ GENERATOR_DIR="$2"
[ -z "$GENERATOR_DIR" ] && exit 1
[ -d "$GENERATOR_DIR" ] || mkdir "$GENERATOR_DIR"
+getargbool 0 rd.live.overlay.readonly -d -y readonly_overlay && readonly_overlay="--readonly" || readonly_overlay=""
getargbool 0 rd.live.overlay.overlayfs && overlayfs="yes"
[ -e /xor_overlayfs ] && xor_overlayfs="yes"
+[ -e /xor_readonly ] && xor_readonly="--readonly"
ROOTFLAGS="$(getarg rootflags)"
{
echo "[Unit]"
@@ -64,7 +66,12 @@ ROOTFLAGS="$(getarg rootflags)"
echo "Where=/sysroot"
if [ "$overlayfs$xor_overlayfs" = "yes" ]; then
echo "What=LiveOS_rootfs"
- echo "Options=${ROOTFLAGS},lowerdir=/run/rootfsbase,upperdir=/run/overlayfs,workdir=/run/ovlwork"
+ if [ "$readonly_overlay$xor_readonly" = "--readonly" ]; then
+ ovlfs=lowerdir=/run/overlayfs-r:/run/rootfsbase
+ else
+ ovlfs=lowerdir=/run/rootfsbase
+ fi
+ echo "Options=${ROOTFLAGS},${ovlfs},upperdir=/run/overlayfs,workdir=/run/ovlwork"
echo "Type=overlay"
_dev=LiveOS_rootfs
else
diff --git a/modules.d/90dmsquash-live/dmsquash-live-root.sh b/modules.d/90dmsquash-live/dmsquash-live-root.sh
index 0c5e010e..0f3d8f89 100755
--- a/modules.d/90dmsquash-live/dmsquash-live-root.sh
+++ b/modules.d/90dmsquash-live/dmsquash-live-root.sh
@@ -137,7 +137,7 @@ do_live_overlay() {
fi
if [ -n "$overlayfs" ]; then
unset -v overlayfs
- [ -n "$DRACUT_SYSTEMD" ] && reloadsysrootmountunit="yes"
+ [ -n "$DRACUT_SYSTEMD" ] && reloadsysrootmountunit=":>/xor_overlayfs;"
fi
setup="yes"
else
@@ -148,7 +148,7 @@ do_live_overlay() {
ln -s /run/initramfs/overlayfs/ovlwork /run/ovlwork$opt
if [ -z "$overlayfs" ]; then
overlayfs="yes"
- [ -n "$DRACUT_SYSTEMD" ] && reloadsysrootmountunit="yes"
+ [ -n "$DRACUT_SYSTEMD" ] && reloadsysrootmountunit=":>/xor_overlayfs;"
fi
setup="yes"
fi
@@ -159,7 +159,7 @@ do_live_overlay() {
ln -s /run/initramfs/overlayfs$pathspec/../ovlwork /run/ovlwork$opt
if [ -z "$overlayfs" ]; then
overlayfs="yes"
- [ -n "$DRACUT_SYSTEMD" ] && reloadsysrootmountunit="yes"
+ [ -n "$DRACUT_SYSTEMD" ] && reloadsysrootmountunit=":>/xor_overlayfs;"
fi
setup="yes"
fi
@@ -168,8 +168,7 @@ do_live_overlay() {
modprobe overlay
if [ $? != 0 ]; then
m='OverlayFS is not available; using temporary Device-mapper overlay.'
- unset -v overlayfs setup
- [ -n "$reloadsysrootmountunit" ] && unset -v reloadsysrootmountunit
+ unset -v overlayfs setup reloadsysrootmountunit
fi
fi
@@ -181,7 +180,7 @@ do_live_overlay() {
m=' Unable to find a persistent overlay; using a temporary one.'
m="$m"$'\n All root filesystem changes will be lost on shutdown.'
m="$m"$'\n Press [Enter] to continue.'
- echo -e "\n\n\n\n${m}\n\n\n" > /dev/kmsg
+ printf "\n\n\n\n${m}\n\n\n" > /dev/kmsg
if [ -n "$DRACUT_SYSTEMD" ]; then
if type plymouth >/dev/null 2>&1 && plymouth --ping ; then
if getargbool 0 rhgb || getargbool 0 splash ; then
@@ -203,6 +202,11 @@ do_live_overlay() {
if [ -n "$overlayfs" ]; then
mkdir -m 0755 /run/overlayfs
mkdir -m 0755 /run/ovlwork
+ if [ -n "$readonly_overlay" ] && ! [ -h /run/overlayfs-r ]; then
+ info "No persistent overlay found."
+ unset -v readonly_overlay
+ [ -n "$DRACUT_SYSTEMD" ] && reloadsysrootmountunit="${reloadsysrootmountunit}:>/xor_readonly;"
+ fi
else
dd if=/dev/null of=/overlay bs=1024 count=1 seek=$((overlay_size*1024)) 2> /dev/null
if [ -n "$setup" -a -n "$readonly_overlay" ]; then
@@ -256,6 +260,7 @@ do_live_overlay() {
fi
ln -s $BASE_LOOPDEV /dev/live-base
}
+# end do_live_overlay()
# we might have a genMinInstDelta delta file for anaconda to take advantage of
if [ -e /run/initramfs/live/${live_dir}/osmin.img ]; then
@@ -299,7 +304,7 @@ if [ -e "$SQUASHED" ]; then
FSIMG=$SQUASHED
if [ -z "$overlayfs" ]; then
overlayfs="yes"
- [ -n "$DRACUT_SYSTEMD" ] && reloadsysrootmountunit="yes"
+ [ -n "$DRACUT_SYSTEMD" ] && reloadsysrootmountunit=":>/xor_overlayfs;"
fi
else
die "Failed to find a root filesystem in $SQUASHED."
@@ -366,7 +371,7 @@ if [ -b "$OSMIN_LOOPDEV" ]; then
fi
if [ -n "$reloadsysrootmountunit" ]; then
- > /xor_overlayfs
+ eval "$reloadsysrootmountunit"
systemctl daemon-reload
fi
@@ -374,21 +379,20 @@ ROOTFLAGS="$(getarg rootflags)"
if [ -n "$overlayfs" ]; then
mkdir -m 0755 /run/rootfsbase
- if [ -n "$reset_overlay" ] && [ -L /run/overlayfs ]; then
+ if [ -n "$reset_overlay" ] && [ -h /run/overlayfs ]; then
ovlfs=$(readlink /run/overlayfs)
info "Resetting the OverlayFS overlay directory."
rm -r -- ${ovlfs}/* ${ovlfs}/.* >/dev/null 2>&1
fi
- if [ -n "$readonly_overlay" ]; then
- mkdir -m 0755 /run/rootfsbase-r
- mount -r $FSIMG /run/rootfsbase-r
- mount -t overlay LiveOS_rootfs-r -oro,lowerdir=/run/overlayfs-r:/run/rootfsbase-r /run/rootfsbase
+ if [ -n "$readonly_overlay" ] && [ -h /run/overlayfs-r ]; then
+ ovlfs=lowerdir=/run/overlayfs-r:/run/rootfsbase
else
- mount -r $FSIMG /run/rootfsbase
+ ovlfs=lowerdir=/run/rootfsbase
fi
+ mount -r $FSIMG /run/rootfsbase
if [ -z "$DRACUT_SYSTEMD" ]; then
printf 'mount -t overlay LiveOS_rootfs -o%s,%s %s\n' "$ROOTFLAGS" \
- 'lowerdir=/run/rootfsbase,upperdir=/run/overlayfs,workdir=/run/ovlwork' \
+ "$ovlfs",upperdir=/run/overlayfs,workdir=/run/ovlwork \
"$NEWROOT" > $hookdir/mount/01-$$-live.sh
fi
else
diff --git a/modules.d/90livenet/livenet-generator.sh b/modules.d/90livenet/livenet-generator.sh
index e2b5b6eb..f0d12851 100755
--- a/modules.d/90livenet/livenet-generator.sh
+++ b/modules.d/90livenet/livenet-generator.sh
@@ -43,8 +43,10 @@ GENERATOR_DIR="$2"
[ -d "$GENERATOR_DIR" ] || mkdir "$GENERATOR_DIR"
+getargbool 0 rd.live.overlay.readonly -d -y readonly_overlay && readonly_overlay="--readonly" || readonly_overlay=""
getargbool 0 rd.live.overlay.overlayfs && overlayfs="yes"
[ -e /xor_overlayfs ] && xor_overlayfs="yes"
+[ -e /xor_readonly ] && xor_readonly="--readonly"
ROOTFLAGS="$(getarg rootflags)"
{
echo "[Unit]"
@@ -53,7 +55,12 @@ ROOTFLAGS="$(getarg rootflags)"
echo "Where=/sysroot"
if [ "$overlayfs$xor_overlayfs" = "yes" ]; then
echo "What=LiveOS_rootfs"
- echo "Options=${ROOTFLAGS},lowerdir=/run/rootfsbase,upperdir=/run/overlayfs,workdir=/run/ovlwork"
+ if [ "$readonly_overlay$xor_readonly" = "--readonly" ]; then
+ ovlfs=lowerdir=/run/overlayfs-r:/run/rootfsbase
+ else
+ ovlfs=lowerdir=/run/rootfsbase
+ fi
+ echo "Options=${ROOTFLAGS},${ovlfs},upperdir=/run/overlayfs,workdir=/run/ovlwork"
echo "Type=overlay"
_dev=LiveOS_rootfs
else

View File

@ -1,29 +0,0 @@
From 9f3c31cd8d68b5272f803063247362a644720227 Mon Sep 17 00:00:00 2001
From: Kairui Song <kasong@redhat.com>
Date: Mon, 20 Aug 2018 18:43:19 +0800
Subject: [PATCH] 99base: enable initqueue if extra devices are added
When extra devices are added, initqueue should be enabled to make sure
those devices are present, so following services and routines could
use those devices.
See PR #442 for more detail.
---
modules.d/99base/module-setup.sh | 3 +++
1 file changed, 3 insertions(+)
diff --git a/modules.d/99base/module-setup.sh b/modules.d/99base/module-setup.sh
index a1569b12..731c6dcc 100755
--- a/modules.d/99base/module-setup.sh
+++ b/modules.d/99base/module-setup.sh
@@ -94,6 +94,9 @@ install() {
## save host_devs which we need bring up
if [[ $hostonly_cmdline == "yes" ]]; then
+ if [[ -n $add_device ]]; then
+ dracut_need_initqueue
+ fi
if [[ -f "$initdir/lib/dracut/need-initqueue" ]] || ! dracut_module_included "systemd"; then
(
if dracut_module_included "systemd"; then

View File

@ -1,24 +0,0 @@
From 09ba1b289f2cba613c1950b03f0f549ebb7eb83f Mon Sep 17 00:00:00 2001
From: Kairui Song <kasong@redhat.com>
Date: Mon, 20 Aug 2018 18:40:05 +0800
Subject: [PATCH] kernel-modules: add nfit
To support pmem devices, nfit module is required
---
modules.d/90kernel-modules/module-setup.sh | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/modules.d/90kernel-modules/module-setup.sh b/modules.d/90kernel-modules/module-setup.sh
index f01470e7..3dfceff0 100755
--- a/modules.d/90kernel-modules/module-setup.sh
+++ b/modules.d/90kernel-modules/module-setup.sh
@@ -41,7 +41,7 @@ installkernel() {
yenta_socket scsi_dh_rdac scsi_dh_emc scsi_dh_alua \
atkbd i8042 usbhid firewire-ohci pcmcia hv-vmbus \
virtio virtio_blk virtio_ring virtio_pci virtio_scsi \
- "=drivers/pcmcia" =ide nvme vmd
+ "=drivers/pcmcia" =ide nvme vmd nfit
if [[ "$(uname -m)" == arm* || "$(uname -m)" == aarch64 ]]; then
# arm/aarch64 specific modules

View File

@ -1,35 +0,0 @@
From ae9bc0d72ffea2c960c95d7b705b1b76ae53d692 Mon Sep 17 00:00:00 2001
From: Tony Asleson <tasleson@redhat.com>
Date: Thu, 23 Aug 2018 15:08:59 -0500
Subject: [PATCH] stratis: Add additional binaries
Include all binaries that could be called by the daemon.
Signed-off-by: Tony Asleson <tasleson@redhat.com>
---
modules.d/90stratis/module-setup.sh | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/modules.d/90stratis/module-setup.sh b/modules.d/90stratis/module-setup.sh
index 2787b63b..29f0765b 100755
--- a/modules.d/90stratis/module-setup.sh
+++ b/modules.d/90stratis/module-setup.sh
@@ -2,7 +2,7 @@
# called by dracut
check() {
- require_binaries stratisd-init thin_check thin_repair || return 1
+ require_binaries stratisd-init thin_check thin_repair mkfs.xfs xfs_admin xfs_growfs || return 1
return 255
}
@@ -20,7 +20,7 @@ installkernel() {
# called by dracut
install() {
- inst_multiple stratisd-init thin_check thin_repair
+ inst_multiple stratisd-init thin_check thin_repair mkfs.xfs xfs_admin xfs_growfs
if dracut_module_included "systemd"; then
inst_simple "${moddir}/stratisd-init.service" "${systemdsystemunitdir}/stratisd-init.service"

View File

@ -1,106 +0,0 @@
From d09218823c787d23b3fdc3e450bb27b20f71f089 Mon Sep 17 00:00:00 2001
From: Tobias Klauser <tklauser@distanz.ch>
Date: Wed, 29 Aug 2018 11:53:14 +0200
Subject: [PATCH] Fix misspellings in man pages and usage
Also remove some trailing whitespaces from the same files.
Signed-off-by: Tobias Klauser <tklauser@distanz.ch>
---
dracut.cmdline.7.asc | 2 +-
dracut.modules.7.asc | 6 +++---
dracut.usage.asc | 4 ++--
mkinitrd-suse.8.asc | 6 +++---
4 files changed, 9 insertions(+), 9 deletions(-)
diff --git a/dracut.cmdline.7.asc b/dracut.cmdline.7.asc
index 882035af..3cee5a00 100644
--- a/dracut.cmdline.7.asc
+++ b/dracut.cmdline.7.asc
@@ -601,7 +601,7 @@ NFS
mount nfs share from <server-ip>:/<root-dir>, if no server-ip is given, use
dhcp next_server. If server-ip is an IPv6 address it has to be put in
brackets, e.g. [2001:DB8::1]. NFS options can be appended with the prefix
- ":" or "," and are seperated by ",".
+ ":" or "," and are separated by ",".
**root=**nfs:\[_<server-ip>_:]__<root-dir>__[:__<nfs-options>__], **root=**nfs4:\[_<server-ip>_:]__<root-dir>__[:__<nfs-options>__], **root=**__{dhcp|dhcp6}__::
root=dhcp alone directs initrd to look at the DHCP root-path where NFS
diff --git a/dracut.modules.7.asc b/dracut.modules.7.asc
index 69ac6c44..c34d005d 100644
--- a/dracut.modules.7.asc
+++ b/dracut.modules.7.asc
@@ -212,7 +212,7 @@ check() should return with:
0:: Include the dracut module in the initramfs.
-1:: Do not include the dracut module. The requirements are not fullfilled
+1:: Do not include the dracut module. The requirements are not fulfilled
(missing tools, etc.)
255:: Only include the dracut module, if another module requires it or if
@@ -255,8 +255,8 @@ not lead to an error.
==== inst <src> [<dst>]
installs _one_ file <src> either to the same place in the initramfs or to an
-optional <dst>. inst with more than two arguments is treated the same as
-inst_multiple, all arguments are treated as files to install and none as
+optional <dst>. inst with more than two arguments is treated the same as
+inst_multiple, all arguments are treated as files to install and none as
install destinations.
==== inst_hook <hookdir> <prio> <src>
diff --git a/dracut.usage.asc b/dracut.usage.asc
index 2b25588f..2b598ee6 100644
--- a/dracut.usage.asc
+++ b/dracut.usage.asc
@@ -243,7 +243,7 @@ If your root partition is on a network drive, you have to have the network
dracut modules installed to create a network aware initramfs image.
If you specify ip=dhcp on the kernel command line, then dracut asks a dhcp
-server about the ip adress for the machine. The dhcp server can also serve an
+server about the ip address for the machine. The dhcp server can also serve an
additional root-path, which will set the root device for dracut. With this
mechanism, you have static configuration on your client machine and a
centralized boot configuration on your TFTP/DHCP server. If you can't pass a
@@ -252,7 +252,7 @@ method described in <<Injecting>>.
==== Reducing the Image Size
-To reduce the size of the initramfs, you should create it with by ommitting all
+To reduce the size of the initramfs, you should create it with by omitting all
dracut modules, which you know, you don't need to boot the machine.
You can also specify the exact dracut and kernel modules to produce a very tiny
diff --git a/mkinitrd-suse.8.asc b/mkinitrd-suse.8.asc
index 91ec4695..e39ac52b 100644
--- a/mkinitrd-suse.8.asc
+++ b/mkinitrd-suse.8.asc
@@ -18,7 +18,7 @@ DESCRIPTION
version <kernel-version> by calling *dracut*.
[IMPORTANT]
-This version of mkinitrd is provided for compability with older
+This version of mkinitrd is provided for compatibility with older
versions of mkinitrd. If a more fine grained control over the
resulting image is needed, *dracut* should be called directly.
@@ -30,7 +30,7 @@ OPTIONS
**-k** _<kernel_list>_::
List of kernel images for which initrd files are created (relative
to _boot_dir_), Image name should begin with the following string,
- defaults to _vmlinux_ on ppc/ppc64, _image_ on s390/s390x and _vmlinuz_
+ defaults to _vmlinux_ on ppc/ppc64, _image_ on s390/s390x and _vmlinuz_
for everything else.
**-i** _<initrd_list>_::
@@ -51,7 +51,7 @@ OPTIONS
**-d** _<root_device>_::
Root device, defaults to the device from which the root_dir is
- mounted; overwrites the rootdev enviroment variable if set
+ mounted; overwrites the rootdev environment variable if set
**-s** _<size>_::
Add splash animation and bootscreen to initrd.

View File

@ -1,46 +0,0 @@
From e9a84e0a215fb5a79e563f665bc406c0ea177d32 Mon Sep 17 00:00:00 2001
From: Daniel Molkentin <dmolkentin@suse.com>
Date: Wed, 5 Sep 2018 12:06:06 +0200
Subject: [PATCH] 98dracut-systemd: Start systemd-vconsole-setup before
dracut-cmdline-ask
This is what happened before this patch (edited for brevity):
dracut-cmdline-ask.service in modules.d/98dracut-systemd, which invokes
dracut-cmdline-ask.sh. This script and systemd-vconsole-setup are
started in parallel for the same console (tty1).
Then dracut-cmdline-ask quits immediately without doing anything (unless
rd.cmdline=ask is given). As this is a bash script and it gets tty as
stdin as specified in its *.service, this triggers the hangup of tty1 at
its exit.
Meanwhile systemd-vconsole-setup continues and tries some ioctls after
that, but they fail because of the hung up tty1.
The usual culprit for starting systemd-vconsole-setup early on is
plymouth-start.service, even if plymouth.enable=0 is set.
A popular (and annoying) symptom of this as reported by users was
the inability use their configured keyboard layout in plymouth when
unlocking their crypted block devices.
Reference: boo#1055834
---
modules.d/98dracut-systemd/dracut-cmdline-ask.service | 2 ++
1 file changed, 2 insertions(+)
diff --git a/modules.d/98dracut-systemd/dracut-cmdline-ask.service b/modules.d/98dracut-systemd/dracut-cmdline-ask.service
index ce7deda5..b96c2aaf 100644
--- a/modules.d/98dracut-systemd/dracut-cmdline-ask.service
+++ b/modules.d/98dracut-systemd/dracut-cmdline-ask.service
@@ -7,6 +7,8 @@ Description=dracut ask for additional cmdline parameters
DefaultDependencies=no
Before=dracut-cmdline.service
After=systemd-journald.socket
+After=systemd-vconsole-setup.service
+Requires=systemd-vconsole-setup.service
Wants=systemd-journald.socket
ConditionPathExists=/usr/lib/initrd-release
ConditionKernelCommandLine=|rd.cmdline=ask

View File

@ -1,88 +0,0 @@
From a7d8fc280c172ab023ce6170c33c323fb7c87adf Mon Sep 17 00:00:00 2001
From: Frederick Grose <fgrose@sugarlabs.org>
Date: Mon, 3 Sep 2018 17:01:53 -0400
Subject: [PATCH] dmsquash-live: Avoid grep and sed in this module.
strstr and variable string manipulations suffice.
---
modules.d/90dmsquash-live/dmsquash-generator.sh | 4 ++--
modules.d/90dmsquash-live/dmsquash-live-root.sh | 6 +++---
modules.d/90dmsquash-live/module-setup.sh | 2 +-
modules.d/90dmsquash-live/parse-dmsquash-live.sh | 4 ++--
4 files changed, 8 insertions(+), 8 deletions(-)
diff --git a/modules.d/90dmsquash-live/dmsquash-generator.sh b/modules.d/90dmsquash-live/dmsquash-generator.sh
index 1129ddff..f57b1fc5 100755
--- a/modules.d/90dmsquash-live/dmsquash-generator.sh
+++ b/modules.d/90dmsquash-live/dmsquash-generator.sh
@@ -18,12 +18,12 @@ fi
case "$liveroot" in
live:LABEL=*|LABEL=*) \
root="${root#live:}"
- root="$(echo $root | sed 's,/,\\x2f,g')"
+ root="${root//\//\\x2f}"
root="live:/dev/disk/by-label/${root#LABEL=}"
rootok=1 ;;
live:CDLABEL=*|CDLABEL=*) \
root="${root#live:}"
- root="$(echo $root | sed 's,/,\\x2f,g')"
+ root="${root//\//\\x2f}"
root="live:/dev/disk/by-label/${root#CDLABEL=}"
rootok=1 ;;
live:UUID=*|UUID=*) \
diff --git a/modules.d/90dmsquash-live/dmsquash-live-root.sh b/modules.d/90dmsquash-live/dmsquash-live-root.sh
index 0f3d8f89..330ba3e9 100755
--- a/modules.d/90dmsquash-live/dmsquash-live-root.sh
+++ b/modules.d/90dmsquash-live/dmsquash-live-root.sh
@@ -109,15 +109,15 @@ do_live_overlay() {
if [ -z "$overlay" ]; then
pathspec="/${live_dir}/overlay-$l-$u"
- elif ( echo $overlay | grep -q ":" ); then
+ elif strstr $overlay ":"; then
# pathspec specified, extract
- pathspec=$( echo $overlay | sed -e 's/^.*://' )
+ pathspec=${overlay##*:}
fi
if [ -z "$pathspec" -o "$pathspec" = "auto" ]; then
pathspec="/${live_dir}/overlay-$l-$u"
fi
- devspec=$( echo $overlay | sed -e 's/:.*$//' )
+ devspec=${overlay%%:*}
# need to know where to look for the overlay
if [ -z "$setup" -a -n "$devspec" -a -n "$pathspec" -a -n "$overlay" ]; then
diff --git a/modules.d/90dmsquash-live/module-setup.sh b/modules.d/90dmsquash-live/module-setup.sh
index 48418a06..f251258f 100755
--- a/modules.d/90dmsquash-live/module-setup.sh
+++ b/modules.d/90dmsquash-live/module-setup.sh
@@ -22,7 +22,7 @@ installkernel() {
# called by dracut
install() {
- inst_multiple umount dmsetup blkid dd losetup grep blockdev find
+ inst_multiple umount dmsetup blkid dd losetup blockdev find
inst_multiple -o checkisomd5
inst_hook cmdline 30 "$moddir/parse-dmsquash-live.sh"
inst_hook cmdline 31 "$moddir/parse-iso-scan.sh"
diff --git a/modules.d/90dmsquash-live/parse-dmsquash-live.sh b/modules.d/90dmsquash-live/parse-dmsquash-live.sh
index 0eedf1f6..4d46a360 100755
--- a/modules.d/90dmsquash-live/parse-dmsquash-live.sh
+++ b/modules.d/90dmsquash-live/parse-dmsquash-live.sh
@@ -20,12 +20,12 @@ modprobe -q loop
case "$liveroot" in
live:LABEL=*|LABEL=*) \
root="${root#live:}"
- root="$(echo $root | sed 's,/,\\x2f,g')"
+ root="${root//\//\\x2f}"
root="live:/dev/disk/by-label/${root#LABEL=}"
rootok=1 ;;
live:CDLABEL=*|CDLABEL=*) \
root="${root#live:}"
- root="$(echo $root | sed 's,/,\\x2f,g')"
+ root="${root//\//\\x2f}"
root="live:/dev/disk/by-label/${root#CDLABEL=}"
rootok=1 ;;
live:UUID=*|UUID=*) \

View File

@ -1,72 +0,0 @@
From 44d1688164040f088fd66fb8a2d458e1f61836ce Mon Sep 17 00:00:00 2001
From: Frederick Grose <fgrose@sugarlabs.org>
Date: Mon, 3 Sep 2018 19:02:23 -0400
Subject: [PATCH] dmsquash-live-root: Manage absent overlayfs module better.
die when required; systemctl reload otherwise.
---
modules.d/90dmsquash-live/dmsquash-live-root.sh | 26 +++++++++++++++----------
1 file changed, 16 insertions(+), 10 deletions(-)
diff --git a/modules.d/90dmsquash-live/dmsquash-live-root.sh b/modules.d/90dmsquash-live/dmsquash-live-root.sh
index 330ba3e9..6324fe83 100755
--- a/modules.d/90dmsquash-live/dmsquash-live-root.sh
+++ b/modules.d/90dmsquash-live/dmsquash-live-root.sh
@@ -146,10 +146,10 @@ do_live_overlay() {
[ -d /run/initramfs/overlayfs/ovlwork ]; then
ln -s /run/initramfs/overlayfs/overlayfs /run/overlayfs$opt
ln -s /run/initramfs/overlayfs/ovlwork /run/ovlwork$opt
- if [ -z "$overlayfs" ]; then
- overlayfs="yes"
- [ -n "$DRACUT_SYSTEMD" ] && reloadsysrootmountunit=":>/xor_overlayfs;"
+ if [ -z "$overlayfs" ] && [ -n "$DRACUT_SYSTEMD" ]; then
+ reloadsysrootmountunit=":>/xor_overlayfs;"
fi
+ overlayfs="required"
setup="yes"
fi
fi
@@ -157,18 +157,24 @@ do_live_overlay() {
[ -d /run/initramfs/overlayfs$pathspec/../ovlwork ]; then
ln -s /run/initramfs/overlayfs$pathspec /run/overlayfs$opt
ln -s /run/initramfs/overlayfs$pathspec/../ovlwork /run/ovlwork$opt
- if [ -z "$overlayfs" ]; then
- overlayfs="yes"
- [ -n "$DRACUT_SYSTEMD" ] && reloadsysrootmountunit=":>/xor_overlayfs;"
+ if [ -z "$overlayfs" ] && [ -n "$DRACUT_SYSTEMD" ]; then
+ reloadsysrootmountunit=":>/xor_overlayfs;"
fi
+ overlayfs="required"
setup="yes"
fi
fi
if [ -n "$overlayfs" ]; then
modprobe overlay
if [ $? != 0 ]; then
+ if [ "$overlayfs" = required ]; then
+ die "OverlayFS is required but not available."
+ exit 1
+ fi
+ [ -n "$DRACUT_SYSTEMD" ] && reloadsysrootmountunit=":>/xor_overlayfs;"
m='OverlayFS is not available; using temporary Device-mapper overlay.'
- unset -v overlayfs setup reloadsysrootmountunit
+ info $m
+ unset -v overlayfs setup
fi
fi
@@ -302,10 +308,10 @@ if [ -e "$SQUASHED" ]; then
fi
elif [ -d /run/initramfs/squashfs/proc ]; then
FSIMG=$SQUASHED
- if [ -z "$overlayfs" ]; then
- overlayfs="yes"
- [ -n "$DRACUT_SYSTEMD" ] && reloadsysrootmountunit=":>/xor_overlayfs;"
+ if [ -z "$overlayfs" ] && [ -n "$DRACUT_SYSTEMD" ]; then
+ reloadsysrootmountunit=":>/xor_overlayfs;"
fi
+ overlayfs="required"
else
die "Failed to find a root filesystem in $SQUASHED."
exit 1

View File

@ -1,24 +0,0 @@
From 8dd7bb48fcd9d19dd2d7cec2577cd2c6b414fd8b Mon Sep 17 00:00:00 2001
From: Frederick Grose <fgrose@sugarlabs.org>
Date: Mon, 3 Sep 2018 19:41:58 -0400
Subject: [PATCH] dmsquash-live/apply-live-updates: Test proper file link.
Update flag link to /dev/root as required by commit
789668deb3e6f8584ffab964d2204ddcb75f0a06.
---
modules.d/90dmsquash-live/apply-live-updates.sh | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/modules.d/90dmsquash-live/apply-live-updates.sh b/modules.d/90dmsquash-live/apply-live-updates.sh
index bcca761b..3df2d4ad 100755
--- a/modules.d/90dmsquash-live/apply-live-updates.sh
+++ b/modules.d/90dmsquash-live/apply-live-updates.sh
@@ -1,6 +1,6 @@
#!/bin/sh
-if [ -L /run/rootfsbase ] && [ -d /run/initramfs/live/updates -o -d /updates ]; then
+if [ -h /dev/root ] && [ -d /run/initramfs/live/updates -o -d /updates ]; then
info "Applying updates to live image..."
mount -o bind /run $NEWROOT/run
# avoid overwriting symlinks (e.g. /lib -> /usr/lib) with directories

View File

@ -1,67 +0,0 @@
From b3480d31b01e66e21a70b7dab55eac95449126c7 Mon Sep 17 00:00:00 2001
From: Alexander Tsoy <alexander@tsoy.me>
Date: Sat, 8 Sep 2018 17:02:03 +0300
Subject: [PATCH] Prevent environment leaking into initrd-release
On my system the following initrd-release is generated:
...
VERSION="4 dracut-048 dracut-048"
...
VERSION is not defined in /etc/os-release, so the variable is
concatenated with its previous value:
* "4" comes from the kernel build system since dracut is called from the
kernel install hook ("4" is a major kernel version);
* first "dracut-048" comes from the "systemd-initrd" module;
* second "dracut-048" comes from the "base" module.
---
modules.d/01systemd-initrd/module-setup.sh | 9 ++++-----
modules.d/99base/module-setup.sh | 9 ++++-----
2 files changed, 8 insertions(+), 10 deletions(-)
diff --git a/modules.d/01systemd-initrd/module-setup.sh b/modules.d/01systemd-initrd/module-setup.sh
index c1ccd2af..cb8a8fa6 100755
--- a/modules.d/01systemd-initrd/module-setup.sh
+++ b/modules.d/01systemd-initrd/module-setup.sh
@@ -38,13 +38,12 @@ install() {
ln_r "${systemdsystemunitdir}/initrd.target" "${systemdsystemunitdir}/default.target"
+ local VERSION=""
+ local PRETTY_NAME=""
if [ -e /etc/os-release ]; then
. /etc/os-release
- VERSION+=" "
- PRETTY_NAME+=" "
- else
- VERSION=""
- PRETTY_NAME=""
+ [[ -n ${VERSION} ]] && VERSION+=" "
+ [[ -n ${PRETTY_NAME} ]] && PRETTY_NAME+=" "
fi
NAME=dracut
ID=dracut
diff --git a/modules.d/99base/module-setup.sh b/modules.d/99base/module-setup.sh
index 731c6dcc..21523fc9 100755
--- a/modules.d/99base/module-setup.sh
+++ b/modules.d/99base/module-setup.sh
@@ -63,13 +63,12 @@ install() {
echo ro >> "${initdir}/etc/cmdline.d/base.conf"
fi
+ local VERSION=""
+ local PRETTY_NAME=""
if [ -e /etc/os-release ]; then
. /etc/os-release
- VERSION+=" "
- PRETTY_NAME+=" "
- else
- VERSION=""
- PRETTY_NAME=""
+ [[ -n ${VERSION} ]] && VERSION+=" "
+ [[ -n ${PRETTY_NAME} ]] && PRETTY_NAME+=" "
fi
NAME=dracut
ID=dracut

View File

@ -1,32 +0,0 @@
From 838f22259a50e5f92429ecdd24b897c1128edc98 Mon Sep 17 00:00:00 2001
From: Alexander Tsoy <alexander@tsoy.me>
Date: Sun, 9 Sep 2018 02:47:09 +0300
Subject: [PATCH] install: avoid non-portable __WORDSIZE
Lets not unnecessarily rely on __WORDSIZE, which is not clearly specified
by any spec. Use explicit size comparisons if we're not interested in the
WORDSIZE, anyway.
Patch ported from systemd.
(commit 8507eb20b64010b26f23822cbf442bb0bf96511c)
Original-patch-by: Emil Renner Berthing <systemd@esmil.dk>
Bug: https://bugs.gentoo.org/602122
---
install/util.h | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/install/util.h b/install/util.h
index 2ad3254d..c13b1a27 100644
--- a/install/util.h
+++ b/install/util.h
@@ -167,7 +167,7 @@ int safe_atoi(const char *s, int *ret_i);
int safe_atollu(const char *s, unsigned long long *ret_u);
int safe_atolli(const char *s, long long int *ret_i);
-#if __WORDSIZE == 32
+#if LONG_MAX == INT_MAX
static inline int safe_atolu(const char *s, unsigned long *ret_u) {
assert_cc(sizeof(unsigned long) == sizeof(unsigned));
return safe_atou(s, (unsigned*) ret_u);

View File

@ -1,24 +0,0 @@
From f4334e9bdf5ff85d5f9d9eb12f51a6b78e94101e Mon Sep 17 00:00:00 2001
From: Alexander Tsoy <alexander@tsoy.me>
Date: Sun, 9 Sep 2018 13:57:33 +0300
Subject: [PATCH] base/dracut-lib.sh: use "command -v" in pidof()
"type -P" doesn't work in dash
---
modules.d/99base/dracut-lib.sh | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/modules.d/99base/dracut-lib.sh b/modules.d/99base/dracut-lib.sh
index b78272a3..f71e757c 100755
--- a/modules.d/99base/dracut-lib.sh
+++ b/modules.d/99base/dracut-lib.sh
@@ -1060,7 +1060,7 @@ if ! command -v pidof >/dev/null 2>/dev/null; then
debug_on
return 1
fi
- _exe=$(type -P "$1")
+ _exe=$(command -v "$1")
for i in /proc/*/exe; do
[ -e "$i" ] || continue
if [ -n "$_exe" ]; then

View File

@ -1,349 +0,0 @@
From 095e1f37c41e8995c95635a47dbe2bf61d8ee2bc Mon Sep 17 00:00:00 2001
From: Kairui Song <kasong@redhat.com>
Date: Tue, 11 Sep 2018 19:32:24 +0800
Subject: [PATCH] Add support for building a squashed initramfs
With all files stored in ramfs, and most of them are not compressed,
the initramfs will take up a lot of memory. Besides, if the file number
is large, each file will waste some memory due to page fragmetation.
This is due to ramfs' design, at least one page will be allocated for
one file however small the file is. On machine with large page size,
this will become worse and waste too many memory.
One approach to reducing the memory usage is to reduce the number of
files that got directly loaded into the root ramfs, and compress files
by put most files will into a read-only squash image and keep a minimum
set of executable and libraries outside as the loader for the squash
image. After the squash image is mounted, the real 'init' will be
executed and then everything behaves as usual.
This patch will introduce a '99squash' module which will never be
included by default. User can force add it, and if it is included,
dracut will perform some extra steps before creating the final image:
For now, "/etc" and "/usr" will be moved into the squashfs image.
"/init" will be renamed to "/init.stock" and replaced by "/init.squash".
Files and folders need to be accessible before mounting the image will
be still avaliable at their original place. And due to squashfs is
readonly, an overlayfs layer will be created on top of squashfs mount
point, as many dracut module require readwrite access to "/etc" and
"/usr", "init.squash" will ultimately call "/init.stock".
An extra systemd service will be installed. This service will umount all
squashfs related mount points right before switch-root to release
resources properly. This service will not actually do anything if
switch-root is not used.
This is very helpful when mem resource is very limited, like Kdump.
According to my tests, this squash module can help save about 35MB of
memory with 64K page size, or about 15MB with 4K page size on an
ordinary kdump capture routine. This module could also help reduce
memory usage for normal boot up process.
Won't change any behavior if squash module is not enabled.
Signed-off-by: Kairui Song <kasong@redhat.com>
---
dracut.sh | 114 ++++++++++++++++++++++++++++
modules.d/99squash/clear-squash.sh | 9 +++
modules.d/99squash/init.sh | 7 ++
modules.d/99squash/module-setup.sh | 29 +++++++
modules.d/99squash/setup-squash.sh | 61 +++++++++++++++
modules.d/99squash/shutdown.sh | 7 ++
modules.d/99squash/squash-mnt-clear.service | 19 +++++
7 files changed, 246 insertions(+)
diff --git a/dracut.sh b/dracut.sh
index 8ee8c168..e683a9bc 100755
--- a/dracut.sh
+++ b/dracut.sh
@@ -1747,6 +1747,120 @@ fi
dinfo "*** Creating image file '$outfile' ***"
+if dracut_module_included "squash"; then
+ if ! check_kernel_config CONFIG_SQUASHFS; then
+ dfatal "CONFIG_SQUASHFS have to be enabled for dracut squash module to work"
+ exit 1
+ fi
+ if ! check_kernel_config CONFIG_OVERLAY_FS; then
+ dfatal "CONFIG_OVERLAY_FS have to be enabled for dracut squash module to work"
+ exit 1
+ fi
+ if ! check_kernel_config CONFIG_DEVTMPFS; then
+ dfatal "CONFIG_DEVTMPFS have to be enabled for dracut squash module to work"
+ exit 1
+ fi
+
+ readonly squash_dir="${DRACUT_TMPDIR}/squashfs"
+ readonly squash_img=$initdir/squash/root.img
+
+ # Currently only move "usr" "etc" to squashdir
+ readonly squash_candidate=( "usr" "etc" )
+
+ mkdir -m 0755 -p $squash_dir
+ for folder in "${squash_candidate[@]}"; do
+ mv $initdir/$folder $squash_dir/$folder
+ done
+
+ # Reinstall required files, because we have moved some important folders to $squash_dir
+ inst_multiple "echo" "sh" "mount" "modprobe" "mkdir" \
+ "systemctl" "udevadm" "$systemdutildir/systemd"
+ hostonly="" instmods "loop" "squashfs" "overlay"
+
+ for folder in "${squash_candidate[@]}"; do
+ # Remove duplicated files in squashfs image, save some more space
+ [[ ! -d $initdir/$folder/ ]] && continue
+ for file in $(find $initdir/$folder/ -not -type d);
+ do
+ if [[ -e $squash_dir${file#$initdir} ]]; then
+ mv $squash_dir${file#$initdir} $file
+ fi
+ done
+ done
+
+ # Move some files out side of the squash image, including:
+ # - Files required to boot and mount the squashfs image
+ # - Files need to be accessable without mounting the squash image
+ required_in_root() {
+ local file=$1
+ local _sqsh_file=$squash_dir/$file
+ local _init_file=$initdir/$file
+
+ if [[ -e $_init_file ]]; then
+ return
+ fi
+
+ if [[ ! -e $_sqsh_file ]] && [[ ! -L $_sqsh_file ]]; then
+ derror "$file is required to boot a squashed initramfs but it's not installed!"
+ return
+ fi
+
+ if [[ ! -d $(dirname $_init_file) ]]; then
+ required_in_root $(dirname $file)
+ fi
+
+ if [[ -d $_sqsh_file ]]; then
+ if [[ -L $_sqsh_file ]]; then
+ cp --preserve=all -P $_sqsh_file $_init_file
+ else
+ mkdir $_init_file
+ fi
+ else
+ if [[ -L $_sqsh_file ]]; then
+ cp --preserve=all -P $_sqsh_file $_init_file
+ _sqsh_file=$(realpath $_sqsh_file 2>/dev/null)
+ if [[ -e $_sqsh_file ]] && [[ "$_sqsh_file" == "$squash_dir"* ]]; then
+ # Relative symlink
+ required_in_root ${_sqsh_file#$squash_dir/}
+ return
+ fi
+ if [[ -e $squash_dir$_sqsh_file ]]; then
+ # Absolute symlink
+ required_in_root ${_sqsh_file#/}
+ return
+ fi
+ required_in_root ${module_spec#$squash_dir/}
+ else
+ mv $_sqsh_file $_init_file
+ fi
+ fi
+ }
+
+ required_in_root etc/initrd-release
+
+ for module_spec in $squash_dir/usr/lib/modules/*/modules.*;
+ do
+ required_in_root ${module_spec#$squash_dir/}
+ done
+
+ for dracut_spec in $squash_dir/usr/lib/dracut/*;
+ do
+ required_in_root ${dracut_spec#$squash_dir/}
+ done
+
+ mv $initdir/init $initdir/init.stock
+ mv $initdir/shutdown $initdir/shutdown.stock
+ ln -s squash/init.sh $initdir/init
+ ln -s squash/shutdown.sh $initdir/shutdown
+
+ mksquashfs $squash_dir $squash_img -comp xz -b 64K -Xdict-size 100% &> /dev/null
+
+ if [[ $? != 0 ]]; then
+ dfatal "dracut: Failed making squash image"
+ exit 1
+ fi
+fi
+
if [[ $uefi = yes ]]; then
readonly uefi_outdir="$DRACUT_TMPDIR/uefi"
mkdir "$uefi_outdir"
diff --git a/modules.d/99squash/clear-squash.sh b/modules.d/99squash/clear-squash.sh
new file mode 100755
index 00000000..34cb4cf5
--- /dev/null
+++ b/modules.d/99squash/clear-squash.sh
@@ -0,0 +1,9 @@
+#!/bin/sh
+SQUASH_MNT_REC=/squash/mounts
+SQUASH_MNTS=( )
+
+while read mnt; do
+ SQUASH_MNTS+=( "$mnt" )
+done <<< "$(cat $SQUASH_MNT_REC)"
+
+umount --lazy -- ${SQUASH_MNTS[@]}
diff --git a/modules.d/99squash/init.sh b/modules.d/99squash/init.sh
new file mode 100755
index 00000000..bca49db5
--- /dev/null
+++ b/modules.d/99squash/init.sh
@@ -0,0 +1,7 @@
+#!/bin/sh
+/squash/setup-squash.sh
+
+exec /init.stock
+
+echo "Something went wrong when trying to start original init executable!"
+exit 1
diff --git a/modules.d/99squash/module-setup.sh b/modules.d/99squash/module-setup.sh
new file mode 100644
index 00000000..935fd721
--- /dev/null
+++ b/modules.d/99squash/module-setup.sh
@@ -0,0 +1,29 @@
+#!/bin/bash
+
+check() {
+ return 255
+}
+
+depends() {
+ echo "bash systemd systemd-initrd"
+ return 0
+}
+
+installkernel() {
+ hostonly="" instmods squashfs loop overlay
+}
+
+install() {
+ if ! type -P mksquashfs >/dev/null || ! type -P unsquashfs >/dev/null ; then
+ derror "squash module requires squashfs-tools to be installed."
+ return 1
+ fi
+
+ inst_multiple kmod modprobe mount mkdir ln echo
+ inst $moddir/setup-squash.sh /squash/setup-squash.sh
+ inst $moddir/clear-squash.sh /squash/clear-squash.sh
+ inst $moddir/init.sh /squash/init.sh
+
+ inst "$moddir/squash-mnt-clear.service" "$systemdsystemunitdir/squash-mnt-clear.service"
+ ln_r "$systemdsystemunitdir/squash-mnt-clear.service" "$systemdsystemunitdir/initrd.target.wants/squash-mnt-clear.service"
+}
diff --git a/modules.d/99squash/setup-squash.sh b/modules.d/99squash/setup-squash.sh
new file mode 100755
index 00000000..d2740e7c
--- /dev/null
+++ b/modules.d/99squash/setup-squash.sh
@@ -0,0 +1,61 @@
+#!/bin/sh
+PATH=/bin:/sbin
+
+SQUASH_IMG=/squash/root.img
+SQUASH_MNT=/squash/root
+SQUASH_MNT_REC=/squash/mounts
+SQUASHED_MNT="usr etc"
+
+echo $SQUASH_MNT > $SQUASH_MNT_REC
+
+# Following mount points are neccessary for mounting a squash image
+
+[ ! -d /proc/self ] && \
+ mount -t proc -o nosuid,noexec,nodev proc /proc
+
+[ ! -d /sys/kernel ] && \
+ mount -t sysfs -o nosuid,noexec,nodev sysfs /sys
+
+[ ! -e /dev/loop-control ] && \
+ mount -t devtmpfs -o mode=0755,noexec,nosuid,strictatime devtmpfs /dev
+
+# Need a loop device backend, overlayfs, and squashfs module
+modprobe loop
+if [ $? != 0 ]; then
+ echo "Unable to setup loop module"
+fi
+
+modprobe squashfs
+if [ $? != 0 ]; then
+ echo "Unable to setup squashfs module"
+fi
+
+modprobe overlay
+if [ $? != 0 ]; then
+ echo "Unable to setup overlay module"
+fi
+
+[ ! -d "$SQUASH_MNT" ] && \
+ mkdir -m 0755 -p $SQUASH_MNT
+
+# Mount the squashfs image
+mount -t squashfs -o ro,loop $SQUASH_IMG $SQUASH_MNT
+
+if [ $? != 0 ]; then
+ echo "Unable to mount squashed initramfs image"
+fi
+
+for file in $SQUASHED_MNT; do
+ lowerdir=$SQUASH_MNT/$file
+ workdir=/squash/overlay-work/$file
+ upperdir=/$file
+ mntdir=/$file
+
+ mkdir -m 0755 -p $workdir
+ mkdir -m 0755 -p $mntdir
+
+ mount -t overlay overlay -o\
+ lowerdir=$lowerdir,upperdir=$upperdir,workdir=$workdir $mntdir
+
+ echo $mntdir >> $SQUASH_MNT_REC
+done
diff --git a/modules.d/99squash/shutdown.sh b/modules.d/99squash/shutdown.sh
new file mode 100755
index 00000000..535779f4
--- /dev/null
+++ b/modules.d/99squash/shutdown.sh
@@ -0,0 +1,7 @@
+#!/bin/sh
+/squash/setup-squash.sh
+
+exec /shutdown.stock
+
+echo "Something went wrong when trying to start original shutdown executable!"
+exit 1
diff --git a/modules.d/99squash/squash-mnt-clear.service b/modules.d/99squash/squash-mnt-clear.service
new file mode 100644
index 00000000..8dd17812
--- /dev/null
+++ b/modules.d/99squash/squash-mnt-clear.service
@@ -0,0 +1,19 @@
+# This file is part of dracut.
+#
+
+[Unit]
+Description=Cleanup squashfs mounts when switch root
+DefaultDependencies=no
+After=initrd.target
+After=dracut-initqueue.service dracut-pre-pivot.service
+Before=initrd-cleanup.service
+ConditionPathExists=/squash/root
+Conflicts=initrd-switch-root.target
+
+[Service]
+Type=oneshot
+RemainAfterExit=yes
+StandardInput=null
+StandardOutput=syslog+console
+StandardError=syslog+console
+ExecStop=/squash/clear-squash.sh

View File

@ -1,43 +0,0 @@
From 24f3463bff8600d562975c9a7c44365066a50ca4 Mon Sep 17 00:00:00 2001
From: Kairui Song <kasong@redhat.com>
Date: Thu, 20 Sep 2018 17:23:19 +0800
Subject: [PATCH] dracut.spec: Add dracut-squash package
As 99squash module requires extra dependency and it introduces new
files, add a new sub package for this module.
---
dracut.spec | 13 +++++++++++++
1 file changed, 13 insertions(+)
diff --git a/dracut.spec b/dracut.spec
index 09c74478..d9cfdf1c 100644
--- a/dracut.spec
+++ b/dracut.spec
@@ -178,6 +178,16 @@ Requires: %{name} = %{version}-%{release}
%description tools
This package contains tools to assemble the local initrd and host configuration.
+%package squash
+Summary: dracut module to build an initramfs with most files in a squashfs image
+Requires: %{name} = %{version}-%{release}
+Requires: squash-tools
+
+%description squash
+This package provides a dracut module to build an initramfs, but store most files
+in a squashfs image, result in a smaller initramfs size and reduce runtime memory
+usage.
+
%prep
%autosetup -n %{name}-%{version} -S git_am
cp %{SOURCE1} .
@@ -439,6 +449,9 @@ install -m 0755 51-dracut-rescue-postinst.sh $RPM_BUILD_ROOT%{_sysconfdir}/kerne
%doc %{_mandir}/man8/dracut-catimages.8*
%endif
+%files squash
+%{dracutlibdir}/modules.d/99squash
+
%{_bindir}/dracut-catimages
%dir /boot/dracut
%dir /var/lib/dracut

View File

@ -1,30 +0,0 @@
From 0454dc247a146fabd66232c26536514dca1f6044 Mon Sep 17 00:00:00 2001
From: Lubomir Rintel <lkundrak@v3.sk>
Date: Tue, 18 Sep 2018 11:17:54 +0200
Subject: [PATCH] network: configure NetworkManager to use dhclient
If the network module obtained a lease using dhclient, NetworkManager
must be configured to use it too, otherwise it would obtain a different
lease (and could potentially break a connection to the network volume).
---
modules.d/40network/ifup.sh | 6 ++++++
1 file changed, 6 insertions(+)
diff --git a/modules.d/40network/ifup.sh b/modules.d/40network/ifup.sh
index 54981386..ea2a67ff 100755
--- a/modules.d/40network/ifup.sh
+++ b/modules.d/40network/ifup.sh
@@ -41,6 +41,12 @@ do_dhcp() {
return 1
fi
+ if [ ! -e /run/NetworkManager/conf.d/10-dracut-dhclient.conf ]; then
+ mkdir -p /run/NetworkManager/conf.d
+ echo '[main]' > /run/NetworkManager/conf.d/10-dracut-dhclient.conf
+ echo 'dhcp=dhclient' >>/run/NetworkManager/conf.d/10-dracut-dhclient.conf
+ fi
+
while [ $_COUNT -lt $_DHCPRETRY ]; do
info "Starting dhcp for interface $netif"
dhclient "$@" \

View File

@ -1,37 +0,0 @@
From 9e82732dd412a49cbdf9c4b998f04ac0a39e393f Mon Sep 17 00:00:00 2001
From: Lubomir Rintel <lkundrak@v3.sk>
Date: Thu, 30 Aug 2018 16:21:17 +0200
Subject: [PATCH] iscsi: do not replace the configuration in the host system
ln: failed to create symbolic link '/usr/lib/systemd/system/sockets.target.wants/iscsid.socket': Permission denied
ln: failed to create symbolic link '/usr/lib/systemd/system/sockets.target.wants/iscsiuio.socket': Permission denied
No way. Just ensure the links are there in the initramfs image. In fact,
that is already the case for iscsiuio.socket. Add iscsid.socket too.
---
modules.d/95iscsi/module-setup.sh | 4 +---
1 file changed, 1 insertion(+), 3 deletions(-)
diff --git a/modules.d/95iscsi/module-setup.sh b/modules.d/95iscsi/module-setup.sh
index d8405fce..04beae4c 100755
--- a/modules.d/95iscsi/module-setup.sh
+++ b/modules.d/95iscsi/module-setup.sh
@@ -208,9 +208,6 @@ install() {
inst_libdir_file 'libgcc_s.so*'
inst_multiple umount hostname iscsi-iname iscsiadm iscsid
- ln -sf $systemdsystemunitdir/iscsid.socket $systemdsystemunitdir/sockets.target.wants/iscsid.socket
- ln -sf $systemdsystemunitdir/iscsiuio.socket $systemdsystemunitdir/sockets.target.wants/iscsiuio.socket
-
inst_multiple -o \
$systemdsystemunitdir/iscsid.socket \
$systemdsystemunitdir/iscsid.service \
@@ -243,6 +240,7 @@ install() {
mkdir -p "${initdir}/$systemdsystemunitdir/sockets.target.wants"
for i in \
+ iscsid.socket \
iscsiuio.socket \
; do
ln_r "$systemdsystemunitdir/${i}" "$systemdsystemunitdir/sockets.target.wants/${i}"

View File

@ -1,29 +0,0 @@
From 5e615f4eb488e469395e7e30059a22d8225d9a0a Mon Sep 17 00:00:00 2001
From: Lubomir Rintel <lkundrak@v3.sk>
Date: Thu, 30 Aug 2018 18:38:34 +0200
Subject: [PATCH] iscsi: do not install all of /etc/iscsi unless hostonly
/etc/iscsi/initiatorname.iscsi would leak the host initiator name (that
is host configuration) to the initramfs. Perhaps other files too.
---
modules.d/95iscsi/module-setup.sh | 6 +++++-
1 file changed, 5 insertions(+), 1 deletion(-)
diff --git a/modules.d/95iscsi/module-setup.sh b/modules.d/95iscsi/module-setup.sh
index 04beae4c..5c2073bb 100755
--- a/modules.d/95iscsi/module-setup.sh
+++ b/modules.d/95iscsi/module-setup.sh
@@ -216,7 +216,11 @@ install() {
$systemdsystemunitdir/sockets.target.wants/iscsid.socket \
$systemdsystemunitdir/sockets.target.wants/iscsiuio.socket
- [[ -d /etc/iscsi ]] && inst_dir $(/usr/bin/find /etc/iscsi)
+ if [[ $hostonly ]]; then
+ inst_dir $(/usr/bin/find /etc/iscsi)
+ else
+ inst_simple /etc/iscsi/iscsid.conf
+ fi
# Detect iBFT and perform mandatory steps
if [[ $hostonly_cmdline == "yes" ]] ; then

View File

@ -1,27 +0,0 @@
From 0aa2e5f7280a0f88d5f8d69dd9467e7b81d6a231 Mon Sep 17 00:00:00 2001
From: Lubomir Rintel <lkundrak@v3.sk>
Date: Thu, 30 Aug 2018 18:41:37 +0200
Subject: [PATCH] iscsi: start iscsid even w/o systemd
---
modules.d/95iscsi/iscsiroot.sh | 6 ++++++
1 file changed, 6 insertions(+)
diff --git a/modules.d/95iscsi/iscsiroot.sh b/modules.d/95iscsi/iscsiroot.sh
index 76c8b3fe..4efc1d12 100755
--- a/modules.d/95iscsi/iscsiroot.sh
+++ b/modules.d/95iscsi/iscsiroot.sh
@@ -194,6 +194,12 @@ handle_netroot()
sleep 1
fi
fi
+
+ if [ -z "$DRACUT_SYSTEMD" ]; then
+ iscsid
+ sleep 2
+ fi
+
# FIXME $iscsi_protocol??
if [ "$root" = "dhcp" ] || [ "$netroot" = "dhcp" ]; then

View File

@ -1,23 +0,0 @@
From 1c4a51c39c8ed9908ae8118eff78d3476eaddf61 Mon Sep 17 00:00:00 2001
From: Lubomir Rintel <lkundrak@v3.sk>
Date: Fri, 31 Aug 2018 16:51:38 +0200
Subject: [PATCH] network: fix an error message
---
modules.d/40network/netroot.sh | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/modules.d/40network/netroot.sh b/modules.d/40network/netroot.sh
index c80a59fe..207364cd 100755
--- a/modules.d/40network/netroot.sh
+++ b/modules.d/40network/netroot.sh
@@ -46,7 +46,7 @@ if [ -z "$2" ]; then
# we die. Otherwise we just warn
if [ -z "$new_root_path" ] ; then
[ -n "$BOOTDEV" ] && die "No dhcp root-path received for '$BOOTDEV'"
- warn "No dhcp root-path received for '$BOOTDEV' trying other interfaces if available"
+ warn "No dhcp root-path received for '$netif' trying other interfaces if available"
exit 1
fi

View File

@ -1,287 +0,0 @@
From 734739187bfab24f063904ea18f0bdf03b4a136c Mon Sep 17 00:00:00 2001
From: Lubomir Rintel <lkundrak@v3.sk>
Date: Thu, 30 Aug 2018 16:44:22 +0200
Subject: [PATCH] network-legacy: split off from network module
---
dracut.spec | 1 +
.../dhclient-script.sh | 0
.../{40network => 35network-legacy}/dhclient.conf | 0
.../{40network => 35network-legacy}/dhcp-root.sh | 0
modules.d/{40network => 35network-legacy}/ifup.sh | 0
.../kill-dhclient.sh | 0
modules.d/35network-legacy/module-setup.sh | 93 ++++++++++++++++++++++
.../net-genrules.sh | 0
.../{40network => 35network-legacy}/parse-bond.sh | 0
.../parse-bridge.sh | 0
.../{40network => 35network-legacy}/parse-ibft.sh | 0
.../parse-ifname.sh | 0
.../parse-ip-opts.sh | 0
.../{40network => 35network-legacy}/parse-team.sh | 0
.../{40network => 35network-legacy}/parse-vlan.sh | 0
modules.d/40network/module-setup.sh | 76 +-----------------
16 files changed, 95 insertions(+), 75 deletions(-)
diff --git a/dracut.spec b/dracut.spec
index d9cfdf1c..f6486d50 100644
--- a/dracut.spec
+++ b/dracut.spec
@@ -419,6 +419,7 @@ install -m 0755 51-dracut-rescue-postinst.sh $RPM_BUILD_ROOT%{_sysconfdir}/kerne
%files network
%{dracutlibdir}/modules.d/02systemd-networkd
+%{dracutlibdir}/modules.d/35network-legacy
%{dracutlibdir}/modules.d/40network
%{dracutlibdir}/modules.d/45ifcfg
%{dracutlibdir}/modules.d/90kernel-network-modules
diff --git a/modules.d/40network/dhclient-script.sh b/modules.d/35network-legacy/dhclient-script.sh
similarity index 100%
rename from modules.d/40network/dhclient-script.sh
rename to modules.d/35network-legacy/dhclient-script.sh
diff --git a/modules.d/40network/dhclient.conf b/modules.d/35network-legacy/dhclient.conf
similarity index 100%
rename from modules.d/40network/dhclient.conf
rename to modules.d/35network-legacy/dhclient.conf
diff --git a/modules.d/40network/dhcp-root.sh b/modules.d/35network-legacy/dhcp-root.sh
similarity index 100%
rename from modules.d/40network/dhcp-root.sh
rename to modules.d/35network-legacy/dhcp-root.sh
diff --git a/modules.d/40network/ifup.sh b/modules.d/35network-legacy/ifup.sh
similarity index 100%
rename from modules.d/40network/ifup.sh
rename to modules.d/35network-legacy/ifup.sh
diff --git a/modules.d/40network/kill-dhclient.sh b/modules.d/35network-legacy/kill-dhclient.sh
similarity index 100%
rename from modules.d/40network/kill-dhclient.sh
rename to modules.d/35network-legacy/kill-dhclient.sh
diff --git a/modules.d/35network-legacy/module-setup.sh b/modules.d/35network-legacy/module-setup.sh
new file mode 100755
index 00000000..71abda36
--- /dev/null
+++ b/modules.d/35network-legacy/module-setup.sh
@@ -0,0 +1,93 @@
+#!/bin/bash
+
+# called by dracut
+check() {
+ local _program
+
+ require_binaries ip dhclient sed awk grep || return 1
+ require_any_binary arping arping2 || return 1
+
+ return 255
+}
+
+# called by dracut
+depends() {
+ return 0
+}
+
+# called by dracut
+installkernel() {
+ return 0
+}
+
+# called by dracut
+install() {
+ local _arch _i _dir
+ inst_multiple ip dhclient sed awk grep
+
+ inst_multiple -o arping arping2
+ strstr "$(arping 2>&1)" "ARPing 2" && mv "$initdir/bin/arping" "$initdir/bin/arping2"
+
+ inst_multiple -o ping ping6
+ inst_multiple -o teamd teamdctl teamnl
+ inst_simple /etc/libnl/classid
+ inst_script "$moddir/ifup.sh" "/sbin/ifup"
+ inst_script "$moddir/dhclient-script.sh" "/sbin/dhclient-script"
+ inst_simple -H "/etc/dhclient.conf"
+ cat "$moddir/dhclient.conf" >> "${initdir}/etc/dhclient.conf"
+ inst_hook pre-udev 60 "$moddir/net-genrules.sh"
+ inst_hook cmdline 91 "$moddir/dhcp-root.sh"
+ inst_hook cmdline 92 "$moddir/parse-ibft.sh"
+ inst_hook cmdline 95 "$moddir/parse-vlan.sh"
+ inst_hook cmdline 96 "$moddir/parse-bond.sh"
+ inst_hook cmdline 96 "$moddir/parse-team.sh"
+ inst_hook cmdline 97 "$moddir/parse-bridge.sh"
+ inst_hook cmdline 98 "$moddir/parse-ip-opts.sh"
+ inst_hook cmdline 99 "$moddir/parse-ifname.sh"
+ inst_hook cleanup 10 "$moddir/kill-dhclient.sh"
+
+ # install all config files for teaming
+ unset TEAM_MASTER
+ unset TEAM_CONFIG
+ unset TEAM_PORT_CONFIG
+ unset HWADDR
+ unset SUBCHANNELS
+ for i in /etc/sysconfig/network-scripts/ifcfg-*; do
+ [ -e "$i" ] || continue
+ case "$i" in
+ *~ | *.bak | *.orig | *.rpmnew | *.rpmorig | *.rpmsave)
+ continue
+ ;;
+ esac
+ (
+ . "$i"
+ if ! [ "${ONBOOT}" = "no" -o "${ONBOOT}" = "NO" ] \
+ && [ -n "${TEAM_MASTER}${TEAM_CONFIG}${TEAM_PORT_CONFIG}" ]; then
+ if [ -n "$TEAM_CONFIG" ] && [ -n "$DEVICE" ]; then
+ mkdir -p $initdir/etc/teamd
+ printf -- "%s" "$TEAM_CONFIG" > "$initdir/etc/teamd/${DEVICE}.conf"
+ elif [ -n "$TEAM_PORT_CONFIG" ]; then
+ inst_simple "$i"
+
+ HWADDR="$(echo $HWADDR | sed 'y/ABCDEF/abcdef/')"
+ if [ -n "$HWADDR" ]; then
+ ln_r "$i" "/etc/sysconfig/network-scripts/mac-${HWADDR}.conf"
+ fi
+
+ SUBCHANNELS="$(echo $SUBCHANNELS | sed 'y/ABCDEF/abcdef/')"
+ if [ -n "$SUBCHANNELS" ]; then
+ ln_r "$i" "/etc/sysconfig/network-scripts/ccw-${SUBCHANNELS}.conf"
+ fi
+ fi
+ fi
+ )
+ done
+
+ _arch=$(uname -m)
+
+ inst_libdir_file {"tls/$_arch/",tls/,"$_arch/",}"libnss_dns.so.*" \
+ {"tls/$_arch/",tls/,"$_arch/",}"libnss_mdns4_minimal.so.*"
+
+ dracut_need_initqueue
+}
+
diff --git a/modules.d/40network/net-genrules.sh b/modules.d/35network-legacy/net-genrules.sh
similarity index 100%
rename from modules.d/40network/net-genrules.sh
rename to modules.d/35network-legacy/net-genrules.sh
diff --git a/modules.d/40network/parse-bond.sh b/modules.d/35network-legacy/parse-bond.sh
similarity index 100%
rename from modules.d/40network/parse-bond.sh
rename to modules.d/35network-legacy/parse-bond.sh
diff --git a/modules.d/40network/parse-bridge.sh b/modules.d/35network-legacy/parse-bridge.sh
similarity index 100%
rename from modules.d/40network/parse-bridge.sh
rename to modules.d/35network-legacy/parse-bridge.sh
diff --git a/modules.d/40network/parse-ibft.sh b/modules.d/35network-legacy/parse-ibft.sh
similarity index 100%
rename from modules.d/40network/parse-ibft.sh
rename to modules.d/35network-legacy/parse-ibft.sh
diff --git a/modules.d/40network/parse-ifname.sh b/modules.d/35network-legacy/parse-ifname.sh
similarity index 100%
rename from modules.d/40network/parse-ifname.sh
rename to modules.d/35network-legacy/parse-ifname.sh
diff --git a/modules.d/40network/parse-ip-opts.sh b/modules.d/35network-legacy/parse-ip-opts.sh
similarity index 100%
rename from modules.d/40network/parse-ip-opts.sh
rename to modules.d/35network-legacy/parse-ip-opts.sh
diff --git a/modules.d/40network/parse-team.sh b/modules.d/35network-legacy/parse-team.sh
similarity index 100%
rename from modules.d/40network/parse-team.sh
rename to modules.d/35network-legacy/parse-team.sh
diff --git a/modules.d/40network/parse-vlan.sh b/modules.d/35network-legacy/parse-vlan.sh
similarity index 100%
rename from modules.d/40network/parse-vlan.sh
rename to modules.d/35network-legacy/parse-vlan.sh
diff --git a/modules.d/40network/module-setup.sh b/modules.d/40network/module-setup.sh
index a1010911..fbd43925 100755
--- a/modules.d/40network/module-setup.sh
+++ b/modules.d/40network/module-setup.sh
@@ -1,18 +1,8 @@
#!/bin/bash
-# called by dracut
-check() {
- local _program
-
- require_binaries ip dhclient sed awk grep || return 1
- require_any_binary arping arping2 || return 1
-
- return 255
-}
-
# called by dracut
depends() {
- echo "kernel-network-modules"
+ echo "network-legacy"
return 0
}
@@ -24,74 +14,10 @@ installkernel() {
# called by dracut
install() {
local _arch _i _dir
- inst_multiple ip dhclient sed awk grep
-
- inst_multiple -o arping arping2
- strstr "$(arping 2>&1)" "ARPing 2" && mv "$initdir/bin/arping" "$initdir/bin/arping2"
- inst_multiple -o ping ping6
- inst_multiple -o teamd teamdctl teamnl
- inst_simple /etc/libnl/classid
- inst_script "$moddir/ifup.sh" "/sbin/ifup"
inst_script "$moddir/netroot.sh" "/sbin/netroot"
- inst_script "$moddir/dhclient-script.sh" "/sbin/dhclient-script"
inst_simple "$moddir/net-lib.sh" "/lib/net-lib.sh"
- inst_simple -H "/etc/dhclient.conf"
- cat "$moddir/dhclient.conf" >> "${initdir}/etc/dhclient.conf"
inst_hook pre-udev 50 "$moddir/ifname-genrules.sh"
- inst_hook pre-udev 60 "$moddir/net-genrules.sh"
- inst_hook cmdline 91 "$moddir/dhcp-root.sh"
- inst_hook cmdline 92 "$moddir/parse-ibft.sh"
- inst_hook cmdline 95 "$moddir/parse-vlan.sh"
- inst_hook cmdline 96 "$moddir/parse-bond.sh"
- inst_hook cmdline 96 "$moddir/parse-team.sh"
- inst_hook cmdline 97 "$moddir/parse-bridge.sh"
- inst_hook cmdline 98 "$moddir/parse-ip-opts.sh"
- inst_hook cmdline 99 "$moddir/parse-ifname.sh"
- inst_hook cleanup 10 "$moddir/kill-dhclient.sh"
-
- # install all config files for teaming
- unset TEAM_MASTER
- unset TEAM_CONFIG
- unset TEAM_PORT_CONFIG
- unset HWADDR
- unset SUBCHANNELS
- for i in /etc/sysconfig/network-scripts/ifcfg-*; do
- [ -e "$i" ] || continue
- case "$i" in
- *~ | *.bak | *.orig | *.rpmnew | *.rpmorig | *.rpmsave)
- continue
- ;;
- esac
- (
- . "$i"
- if ! [ "${ONBOOT}" = "no" -o "${ONBOOT}" = "NO" ] \
- && [ -n "${TEAM_MASTER}${TEAM_CONFIG}${TEAM_PORT_CONFIG}" ]; then
- if [ -n "$TEAM_CONFIG" ] && [ -n "$DEVICE" ]; then
- mkdir -p $initdir/etc/teamd
- printf -- "%s" "$TEAM_CONFIG" > "$initdir/etc/teamd/${DEVICE}.conf"
- elif [ -n "$TEAM_PORT_CONFIG" ]; then
- inst_simple "$i"
-
- HWADDR="$(echo $HWADDR | sed 'y/ABCDEF/abcdef/')"
- if [ -n "$HWADDR" ]; then
- ln_r "$i" "/etc/sysconfig/network-scripts/mac-${HWADDR}.conf"
- fi
-
- SUBCHANNELS="$(echo $SUBCHANNELS | sed 'y/ABCDEF/abcdef/')"
- if [ -n "$SUBCHANNELS" ]; then
- ln_r "$i" "/etc/sysconfig/network-scripts/ccw-${SUBCHANNELS}.conf"
- fi
- fi
- fi
- )
- done
-
- _arch=$(uname -m)
-
- inst_libdir_file {"tls/$_arch/",tls/,"$_arch/",}"libnss_dns.so.*" \
- {"tls/$_arch/",tls/,"$_arch/",}"libnss_mdns4_minimal.so.*"
dracut_need_initqueue
}
-

View File

@ -1,133 +0,0 @@
From 08bdadbf315cced437385228b2434a02a19090e4 Mon Sep 17 00:00:00 2001
From: Lubomir Rintel <lkundrak@v3.sk>
Date: Thu, 30 Aug 2018 16:44:22 +0200
Subject: [PATCH] network-manager: add module
---
dracut.spec | 1 +
modules.d/35network-manager/module-setup.sh | 52 +++++++++++++++++++++++++++++
modules.d/35network-manager/nm-config.sh | 3 ++
modules.d/35network-manager/nm-run.sh | 16 +++++++++
modules.d/40network/module-setup.sh | 7 +++-
5 files changed, 78 insertions(+), 1 deletion(-)
diff --git a/dracut.spec b/dracut.spec
index f6486d50..b6099824 100644
--- a/dracut.spec
+++ b/dracut.spec
@@ -419,6 +419,7 @@ install -m 0755 51-dracut-rescue-postinst.sh $RPM_BUILD_ROOT%{_sysconfdir}/kerne
%files network
%{dracutlibdir}/modules.d/02systemd-networkd
+%{dracutlibdir}/modules.d/35network-manager
%{dracutlibdir}/modules.d/35network-legacy
%{dracutlibdir}/modules.d/40network
%{dracutlibdir}/modules.d/45ifcfg
diff --git a/modules.d/35network-manager/module-setup.sh b/modules.d/35network-manager/module-setup.sh
new file mode 100755
index 00000000..62aba3c6
--- /dev/null
+++ b/modules.d/35network-manager/module-setup.sh
@@ -0,0 +1,52 @@
+#!/bin/bash
+
+# called by dracut
+check() {
+ local _program
+
+ require_binaries sed grep || return 1
+
+ # do not add this module by default
+ return 255
+}
+
+# called by dracut
+depends() {
+ return 0
+}
+
+# called by dracut
+installkernel() {
+ return 0
+}
+
+# called by dracut
+install() {
+ local _nm_version
+
+ _nm_version=$(NetworkManager --version)
+
+ inst_multiple sed grep
+
+ inst NetworkManager
+ inst /usr/libexec/nm-initrd-generator
+ inst_multiple -o teamd dhclient
+ inst_hook cmdline 99 "$moddir/nm-config.sh"
+ inst_hook initqueue/settled 99 "$moddir/nm-run.sh"
+ inst_rules 85-nm-unmanaged.rules
+ inst_libdir_file "NetworkManager/$_nm_version/libnm-device-plugin-team.so"
+
+ if [[ -x "$initdir/usr/sbin/dhclient" ]]; then
+ inst /usr/libexec/nm-dhcp-helper
+ elif ! [[ -e "$initdir/etc/machine-id" ]]; then
+ # The internal DHCP client silently fails if we
+ # have no machine-id
+ systemd-machine-id-setup --root="$initdir"
+ fi
+
+ # We don't install the ifcfg files from the host automatically.
+ # But if the user chooses to include them, we pull in the machinery to read them.
+ if ! [[ -d "$initdir/etc/sysconfig/network-scripts" ]]; then
+ inst_libdir_file "NetworkManager/$_nm_version/libnm-settings-plugin-ifcfg-rh.so"
+ fi
+}
diff --git a/modules.d/35network-manager/nm-config.sh b/modules.d/35network-manager/nm-config.sh
new file mode 100755
index 00000000..1339ebe7
--- /dev/null
+++ b/modules.d/35network-manager/nm-config.sh
@@ -0,0 +1,3 @@
+#!/bin/sh
+
+/usr/libexec/nm-initrd-generator -- $(getcmdline)
diff --git a/modules.d/35network-manager/nm-run.sh b/modules.d/35network-manager/nm-run.sh
new file mode 100755
index 00000000..f6defa99
--- /dev/null
+++ b/modules.d/35network-manager/nm-run.sh
@@ -0,0 +1,16 @@
+#!/bin/sh
+
+if getargbool 0 rd.debug -d -y rdinitdebug -d -y rdnetdebug; then
+ /usr/sbin/NetworkManager --configure-and-quit=initrd --debug --log-level=trace
+else
+ /usr/sbin/NetworkManager --configure-and-quit=initrd --no-daemon
+fi
+
+for _i in /sys/class/net/*/
+do
+ state=/run/NetworkManager/devices/$(cat $_i/ifindex)
+ grep -q managed=true $state 2>/dev/null || continue
+ ifname=$(basename $_i)
+ sed -n 's/root-path/new_root_path/p' <$state >/tmp/dhclient.$ifname.dhcpopts
+ /sbin/netroot $ifname
+done
diff --git a/modules.d/40network/module-setup.sh b/modules.d/40network/module-setup.sh
index fbd43925..57c0a45e 100755
--- a/modules.d/40network/module-setup.sh
+++ b/modules.d/40network/module-setup.sh
@@ -2,7 +2,12 @@
# called by dracut
depends() {
- echo "network-legacy"
+ echo -n "kernel-network-modules "
+ if ! dracut_module_included "network-legacy" && [ -x "/usr/libexec/nm-initrd-generator" ] ; then
+ echo "network-manager"
+ else
+ echo "network-legacy"
+ fi
return 0
}

View File

@ -1,22 +0,0 @@
From 4be697e5c19f18a17ec18368ded0787d6f32baf5 Mon Sep 17 00:00:00 2001
From: Harald Hoyer <harald@redhat.com>
Date: Fri, 21 Sep 2018 12:41:00 +0200
Subject: [PATCH] dracut.spec: fixed invalid spec line
---
dracut.spec | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/dracut.spec b/dracut.spec
index b6099824..c6fbdc77 100644
--- a/dracut.spec
+++ b/dracut.spec
@@ -49,7 +49,7 @@ BuildRequires: docbook-style-xsl docbook-dtds libxslt
%endif
%if 0%{?suse_version}
--BuildRequires: docbook-xsl-stylesheets libxslt
+BuildRequires: docbook-xsl-stylesheets libxslt
%endif
BuildRequires: asciidoc

View File

@ -5,10 +5,10 @@
# strip the automatically generated dep here and instead co-own the
# directory.
%global __requires_exclude pkg-config
%define dist_free_release 99.git20180921
%define dist_free_release 1
Name: dracut
Version: 048
Version: 049
Release: %{dist_free_release}%{?dist}
Summary: Initramfs generator using udev
@ -28,104 +28,6 @@ URL: https://dracut.wiki.kernel.org/
# Source can be generated by
# http://git.kernel.org/?p=boot/dracut/dracut.git;a=snapshot;h=%%{version};sf=tgz
Source0: http://www.kernel.org/pub/linux/utils/boot/dracut/dracut-%{version}.tar.xz
Patch1: 0001.patch
Patch2: 0002.patch
Patch3: 0003.patch
Patch4: 0004.patch
Patch5: 0005.patch
Patch6: 0006.patch
Patch7: 0007.patch
Patch8: 0008.patch
Patch9: 0009.patch
Patch10: 0010.patch
Patch11: 0011.patch
Patch12: 0012.patch
Patch13: 0013.patch
Patch14: 0014.patch
Patch15: 0015.patch
Patch16: 0016.patch
Patch17: 0017.patch
Patch18: 0018.patch
Patch19: 0019.patch
Patch20: 0020.patch
Patch21: 0021.patch
Patch22: 0022.patch
Patch23: 0023.patch
Patch24: 0024.patch
Patch25: 0025.patch
Patch26: 0026.patch
Patch27: 0027.patch
Patch28: 0028.patch
Patch29: 0029.patch
Patch30: 0030.patch
Patch31: 0031.patch
Patch32: 0032.patch
Patch33: 0033.patch
Patch34: 0034.patch
Patch35: 0035.patch
Patch36: 0036.patch
Patch37: 0037.patch
Patch38: 0038.patch
Patch39: 0039.patch
Patch40: 0040.patch
Patch41: 0041.patch
Patch42: 0042.patch
Patch43: 0043.patch
Patch44: 0044.patch
Patch45: 0045.patch
Patch46: 0046.patch
Patch47: 0047.patch
Patch48: 0048.patch
Patch49: 0049.patch
Patch50: 0050.patch
Patch51: 0051.patch
Patch52: 0052.patch
Patch53: 0053.patch
Patch54: 0054.patch
Patch55: 0055.patch
Patch56: 0056.patch
Patch57: 0057.patch
Patch58: 0058.patch
Patch59: 0059.patch
Patch60: 0060.patch
Patch61: 0061.patch
Patch62: 0062.patch
Patch63: 0063.patch
Patch64: 0064.patch
Patch65: 0065.patch
Patch66: 0066.patch
Patch67: 0067.patch
Patch68: 0068.patch
Patch69: 0069.patch
Patch70: 0070.patch
Patch71: 0071.patch
Patch72: 0072.patch
Patch73: 0073.patch
Patch74: 0074.patch
Patch75: 0075.patch
Patch76: 0076.patch
Patch77: 0077.patch
Patch78: 0078.patch
Patch79: 0079.patch
Patch80: 0080.patch
Patch81: 0081.patch
Patch82: 0082.patch
Patch83: 0083.patch
Patch84: 0084.patch
Patch85: 0085.patch
Patch86: 0086.patch
Patch87: 0087.patch
Patch88: 0088.patch
Patch89: 0089.patch
Patch90: 0090.patch
Patch91: 0091.patch
Patch92: 0092.patch
Patch93: 0093.patch
Patch94: 0094.patch
Patch95: 0095.patch
Patch96: 0096.patch
Patch97: 0097.patch
Patch98: 0098.patch
Source1: https://www.gnu.org/licenses/lgpl-2.1.txt
@ -449,6 +351,7 @@ install -m 0755 51-dracut-rescue-postinst.sh $RPM_BUILD_ROOT%{_sysconfdir}/kerne
%{dracutlibdir}/modules.d/90dm
%{dracutlibdir}/modules.d/90dmraid
%{dracutlibdir}/modules.d/90kernel-modules
%{dracutlibdir}/modules.d/90kernel-modules-extra
%{dracutlibdir}/modules.d/90lvm
%{dracutlibdir}/modules.d/90mdraid
%{dracutlibdir}/modules.d/90multipath
@ -570,6 +473,9 @@ install -m 0755 51-dracut-rescue-postinst.sh $RPM_BUILD_ROOT%{_sysconfdir}/kerne
%endif
%changelog
* Mon Oct 08 2018 Harald Hoyer <harald@redhat.com> - 049-1
- version 049
* Fri Sep 21 2018 Harald Hoyer <harald@redhat.com> - 048-99.git20180921
- git snapshot