dracut - 050-61.git20200529
- git snapshot (cherry picked from commit 0738a697c9202eb36911f02b0829bcaf3a224687)
This commit is contained in:
parent
9d6a2bd992
commit
308914b60e
@ -24,3 +24,4 @@ index ab82cbc9..39fa3692 100755
|
|||||||
[[ $tmpdir ]] || tmpdir=$dracutsysrootdir/var/tmp
|
[[ $tmpdir ]] || tmpdir=$dracutsysrootdir/var/tmp
|
||||||
[[ $INITRD_COMPRESS ]] && compress=$INITRD_COMPRESS
|
[[ $INITRD_COMPRESS ]] && compress=$INITRD_COMPRESS
|
||||||
[[ $compress_l ]] && compress=$compress_l
|
[[ $compress_l ]] && compress=$compress_l
|
||||||
|
|
||||||
|
32
0026.patch
Normal file
32
0026.patch
Normal file
@ -0,0 +1,32 @@
|
|||||||
|
From 17d62d12065c264d899609cf69e8d913fc84460d Mon Sep 17 00:00:00 2001
|
||||||
|
From: =?UTF-8?q?=C4=90o=C3=A0n=20Tr=E1=BA=A7n=20C=C3=B4ng=20Danh?=
|
||||||
|
<congdanhqx@gmail.com>
|
||||||
|
Date: Sat, 14 Mar 2020 11:44:47 +0700
|
||||||
|
Subject: [PATCH] cryptroot-ask: no warn if /run/cryptsetup exist
|
||||||
|
|
||||||
|
In either case:
|
||||||
|
- encrypted device is decrypted, udev will trigger device changes again,
|
||||||
|
- multiple encrypted device,
|
||||||
|
|
||||||
|
cryptroot-ask will run multiple time, then report:
|
||||||
|
> mkdir: cannot create directory '/run/cryptsetup': File exists
|
||||||
|
|
||||||
|
Pass `-p` into mkdir to ignore that warning.
|
||||||
|
---
|
||||||
|
modules.d/90crypt/cryptroot-ask.sh | 2 +-
|
||||||
|
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||||
|
|
||||||
|
diff --git a/modules.d/90crypt/cryptroot-ask.sh b/modules.d/90crypt/cryptroot-ask.sh
|
||||||
|
index e1f17975..97047ae9 100755
|
||||||
|
--- a/modules.d/90crypt/cryptroot-ask.sh
|
||||||
|
+++ b/modules.d/90crypt/cryptroot-ask.sh
|
||||||
|
@@ -8,7 +8,7 @@ NEWROOT=${NEWROOT:-"/sysroot"}
|
||||||
|
|
||||||
|
. /lib/dracut-lib.sh
|
||||||
|
|
||||||
|
-mkdir -m 0700 /run/cryptsetup
|
||||||
|
+mkdir -p -m 0700 /run/cryptsetup
|
||||||
|
|
||||||
|
# if device name is /dev/dm-X, convert to /dev/mapper/name
|
||||||
|
if [ "${1##/dev/dm-}" != "$1" ]; then
|
||||||
|
|
50
0027.patch
Normal file
50
0027.patch
Normal file
@ -0,0 +1,50 @@
|
|||||||
|
From dfe2247a43d6a216d9af533825c9a103e3b056cd Mon Sep 17 00:00:00 2001
|
||||||
|
From: Harald Hoyer <harald@redhat.com>
|
||||||
|
Date: Wed, 23 Oct 2019 14:16:56 +0200
|
||||||
|
Subject: [PATCH] dracut.sh: add check for invalid configuration files
|
||||||
|
|
||||||
|
Emit a warning about possible misconfigured configuration files, where
|
||||||
|
the spaces around values are missing for +=""
|
||||||
|
|
||||||
|
Better report a possible source of problems. We can fix annoying false
|
||||||
|
positives later.
|
||||||
|
---
|
||||||
|
dracut.sh | 14 +++++++++++++-
|
||||||
|
1 file changed, 13 insertions(+), 1 deletion(-)
|
||||||
|
|
||||||
|
diff --git a/dracut.sh b/dracut.sh
|
||||||
|
index 39fa3692..81c6d654 100755
|
||||||
|
--- a/dracut.sh
|
||||||
|
+++ b/dracut.sh
|
||||||
|
@@ -279,6 +279,14 @@ read_arg() {
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
+check_conf_file()
|
||||||
|
+{
|
||||||
|
+ if grep -H -e '^[^#]*[+]=\("[^ ]\|.*[^ ]"\)' "$@"; then
|
||||||
|
+ printf '\ndracut: WARNING: <key>+=" <values> ": <values> should have surrounding white spaces!\n' >&2
|
||||||
|
+ printf 'dracut: WARNING: This will lead to unwanted side effects! Please fix the configuration file.\n\n' >&2
|
||||||
|
+ fi
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
dropindirs_sort()
|
||||||
|
{
|
||||||
|
local suffix=$1; shift
|
||||||
|
@@ -703,10 +711,14 @@ if [[ ! -d $confdir ]]; then
|
||||||
|
fi
|
||||||
|
|
||||||
|
# source our config file
|
||||||
|
-[[ -f $conffile ]] && . "$conffile"
|
||||||
|
+if [[ -f $conffile ]]; then
|
||||||
|
+ check_conf_file "$conffile"
|
||||||
|
+ . "$conffile"
|
||||||
|
+fi
|
||||||
|
|
||||||
|
# source our config dir
|
||||||
|
for f in $(dropindirs_sort ".conf" "$confdir" "$dracutbasedir/dracut.conf.d"); do
|
||||||
|
+ check_conf_file "$f"
|
||||||
|
[[ -e $f ]] && . "$f"
|
||||||
|
done
|
||||||
|
|
||||||
|
|
25
0028.patch
Normal file
25
0028.patch
Normal file
@ -0,0 +1,25 @@
|
|||||||
|
From c490ea8b2be52910c8ce70d08717cf1996c0d732 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Daniel Molkentin <dmolkentin@suse.com>
|
||||||
|
Date: Sat, 21 Apr 2018 00:11:17 +0200
|
||||||
|
Subject: [PATCH] Make externally defined CFLAGS work
|
||||||
|
|
||||||
|
---
|
||||||
|
Makefile | 4 ++--
|
||||||
|
1 file changed, 2 insertions(+), 2 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/Makefile b/Makefile
|
||||||
|
index 02e2c4b5..0cc8b390 100644
|
||||||
|
--- a/Makefile
|
||||||
|
+++ b/Makefile
|
||||||
|
@@ -18,8 +18,8 @@ pkglibdir ?= ${libdir}/dracut
|
||||||
|
sysconfdir ?= ${prefix}/etc
|
||||||
|
bindir ?= ${prefix}/bin
|
||||||
|
mandir ?= ${prefix}/share/man
|
||||||
|
-CFLAGS ?= -O2 -g -Wall
|
||||||
|
-CFLAGS += -std=gnu99 -D_FILE_OFFSET_BITS=64 -Wformat -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 $(KMOD_CFLAGS)
|
||||||
|
+CFLAGS ?= -O2 -g -Wall -std=gnu99 -D_FILE_OFFSET_BITS=64 -Wformat -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2
|
||||||
|
+CFLAGS += $(KMOD_CFLAGS)
|
||||||
|
bashcompletiondir ?= ${datadir}/bash-completion/completions
|
||||||
|
pkgconfigdatadir ?= $(datadir)/pkgconfig
|
||||||
|
|
||||||
|
|
35
0029.patch
Normal file
35
0029.patch
Normal file
@ -0,0 +1,35 @@
|
|||||||
|
From db44331dc4513886e83e387604887033868c5214 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Daniel Molkentin <dmolkentin@suse.com>
|
||||||
|
Date: Fri, 13 Mar 2020 11:39:46 +0100
|
||||||
|
Subject: [PATCH] Makefile: really make externally defined CFLAGS work
|
||||||
|
|
||||||
|
The fix in aed52a6cfb43ebea372328fd5837c1f341c3f0df does not
|
||||||
|
work (second line will be ignored on override), so expand the implicitly
|
||||||
|
defined rule and add them there.
|
||||||
|
---
|
||||||
|
Makefile | 4 +++-
|
||||||
|
1 file changed, 3 insertions(+), 1 deletion(-)
|
||||||
|
|
||||||
|
diff --git a/Makefile b/Makefile
|
||||||
|
index 0cc8b390..7eb31847 100644
|
||||||
|
--- a/Makefile
|
||||||
|
+++ b/Makefile
|
||||||
|
@@ -19,7 +19,6 @@ sysconfdir ?= ${prefix}/etc
|
||||||
|
bindir ?= ${prefix}/bin
|
||||||
|
mandir ?= ${prefix}/share/man
|
||||||
|
CFLAGS ?= -O2 -g -Wall -std=gnu99 -D_FILE_OFFSET_BITS=64 -Wformat -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2
|
||||||
|
-CFLAGS += $(KMOD_CFLAGS)
|
||||||
|
bashcompletiondir ?= ${datadir}/bash-completion/completions
|
||||||
|
pkgconfigdatadir ?= $(datadir)/pkgconfig
|
||||||
|
|
||||||
|
@@ -50,6 +49,9 @@ manpages = $(man1pages) $(man5pages) $(man7pages) $(man8pages)
|
||||||
|
|
||||||
|
all: dracut-version.sh dracut.pc dracut-install skipcpio/skipcpio
|
||||||
|
|
||||||
|
+%.o : %.c
|
||||||
|
+ $(CC) -c $(CFLAGS) $(CPPFLAGS) $(KMOD_CFLAGS) $< -o $@
|
||||||
|
+
|
||||||
|
DRACUT_INSTALL_OBJECTS = \
|
||||||
|
install/dracut-install.o \
|
||||||
|
install/hashmap.o\
|
||||||
|
|
33
0030.patch
Normal file
33
0030.patch
Normal file
@ -0,0 +1,33 @@
|
|||||||
|
From defb1611c771d9f05780aebb101baefde2f66874 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Sebastian Mitterle <smitterl@redhat.com>
|
||||||
|
Date: Thu, 19 Mar 2020 12:12:50 +0100
|
||||||
|
Subject: [PATCH] dasd: only install /etc/dasd.conf if present
|
||||||
|
|
||||||
|
`dasd.conf` needn't be present on system even if modules have been loaded.
|
||||||
|
|
||||||
|
Check if file exists to avoid error message during kernel update
|
||||||
|
```bash
|
||||||
|
dracut-install: ERROR: installing '/etc/dasd.conf'
|
||||||
|
dracut: FAILED: /usr/lib/dracut/dracut-install -D /var/tmp/dracut.YvVRx5/initramfs -H /etc/dasd.conf
|
||||||
|
```
|
||||||
|
---
|
||||||
|
modules.d/95dasd/module-setup.sh | 5 +++--
|
||||||
|
1 file changed, 3 insertions(+), 2 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/modules.d/95dasd/module-setup.sh b/modules.d/95dasd/module-setup.sh
|
||||||
|
index 2c49cd26..c71c8a08 100755
|
||||||
|
--- a/modules.d/95dasd/module-setup.sh
|
||||||
|
+++ b/modules.d/95dasd/module-setup.sh
|
||||||
|
@@ -18,8 +18,9 @@ depends() {
|
||||||
|
install() {
|
||||||
|
inst_hook cmdline 30 "$moddir/parse-dasd.sh"
|
||||||
|
inst_multiple dasdinfo dasdconf.sh normalize_dasd_arg
|
||||||
|
- if [[ $hostonly ]]; then
|
||||||
|
- inst -H /etc/dasd.conf
|
||||||
|
+ conf=/etc/dasd.conf
|
||||||
|
+ if [[ $hostonly && -f $conf ]] ; then
|
||||||
|
+ inst -H $conf
|
||||||
|
fi
|
||||||
|
inst_rules 56-dasd.rules
|
||||||
|
inst_rules 59-dasd.rules
|
||||||
|
|
35
0031.patch
Normal file
35
0031.patch
Normal file
@ -0,0 +1,35 @@
|
|||||||
|
From b68930ed3dd29184f3e6c87582377e7501b3b276 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Patrick Talbert <ptalbert@redhat.com>
|
||||||
|
Date: Wed, 18 Mar 2020 15:58:48 +0100
|
||||||
|
Subject: [PATCH] dhclient-script: Fix typo in output of BOUND & BOUND6 cases
|
||||||
|
|
||||||
|
No bonding going on here.
|
||||||
|
|
||||||
|
Signed-off-by: Patrick Talbert <ptalbert@redhat.com>
|
||||||
|
---
|
||||||
|
modules.d/35network-legacy/dhclient-script.sh | 4 ++--
|
||||||
|
1 file changed, 2 insertions(+), 2 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/modules.d/35network-legacy/dhclient-script.sh b/modules.d/35network-legacy/dhclient-script.sh
|
||||||
|
index 84b65e89..fd92752b 100755
|
||||||
|
--- a/modules.d/35network-legacy/dhclient-script.sh
|
||||||
|
+++ b/modules.d/35network-legacy/dhclient-script.sh
|
||||||
|
@@ -164,7 +164,7 @@ case $reason in
|
||||||
|
;;
|
||||||
|
|
||||||
|
BOUND)
|
||||||
|
- echo "dhcp: BOND setting $netif"
|
||||||
|
+ echo "dhcp: BOUND setting up $netif"
|
||||||
|
unset layer2
|
||||||
|
if [ -f /sys/class/net/$netif/device/layer2 ]; then
|
||||||
|
read layer2 < /sys/class/net/$netif/device/layer2
|
||||||
|
@@ -223,7 +223,7 @@ case $reason in
|
||||||
|
;;
|
||||||
|
|
||||||
|
BOUND6)
|
||||||
|
- echo "dhcp: BOND6 setting $netif"
|
||||||
|
+ echo "dhcp: BOUND6 setting up $netif"
|
||||||
|
setup_interface6
|
||||||
|
|
||||||
|
set | while read line || [ -n "$line" ]; do
|
||||||
|
|
33
0032.patch
Normal file
33
0032.patch
Normal file
@ -0,0 +1,33 @@
|
|||||||
|
From 3a043feea1d1d1d1d01762d95b725b9adef61562 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Alexander Sosedkin <asosedkin@redhat.com>
|
||||||
|
Date: Thu, 26 Mar 2020 15:11:15 +0100
|
||||||
|
Subject: [PATCH] url-lib: drop NSS if it's not in curl --version
|
||||||
|
|
||||||
|
---
|
||||||
|
modules.d/45url-lib/module-setup.sh | 12 +++++++-----
|
||||||
|
1 file changed, 7 insertions(+), 5 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/modules.d/45url-lib/module-setup.sh b/modules.d/45url-lib/module-setup.sh
|
||||||
|
index a99e0c56..258a9e16 100755
|
||||||
|
--- a/modules.d/45url-lib/module-setup.sh
|
||||||
|
+++ b/modules.d/45url-lib/module-setup.sh
|
||||||
|
@@ -19,11 +19,13 @@ install() {
|
||||||
|
inst_simple "$moddir/url-lib.sh" "/lib/url-lib.sh"
|
||||||
|
inst_multiple -o ctorrent
|
||||||
|
inst_multiple curl
|
||||||
|
- # also install libs for curl https
|
||||||
|
- inst_libdir_file "libnsspem.so*"
|
||||||
|
- inst_libdir_file "libnsssysinit.so*"
|
||||||
|
- inst_libdir_file "libsoftokn3.so*"
|
||||||
|
- inst_libdir_file "libsqlite3.so*"
|
||||||
|
+ if curl --version | grep -qi '\bNSS\b'; then
|
||||||
|
+ # also install libs for curl https
|
||||||
|
+ inst_libdir_file "libnsspem.so*"
|
||||||
|
+ inst_libdir_file "libnsssysinit.so*"
|
||||||
|
+ inst_libdir_file "libsoftokn3.so*"
|
||||||
|
+ inst_libdir_file "libsqlite3.so*"
|
||||||
|
+ fi
|
||||||
|
|
||||||
|
for _dir in $libdirs; do
|
||||||
|
[[ -d $dracutsysrootdir$_dir ]] || continue
|
||||||
|
|
100
0033.patch
Normal file
100
0033.patch
Normal file
@ -0,0 +1,100 @@
|
|||||||
|
From b8a92b715677d52dbc2b27a710b9816fd8b9a63b Mon Sep 17 00:00:00 2001
|
||||||
|
From: Ben Howard <ben.howard@redhat.com>
|
||||||
|
Date: Fri, 3 Apr 2020 13:32:44 -0600
|
||||||
|
Subject: [PATCH] multipath: add automatic configuration for multipath
|
||||||
|
|
||||||
|
Add support for 'rd.multipath=default' for using the default
|
||||||
|
configuration on boot. The intended purpose for this is to help support
|
||||||
|
ostree-based image boots from multipathed devices (such as Fedora and
|
||||||
|
Red Hat CoreOS).
|
||||||
|
---
|
||||||
|
dracut.cmdline.7.asc | 3 +++
|
||||||
|
modules.d/90multipath/module-setup.sh | 7 +++++--
|
||||||
|
modules.d/90multipath/multipathd-configure.service | 19 +++++++++++++++++++
|
||||||
|
modules.d/90multipath/multipathd.sh | 5 +++++
|
||||||
|
4 files changed, 32 insertions(+), 2 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/dracut.cmdline.7.asc b/dracut.cmdline.7.asc
|
||||||
|
index 646f1f03..63074353 100644
|
||||||
|
--- a/dracut.cmdline.7.asc
|
||||||
|
+++ b/dracut.cmdline.7.asc
|
||||||
|
@@ -431,6 +431,9 @@ MULTIPATH
|
||||||
|
**rd.multipath=0**::
|
||||||
|
disable multipath detection
|
||||||
|
|
||||||
|
+**rd.multipath=default**::
|
||||||
|
+ use default multipath settings
|
||||||
|
+
|
||||||
|
FIPS
|
||||||
|
~~~~
|
||||||
|
**rd.fips**::
|
||||||
|
diff --git a/modules.d/90multipath/module-setup.sh b/modules.d/90multipath/module-setup.sh
|
||||||
|
index 48a9d09a..2bb7444b 100755
|
||||||
|
--- a/modules.d/90multipath/module-setup.sh
|
||||||
|
+++ b/modules.d/90multipath/module-setup.sh
|
||||||
|
@@ -83,11 +83,12 @@ install() {
|
||||||
|
dmsetup \
|
||||||
|
kpartx \
|
||||||
|
mpath_wait \
|
||||||
|
+ mpathconf \
|
||||||
|
+ mpathpersist \
|
||||||
|
multipath \
|
||||||
|
multipathd \
|
||||||
|
- mpathpersist \
|
||||||
|
- xdrgetuid \
|
||||||
|
xdrgetprio \
|
||||||
|
+ xdrgetuid \
|
||||||
|
/etc/xdrdevices.conf \
|
||||||
|
/etc/multipath.conf \
|
||||||
|
/etc/multipath/* \
|
||||||
|
@@ -109,7 +110,9 @@ install() {
|
||||||
|
fi
|
||||||
|
|
||||||
|
if dracut_module_included "systemd"; then
|
||||||
|
+ inst_simple "${moddir}/multipathd-configure.service" "${systemdsystemunitdir}/multipathd-configure.service"
|
||||||
|
inst_simple "${moddir}/multipathd.service" "${systemdsystemunitdir}/multipathd.service"
|
||||||
|
+ systemctl -q --root "$initdir" enable multipathd-configure.service
|
||||||
|
systemctl -q --root "$initdir" enable multipathd.service
|
||||||
|
else
|
||||||
|
inst_hook pre-trigger 02 "$moddir/multipathd.sh"
|
||||||
|
diff --git a/modules.d/90multipath/multipathd-configure.service b/modules.d/90multipath/multipathd-configure.service
|
||||||
|
new file mode 100644
|
||||||
|
index 00000000..de690615
|
||||||
|
--- /dev/null
|
||||||
|
+++ b/modules.d/90multipath/multipathd-configure.service
|
||||||
|
@@ -0,0 +1,19 @@
|
||||||
|
+[Unit]
|
||||||
|
+Description=Device-Mapper Multipath Default Configuration
|
||||||
|
+Before=iscsi.service iscsid.service lvm2-activation-early.service
|
||||||
|
+Wants=systemd-udev-trigger.service systemd-udev-settle.service local-fs-pre.target
|
||||||
|
+After=systemd-udev-trigger.service systemd-udev-settle.service
|
||||||
|
+Before=local-fs-pre.target multipathd.service
|
||||||
|
+DefaultDependencies=no
|
||||||
|
+Conflicts=shutdown.target
|
||||||
|
+
|
||||||
|
+ConditionKernelCommandLine=rd.multipath=default
|
||||||
|
+ConditionPathExists=!/etc/multipath.conf
|
||||||
|
+
|
||||||
|
+[Service]
|
||||||
|
+Type=oneshot
|
||||||
|
+ExecStartPre=-/usr/bin/mkdir -p /etc/multipath/multipath.conf.d
|
||||||
|
+ExecStart=/usr/sbin/mpathconf --enable
|
||||||
|
+
|
||||||
|
+[Install]
|
||||||
|
+WantedBy=sysinit.target
|
||||||
|
diff --git a/modules.d/90multipath/multipathd.sh b/modules.d/90multipath/multipathd.sh
|
||||||
|
index 2c2dcc85..936c5dc7 100755
|
||||||
|
--- a/modules.d/90multipath/multipathd.sh
|
||||||
|
+++ b/modules.d/90multipath/multipathd.sh
|
||||||
|
@@ -1,5 +1,10 @@
|
||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
+if [ "$(getarg rd.multipath)x" == "default" ] && [ ! -e /etc/multipath.conf ]; then
|
||||||
|
+ mkdir -p /etc/multipath/multipath.conf.d
|
||||||
|
+ mpathconf --enable
|
||||||
|
+fi
|
||||||
|
+
|
||||||
|
if getargbool 1 rd.multipath -d -n rd_NO_MULTIPATH && [ -e /etc/multipath.conf ]; then
|
||||||
|
modprobe dm-multipath
|
||||||
|
multipathd -B || multipathd
|
||||||
|
|
24
0034.patch
Normal file
24
0034.patch
Normal file
@ -0,0 +1,24 @@
|
|||||||
|
From 3b626094bd5f017dee26968ce1531a301bb6218a Mon Sep 17 00:00:00 2001
|
||||||
|
From: Daniel Molkentin <dmolkentin@suse.com>
|
||||||
|
Date: Tue, 7 Apr 2020 12:27:30 +0200
|
||||||
|
Subject: [PATCH] mkinitrd-suse.sh: Fix i586 platform detection
|
||||||
|
|
||||||
|
Reference: boo#1168341
|
||||||
|
---
|
||||||
|
mkinitrd-suse.sh | 2 +-
|
||||||
|
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||||
|
|
||||||
|
diff --git a/mkinitrd-suse.sh b/mkinitrd-suse.sh
|
||||||
|
index db2eb188..708c4e67 100755
|
||||||
|
--- a/mkinitrd-suse.sh
|
||||||
|
+++ b/mkinitrd-suse.sh
|
||||||
|
@@ -171,7 +171,7 @@ default_kernel_images() {
|
||||||
|
ppc|ppc64)
|
||||||
|
regex='vmlinux'
|
||||||
|
;;
|
||||||
|
- i386|x86_64)
|
||||||
|
+ i?86|x86_64)
|
||||||
|
regex='vmlinuz'
|
||||||
|
;;
|
||||||
|
arm*)
|
||||||
|
|
23
0035.patch
Normal file
23
0035.patch
Normal file
@ -0,0 +1,23 @@
|
|||||||
|
From 11474b808b6fbd373b2ca6ce3350a024e6a8ea15 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Harald Hoyer <harald@redhat.com>
|
||||||
|
Date: Thu, 9 Apr 2020 22:05:41 +0200
|
||||||
|
Subject: [PATCH] TEST-99: exclude /etc/dnf/* from check
|
||||||
|
|
||||||
|
file /etc/dnf/modules.d/eclipse.module.rpmmoved is not owned by any package
|
||||||
|
---
|
||||||
|
test/TEST-99-RPM/test.sh | 1 +
|
||||||
|
1 file changed, 1 insertion(+)
|
||||||
|
|
||||||
|
diff --git a/test/TEST-99-RPM/test.sh b/test/TEST-99-RPM/test.sh
|
||||||
|
index af64c24a..504fd77f 100755
|
||||||
|
--- a/test/TEST-99-RPM/test.sh
|
||||||
|
+++ b/test/TEST-99-RPM/test.sh
|
||||||
|
@@ -84,6 +84,7 @@ find / -xdev -type f -not -path '/var/*' \
|
||||||
|
-not -path "/boot/loader/entries/\$(cat /etc/machine-id)-*" \
|
||||||
|
-not -path "/boot/\$(cat /etc/machine-id)/*" \
|
||||||
|
-not -path '/etc/openldap/certs/*' \
|
||||||
|
+ -not -path '/etc/dnf/*' \
|
||||||
|
-print0 | xargs -0 rpm -qf | \
|
||||||
|
grep -F 'not owned' &>> /test.output || :
|
||||||
|
exit 0
|
||||||
|
|
60
0036.patch
Normal file
60
0036.patch
Normal file
@ -0,0 +1,60 @@
|
|||||||
|
From 872eb69936bd849eec6d1974dd6569f23a7ad3db Mon Sep 17 00:00:00 2001
|
||||||
|
From: Kairui Song <kasong@redhat.com>
|
||||||
|
Date: Thu, 5 Mar 2020 18:44:45 +0800
|
||||||
|
Subject: [PATCH] 95znet: Add a rd.znet_ifname= option
|
||||||
|
|
||||||
|
qeth device may have a different IP for each boot, so the rd.ifname=
|
||||||
|
option will no longer work. So for znet device, introduce a
|
||||||
|
rd.znet_ifname= options, to subchannel id instead of MAC address as the
|
||||||
|
identifier and rename the interface.
|
||||||
|
|
||||||
|
Signed-off-by: Kairui Song <kasong@redhat.com>
|
||||||
|
---
|
||||||
|
dracut.cmdline.7.asc | 5 +++++
|
||||||
|
modules.d/95znet/parse-ccw.sh | 18 ++++++++++++++++++
|
||||||
|
2 files changed, 23 insertions(+)
|
||||||
|
|
||||||
|
diff --git a/dracut.cmdline.7.asc b/dracut.cmdline.7.asc
|
||||||
|
index 63074353..2b38aa33 100644
|
||||||
|
--- a/dracut.cmdline.7.asc
|
||||||
|
+++ b/dracut.cmdline.7.asc
|
||||||
|
@@ -863,6 +863,11 @@ ZNET
|
||||||
|
RHEL/Fedora with ccw_init, which is called from udev for certain
|
||||||
|
devices on z-series.
|
||||||
|
rd.znet can be specified multiple times on the kernel command line.
|
||||||
|
+
|
||||||
|
+**rd.znet_ifname=**__<ifname>__:__<subchannels>__::
|
||||||
|
+ Assign network device name <interface> (i.e. "bootnet") to the NIC
|
||||||
|
+ corresponds to the subchannels. This is useful when dracut's default
|
||||||
|
+ "ifname=" doesn't work due to device having a changing MAC address.
|
||||||
|
+
|
||||||
|
[listing]
|
||||||
|
.Example
|
||||||
|
diff --git a/modules.d/95znet/parse-ccw.sh b/modules.d/95znet/parse-ccw.sh
|
||||||
|
index 7d40a1aa..59b588f3 100755
|
||||||
|
--- a/modules.d/95znet/parse-ccw.sh
|
||||||
|
+++ b/modules.d/95znet/parse-ccw.sh
|
||||||
|
@@ -4,4 +4,22 @@ for ccw_arg in $(getargs rd.ccw -d 'rd_CCW=') $(getargs rd.znet -d 'rd_ZNET=');
|
||||||
|
echo $ccw_arg >> /etc/ccw.conf
|
||||||
|
done
|
||||||
|
|
||||||
|
+for ifname in $(getargs rd.znet_ifname); do
|
||||||
|
+ IFS=: read ifname_if ifname_subchannels _rest <<< "$ifname"
|
||||||
|
+ if [ -z "$ifname_if" ] || [ -z "$ifname_subchannels" ] || [ -n "$_rest" ]; then
|
||||||
|
+ warn "Invalid arguments for rd.znet_ifname="
|
||||||
|
+ else
|
||||||
|
+ {
|
||||||
|
+ ifname_subchannels=${ifname_subchannels//,/|}
|
||||||
|
+
|
||||||
|
+ echo 'ACTION!="add|change", GOTO="ccw_ifname_end"'
|
||||||
|
+ echo 'ATTR{type}!="1", GOTO="ccw_ifname_end"'
|
||||||
|
+ echo 'SUBSYSTEM!="net", GOTO="ccw_ifname_end"'
|
||||||
|
+ echo "SUBSYSTEMS==\"ccwgroup\", KERNELS==\"$ifname_subchannels\", DRIVERS==\"?*\" NAME=\"$ifname_if\""
|
||||||
|
+ echo 'LABEL="ccw_ifname_end"'
|
||||||
|
+
|
||||||
|
+ } > /etc/udev/rules.d/81-ccw-ifname.rules
|
||||||
|
+ fi
|
||||||
|
+done
|
||||||
|
+
|
||||||
|
znet_cio_free
|
||||||
|
|
22
0037.patch
Normal file
22
0037.patch
Normal file
@ -0,0 +1,22 @@
|
|||||||
|
From 25c7a13985473ff9714245eaa602225b1a0f9ecb Mon Sep 17 00:00:00 2001
|
||||||
|
From: Martin Wilck <mwilck@suse.de>
|
||||||
|
Date: Wed, 25 Mar 2020 12:23:11 +0100
|
||||||
|
Subject: [PATCH] 90nvdimm: include nvdimm keys in initrd
|
||||||
|
|
||||||
|
This is necessary to actually unlock NVDIMM keys during boot.
|
||||||
|
---
|
||||||
|
modules.d/90nvdimm/module-setup.sh | 2 +-
|
||||||
|
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||||
|
|
||||||
|
diff --git a/modules.d/90nvdimm/module-setup.sh b/modules.d/90nvdimm/module-setup.sh
|
||||||
|
index 6d58efd7..6d73d215 100755
|
||||||
|
--- a/modules.d/90nvdimm/module-setup.sh
|
||||||
|
+++ b/modules.d/90nvdimm/module-setup.sh
|
||||||
|
@@ -27,5 +27,5 @@ installkernel() {
|
||||||
|
|
||||||
|
# called by dracut
|
||||||
|
install() {
|
||||||
|
- inst_multiple -o ndctl
|
||||||
|
+ inst_multiple -o ndctl /etc/ndctl/keys/tpm.handle /etc/ndctl/keys/*.blob
|
||||||
|
}
|
||||||
|
|
109
0038.patch
Normal file
109
0038.patch
Normal file
@ -0,0 +1,109 @@
|
|||||||
|
From 8e1a4dc5f8a777fc718db490414ffdc9dc755f66 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Jonas Witschel <diabonas@archlinux.org>
|
||||||
|
Date: Sat, 18 Apr 2020 14:55:41 +0200
|
||||||
|
Subject: [PATCH] dracut-lib.sh: quote variables in parameter expansion
|
||||||
|
patterns
|
||||||
|
|
||||||
|
According to POSIX.1-2017, 2.6.2 Parameter Expansion:
|
||||||
|
|
||||||
|
${parameter%[word]} [...] The word shall be expanded to produce a
|
||||||
|
pattern.
|
||||||
|
|
||||||
|
This means if word contains variables that itself contain special
|
||||||
|
characters like asterisks or backslashes, these are treated as pattern
|
||||||
|
characters unless the variable is quoted. Try e.g. the following example
|
||||||
|
in bash, dash or (busybox) ash:
|
||||||
|
|
||||||
|
i='a\c'; j='\'; echo "${i%$j*}"
|
||||||
|
|
||||||
|
This prints "a\c" because "$j*" is expanded to "\*", escaping the
|
||||||
|
asterisk. In contrast,
|
||||||
|
|
||||||
|
i='a\c'; j='\'; echo "${i%"$j"*}"
|
||||||
|
|
||||||
|
produces the expected result "a" because the backslash is not specially
|
||||||
|
treated any more after quoting.
|
||||||
|
|
||||||
|
The quotes that this commit adds have been previously removed in commit
|
||||||
|
f9c96cf56fed390841eac05c43826e62014c9188, citing issues with busybox
|
||||||
|
hush without further specifying the actual error. I tested a recent
|
||||||
|
busybox build (upstream commit 9aa751b08ab03d6396f86c3df77937a19687981b)
|
||||||
|
and couldn't find any problems. Note that the above example always
|
||||||
|
produces "a\c" in hush regardless of quoting $j, making hush unsuitable
|
||||||
|
for use with dracut, but using quotes in parameter expansions generally
|
||||||
|
works.
|
||||||
|
|
||||||
|
The unquoted variables break the "rd.luks.uuid/name" kernel command line
|
||||||
|
options in dracut 050 because
|
||||||
|
|
||||||
|
str_replace "$luksname" '\' '\\'
|
||||||
|
|
||||||
|
in modules.d/90crypt/parse-crypt.sh is not able to escape the
|
||||||
|
backslashes any more, see GH-723, GH-727: backslashes in the
|
||||||
|
systemd-cryptsetup@.service unit name stay unescaped for use in udev
|
||||||
|
(cf. commit 0f6d93eb9d63695a64002ec8b0421fbc9fc8a7a3), leading to
|
||||||
|
failures in starting the unit.
|
||||||
|
|
||||||
|
This partially reverts commit f9c96cf56fed390841eac05c43826e62014c9188.
|
||||||
|
---
|
||||||
|
modules.d/99base/dracut-lib.sh | 16 ++++++++--------
|
||||||
|
1 file changed, 8 insertions(+), 8 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/modules.d/99base/dracut-lib.sh b/modules.d/99base/dracut-lib.sh
|
||||||
|
index c53cd13b..c57523d3 100755
|
||||||
|
--- a/modules.d/99base/dracut-lib.sh
|
||||||
|
+++ b/modules.d/99base/dracut-lib.sh
|
||||||
|
@@ -24,7 +24,7 @@ debug_on() {
|
||||||
|
|
||||||
|
# returns OK if $1 contains literal string $2 (and isn't empty)
|
||||||
|
strstr() {
|
||||||
|
- [ "${1##*$2*}" != "$1" ]
|
||||||
|
+ [ "${1##*"$2"*}" != "$1" ]
|
||||||
|
}
|
||||||
|
|
||||||
|
# returns OK if $1 matches (completely) glob pattern $2
|
||||||
|
@@ -43,18 +43,18 @@ strglobin() {
|
||||||
|
|
||||||
|
# returns OK if $1 contains literal string $2 at the beginning, and isn't empty
|
||||||
|
str_starts() {
|
||||||
|
- [ "${1#$2*}" != "$1" ]
|
||||||
|
+ [ "${1#"$2"*}" != "$1" ]
|
||||||
|
}
|
||||||
|
|
||||||
|
# returns OK if $1 contains literal string $2 at the end, and isn't empty
|
||||||
|
str_ends() {
|
||||||
|
- [ "${1%*$2}" != "$1" ]
|
||||||
|
+ [ "${1%*"$2"}" != "$1" ]
|
||||||
|
}
|
||||||
|
|
||||||
|
trim() {
|
||||||
|
local var="$*"
|
||||||
|
- var="${var#${var%%[![:space:]]*}}" # remove leading whitespace characters
|
||||||
|
- var="${var%${var##*[![:space:]]}}" # remove trailing whitespace characters
|
||||||
|
+ var="${var#"${var%%[![:space:]]*}"}" # remove leading whitespace characters
|
||||||
|
+ var="${var%"${var##*[![:space:]]}"}" # remove trailing whitespace characters
|
||||||
|
printf "%s" "$var"
|
||||||
|
}
|
||||||
|
|
||||||
|
@@ -108,9 +108,9 @@ str_replace() {
|
||||||
|
local out=''
|
||||||
|
|
||||||
|
while strstr "${in}" "$s"; do
|
||||||
|
- chop="${in%%$s*}"
|
||||||
|
+ chop="${in%%"$s"*}"
|
||||||
|
out="${out}${chop}$r"
|
||||||
|
- in="${in#*$s}"
|
||||||
|
+ in="${in#*"$s"}"
|
||||||
|
done
|
||||||
|
echo "${out}${in}"
|
||||||
|
}
|
||||||
|
@@ -396,7 +396,7 @@ splitsep() {
|
||||||
|
while [ -n "$str" -a "$#" -gt 1 ]; do
|
||||||
|
tmp="${str%%$sep*}"
|
||||||
|
eval "$1='${tmp}'"
|
||||||
|
- str="${str#$tmp}"
|
||||||
|
+ str="${str#"$tmp"}"
|
||||||
|
str="${str#$sep}"
|
||||||
|
shift
|
||||||
|
done
|
||||||
|
|
50
0039.patch
Normal file
50
0039.patch
Normal file
@ -0,0 +1,50 @@
|
|||||||
|
From de34ba76e579dd11202f632ecf8c625f841646e1 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Mikhail Novosyolov <m.novosyolov@rosalinux.ru>
|
||||||
|
Date: Sun, 19 Apr 2020 16:32:41 +0300
|
||||||
|
Subject: [PATCH] i18n: Always install /etc/vconsole.conf
|
||||||
|
|
||||||
|
/etc/vconsole.conf must be installed always, even in generic initrds, not only host-only ones.
|
||||||
|
systemd-vconsole-setup is run at initrd stage and expects either /etc/vconsole.conf or kernel cmdline options to exist.
|
||||||
|
|
||||||
|
I have also proposed a change in systemd-vconsole-setup that makes it behave better if /etc/vconsole.conf does not exist:
|
||||||
|
https://github.com/systemd/systemd/pull/15479
|
||||||
|
But it is just a fallback. If /etc/vconsole.conf does not exist in initrd and if that patch is applied on systemd,
|
||||||
|
then the default consoel font is set despite the one being set in /etc/vconsole.conf and this setting is inherited
|
||||||
|
when new TTYs are opened. This leads to full ignorance of settings in /etc/vconsole.conf.
|
||||||
|
It is incorrect, and that is why this file must be copied to initrds always, but not only on host-only initrds.
|
||||||
|
|
||||||
|
Fixes: https://github.com/dracutdevs/dracut/issues/796
|
||||||
|
|
||||||
|
Signed-off-by: Mikhail Novosyolov <m.novosyolov@rosalinux.ru>
|
||||||
|
---
|
||||||
|
modules.d/10i18n/module-setup.sh | 9 ++++++---
|
||||||
|
1 file changed, 6 insertions(+), 3 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/modules.d/10i18n/module-setup.sh b/modules.d/10i18n/module-setup.sh
|
||||||
|
index ba17e477..dd45b666 100755
|
||||||
|
--- a/modules.d/10i18n/module-setup.sh
|
||||||
|
+++ b/modules.d/10i18n/module-setup.sh
|
||||||
|
@@ -230,9 +230,7 @@ install() {
|
||||||
|
print_vars LC_ALL LANG >> ${initdir}${I18N_CONF}
|
||||||
|
fi
|
||||||
|
|
||||||
|
- if dracut_module_included "systemd" && [[ -f $dracutsysrootdir${VCONFIG_CONF} ]]; then
|
||||||
|
- inst_simple ${VCONFIG_CONF}
|
||||||
|
- else
|
||||||
|
+ if ! dracut_module_included "systemd"; then
|
||||||
|
mksubdirs ${initdir}${VCONFIG_CONF}
|
||||||
|
print_vars KEYMAP EXT_KEYMAPS UNICODE FONT FONT_MAP FONT_UNIMAP >> ${initdir}${VCONFIG_CONF}
|
||||||
|
fi
|
||||||
|
@@ -263,6 +261,11 @@ install() {
|
||||||
|
if checks; then
|
||||||
|
install_base
|
||||||
|
|
||||||
|
+ # https://github.com/dracutdevs/dracut/issues/796
|
||||||
|
+ if dracut_module_included "systemd" && [[ -f $dracutsysrootdir${VCONFIG_CONF} ]]; then
|
||||||
|
+ inst_simple ${VCONFIG_CONF}
|
||||||
|
+ fi
|
||||||
|
+
|
||||||
|
if [[ ${hostonly} ]] && ! [[ ${i18n_install_all} == "yes" ]]; then
|
||||||
|
install_local_i18n || install_all_kbd
|
||||||
|
else
|
||||||
|
|
23
0040.patch
Normal file
23
0040.patch
Normal file
@ -0,0 +1,23 @@
|
|||||||
|
From 3a4a212649bd89f5a07ccf87a53b3103094748a3 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Harald Hoyer <harald@redhat.com>
|
||||||
|
Date: Mon, 20 Apr 2020 15:07:02 +0200
|
||||||
|
Subject: [PATCH] systemd: skip dependency add for non-existent units
|
||||||
|
|
||||||
|
Fixes: https://github.com/dracutdevs/dracut/issues/795
|
||||||
|
---
|
||||||
|
modules.d/00systemd/module-setup.sh | 1 +
|
||||||
|
1 file changed, 1 insertion(+)
|
||||||
|
|
||||||
|
diff --git a/modules.d/00systemd/module-setup.sh b/modules.d/00systemd/module-setup.sh
|
||||||
|
index 5ebdfc30..17be74fd 100755
|
||||||
|
--- a/modules.d/00systemd/module-setup.sh
|
||||||
|
+++ b/modules.d/00systemd/module-setup.sh
|
||||||
|
@@ -241,6 +241,7 @@ install() {
|
||||||
|
systemd-ask-password-console.service \
|
||||||
|
systemd-ask-password-plymouth.service \
|
||||||
|
; do
|
||||||
|
+ [[ -f $systemdsystemunitdir/$i ]] || continue
|
||||||
|
systemctl -q --root "$initdir" add-wants "$i" systemd-vconsole-setup.service
|
||||||
|
done
|
||||||
|
|
||||||
|
|
29
0041.patch
Normal file
29
0041.patch
Normal file
@ -0,0 +1,29 @@
|
|||||||
|
From 87bffc36e72c121024df033e1a78799456c73523 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Beniamino Galvani <bgalvani@redhat.com>
|
||||||
|
Date: Mon, 23 Mar 2020 22:57:35 +0100
|
||||||
|
Subject: [PATCH] network-manager: install libnss DNS and mDNS plugins
|
||||||
|
|
||||||
|
Install libnss_dns.so and libnss_mdns4_minimal.so plugins for the Name
|
||||||
|
Service Switch (NSS) functionality of glibc so that name resolution
|
||||||
|
through /etc/resolv.conf and mDNS works in the initrd.
|
||||||
|
|
||||||
|
Fixes: #772
|
||||||
|
---
|
||||||
|
modules.d/35network-manager/module-setup.sh | 5 +++++
|
||||||
|
1 file changed, 5 insertions(+)
|
||||||
|
|
||||||
|
diff --git a/modules.d/35network-manager/module-setup.sh b/modules.d/35network-manager/module-setup.sh
|
||||||
|
index d6d0f9ce..8fc3114d 100755
|
||||||
|
--- a/modules.d/35network-manager/module-setup.sh
|
||||||
|
+++ b/modules.d/35network-manager/module-setup.sh
|
||||||
|
@@ -51,4 +51,9 @@ install() {
|
||||||
|
if ! [[ -d "$initdir/etc/sysconfig/network-scripts" ]]; then
|
||||||
|
inst_libdir_file "NetworkManager/$_nm_version/libnm-settings-plugin-ifcfg-rh.so"
|
||||||
|
fi
|
||||||
|
+
|
||||||
|
+ _arch=${DRACUT_ARCH:-$(uname -m)}
|
||||||
|
+
|
||||||
|
+ inst_libdir_file {"tls/$_arch/",tls/,"$_arch/",}"libnss_dns.so.*" \
|
||||||
|
+ {"tls/$_arch/",tls/,"$_arch/",}"libnss_mdns4_minimal.so.*"
|
||||||
|
}
|
||||||
|
|
422
0042.patch
Normal file
422
0042.patch
Normal file
@ -0,0 +1,422 @@
|
|||||||
|
From 49c4172f4eef6e2015615e132b199a7ec0699ffc Mon Sep 17 00:00:00 2001
|
||||||
|
From: Kairui Song <kasong@redhat.com>
|
||||||
|
Date: Wed, 8 Apr 2020 16:39:52 +0800
|
||||||
|
Subject: [PATCH] Remove memtrace-ko and rd.memdebug=4 support in dracut
|
||||||
|
|
||||||
|
This feature could be off loaded to memstrack, which have better
|
||||||
|
accurecy, better performance, and have more detailed tracing features.
|
||||||
|
|
||||||
|
Also simplify make_trace_mem a bit.
|
||||||
|
|
||||||
|
And currently rd.memdebug=4 is unstable, fails from time to time.
|
||||||
|
---
|
||||||
|
dracut.cmdline.7.asc | 4 +--
|
||||||
|
modules.d/98dracut-systemd/dracut-cmdline.sh | 2 +-
|
||||||
|
modules.d/98dracut-systemd/dracut-pre-mount.sh | 2 +-
|
||||||
|
modules.d/98dracut-systemd/dracut-pre-pivot.sh | 2 +-
|
||||||
|
modules.d/98dracut-systemd/dracut-pre-trigger.sh | 2 +-
|
||||||
|
modules.d/99base/dracut-lib.sh | 44 +++++-------------------
|
||||||
|
modules.d/99base/init.sh | 8 ++---
|
||||||
|
modules.d/99base/memtrace-ko.sh | 191 -----------------------------------------------------------------------------------------------------
|
||||||
|
modules.d/99base/module-setup.sh | 1 -
|
||||||
|
9 files changed, 18 insertions(+), 238 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/dracut.cmdline.7.asc b/dracut.cmdline.7.asc
|
||||||
|
index 2b38aa33..c53601ea 100644
|
||||||
|
--- a/dracut.cmdline.7.asc
|
||||||
|
+++ b/dracut.cmdline.7.asc
|
||||||
|
@@ -188,9 +188,9 @@ It should be attached to any report about dracut problems.
|
||||||
|
_/run/initramfs/init.log_.
|
||||||
|
If "quiet" is set, it also logs to the console.
|
||||||
|
|
||||||
|
-**rd.memdebug=[0-4]**::
|
||||||
|
+**rd.memdebug=[0-3]**::
|
||||||
|
Print memory usage info at various points, set the verbose level from 0 to 4.
|
||||||
|
-+
|
||||||
|
++
|
||||||
|
Higher level means more debugging output:
|
||||||
|
+
|
||||||
|
----
|
||||||
|
diff --git a/modules.d/98dracut-systemd/dracut-cmdline.sh b/modules.d/98dracut-systemd/dracut-cmdline.sh
|
||||||
|
index bff9435a..6c6ee026 100755
|
||||||
|
--- a/modules.d/98dracut-systemd/dracut-cmdline.sh
|
||||||
|
+++ b/modules.d/98dracut-systemd/dracut-cmdline.sh
|
||||||
|
@@ -42,7 +42,7 @@ export root
|
||||||
|
export rflags
|
||||||
|
export fstype
|
||||||
|
|
||||||
|
-make_trace_mem "hook cmdline" '1+:mem' '1+:iomem' '3+:slab' '4+:komem'
|
||||||
|
+make_trace_mem "hook cmdline" '1+:mem' '1+:iomem' '3+:slab'
|
||||||
|
# run scriptlets to parse the command line
|
||||||
|
getarg 'rd.break=cmdline' -d 'rdbreak=cmdline' && emergency_shell -n cmdline "Break before cmdline"
|
||||||
|
source_hook cmdline
|
||||||
|
diff --git a/modules.d/98dracut-systemd/dracut-pre-mount.sh b/modules.d/98dracut-systemd/dracut-pre-mount.sh
|
||||||
|
index a3b9d291..ae511286 100755
|
||||||
|
--- a/modules.d/98dracut-systemd/dracut-pre-mount.sh
|
||||||
|
+++ b/modules.d/98dracut-systemd/dracut-pre-mount.sh
|
||||||
|
@@ -8,7 +8,7 @@ type getarg >/dev/null 2>&1 || . /lib/dracut-lib.sh
|
||||||
|
|
||||||
|
source_conf /etc/conf.d
|
||||||
|
|
||||||
|
-make_trace_mem "hook pre-mount" '1:shortmem' '2+:mem' '3+:slab' '4+:komem'
|
||||||
|
+make_trace_mem "hook pre-mount" '1:shortmem' '2+:mem' '3+:slab'
|
||||||
|
# pre pivot scripts are sourced just before we doing cleanup and switch over
|
||||||
|
# to the new root.
|
||||||
|
getarg 'rd.break=pre-mount' 'rdbreak=pre-mount' && emergency_shell -n pre-mount "Break pre-mount"
|
||||||
|
diff --git a/modules.d/98dracut-systemd/dracut-pre-pivot.sh b/modules.d/98dracut-systemd/dracut-pre-pivot.sh
|
||||||
|
index dc9a2504..96e6f8ca 100755
|
||||||
|
--- a/modules.d/98dracut-systemd/dracut-pre-pivot.sh
|
||||||
|
+++ b/modules.d/98dracut-systemd/dracut-pre-pivot.sh
|
||||||
|
@@ -8,7 +8,7 @@ type getarg >/dev/null 2>&1 || . /lib/dracut-lib.sh
|
||||||
|
|
||||||
|
source_conf /etc/conf.d
|
||||||
|
|
||||||
|
-make_trace_mem "hook pre-pivot" '1:shortmem' '2+:mem' '3+:slab' '4+:komem'
|
||||||
|
+make_trace_mem "hook pre-pivot" '1:shortmem' '2+:mem' '3+:slab'
|
||||||
|
# pre pivot scripts are sourced just before we doing cleanup and switch over
|
||||||
|
# to the new root.
|
||||||
|
getarg 'rd.break=pre-pivot' 'rdbreak=pre-pivot' && emergency_shell -n pre-pivot "Break pre-pivot"
|
||||||
|
diff --git a/modules.d/98dracut-systemd/dracut-pre-trigger.sh b/modules.d/98dracut-systemd/dracut-pre-trigger.sh
|
||||||
|
index 7cd821ed..a1a33960 100755
|
||||||
|
--- a/modules.d/98dracut-systemd/dracut-pre-trigger.sh
|
||||||
|
+++ b/modules.d/98dracut-systemd/dracut-pre-trigger.sh
|
||||||
|
@@ -8,7 +8,7 @@ type getarg >/dev/null 2>&1 || . /lib/dracut-lib.sh
|
||||||
|
|
||||||
|
source_conf /etc/conf.d
|
||||||
|
|
||||||
|
-make_trace_mem "hook pre-trigger" '1:shortmem' '2+:mem' '3+:slab' '4+:komem'
|
||||||
|
+make_trace_mem "hook pre-trigger" '1:shortmem' '2+:mem' '3+:slab'
|
||||||
|
|
||||||
|
source_hook pre-trigger
|
||||||
|
|
||||||
|
diff --git a/modules.d/99base/dracut-lib.sh b/modules.d/99base/dracut-lib.sh
|
||||||
|
index c57523d3..b7020892 100755
|
||||||
|
--- a/modules.d/99base/dracut-lib.sh
|
||||||
|
+++ b/modules.d/99base/dracut-lib.sh
|
||||||
|
@@ -1187,50 +1187,25 @@ are_lists_eq() {
|
||||||
|
|
||||||
|
setmemdebug() {
|
||||||
|
if [ -z "$DEBUG_MEM_LEVEL" ]; then
|
||||||
|
- export DEBUG_MEM_LEVEL=$(getargnum 0 0 4 rd.memdebug)
|
||||||
|
+ export DEBUG_MEM_LEVEL=$(getargnum 0 0 3 rd.memdebug)
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
setmemdebug
|
||||||
|
|
||||||
|
-cleanup_trace_mem()
|
||||||
|
-{
|
||||||
|
- # tracekomem based on kernel trace needs cleanup after use.
|
||||||
|
- if [ "$DEBUG_MEM_LEVEL" -eq 4 ]; then
|
||||||
|
- tracekomem --cleanup
|
||||||
|
- fi
|
||||||
|
-}
|
||||||
|
-
|
||||||
|
-# parameters: msg [trace_level:trace]...
|
||||||
|
-make_trace_mem()
|
||||||
|
-{
|
||||||
|
- local msg
|
||||||
|
- msg="$1"
|
||||||
|
- shift
|
||||||
|
- if [ -n "$DEBUG_MEM_LEVEL" ] && [ "$DEBUG_MEM_LEVEL" -gt 0 ]; then
|
||||||
|
- make_trace show_memstats $DEBUG_MEM_LEVEL "[debug_mem]" "$msg" "$@" >&2
|
||||||
|
- fi
|
||||||
|
-}
|
||||||
|
-
|
||||||
|
# parameters: func log_level prefix msg [trace_level:trace]...
|
||||||
|
-make_trace()
|
||||||
|
+make_trace_mem()
|
||||||
|
{
|
||||||
|
- local func log_level prefix msg msg_printed
|
||||||
|
+ local log_level prefix msg msg_printed
|
||||||
|
local trace trace_level trace_in_higher_levels insert_trace
|
||||||
|
|
||||||
|
- func=$1
|
||||||
|
- shift
|
||||||
|
-
|
||||||
|
- log_level=$1
|
||||||
|
- shift
|
||||||
|
-
|
||||||
|
- prefix=$1
|
||||||
|
- shift
|
||||||
|
-
|
||||||
|
msg=$1
|
||||||
|
shift
|
||||||
|
|
||||||
|
- if [ -z "$log_level" ]; then
|
||||||
|
+ prefix='[debug_mem]'
|
||||||
|
+ log_level=$DEBUG_MEM_LEVEL
|
||||||
|
+
|
||||||
|
+ if [ -z "$log_level" ] || [ "$log_level" -le 0 ]; then
|
||||||
|
return
|
||||||
|
fi
|
||||||
|
|
||||||
|
@@ -1263,7 +1238,7 @@ make_trace()
|
||||||
|
echo "$prefix $msg"
|
||||||
|
msg_printed=1
|
||||||
|
fi
|
||||||
|
- $func $trace
|
||||||
|
+ show_memstats $trace
|
||||||
|
fi
|
||||||
|
shift
|
||||||
|
done
|
||||||
|
@@ -1285,9 +1260,6 @@ show_memstats()
|
||||||
|
iomem)
|
||||||
|
cat /proc/iomem
|
||||||
|
;;
|
||||||
|
- komem)
|
||||||
|
- tracekomem
|
||||||
|
- ;;
|
||||||
|
esac
|
||||||
|
}
|
||||||
|
|
||||||
|
diff --git a/modules.d/99base/init.sh b/modules.d/99base/init.sh
|
||||||
|
index 1111d09b..148ce831 100755
|
||||||
|
--- a/modules.d/99base/init.sh
|
||||||
|
+++ b/modules.d/99base/init.sh
|
||||||
|
@@ -131,7 +131,7 @@ if ! getargbool 1 'rd.hostonly'; then
|
||||||
|
fi
|
||||||
|
|
||||||
|
# run scriptlets to parse the command line
|
||||||
|
-make_trace_mem "hook cmdline" '1+:mem' '1+:iomem' '3+:slab' '4+:komem'
|
||||||
|
+make_trace_mem "hook cmdline" '1+:mem' '1+:iomem' '3+:slab'
|
||||||
|
getarg 'rd.break=cmdline' -d 'rdbreak=cmdline' && emergency_shell -n cmdline "Break before cmdline"
|
||||||
|
source_hook cmdline
|
||||||
|
|
||||||
|
@@ -160,7 +160,7 @@ fi
|
||||||
|
|
||||||
|
udevproperty "hookdir=$hookdir"
|
||||||
|
|
||||||
|
-make_trace_mem "hook pre-trigger" '1:shortmem' '2+:mem' '3+:slab' '4+:komem'
|
||||||
|
+make_trace_mem "hook pre-trigger" '1:shortmem' '2+:mem' '3+:slab'
|
||||||
|
getarg 'rd.break=pre-trigger' -d 'rdbreak=pre-trigger' && emergency_shell -n pre-trigger "Break before pre-trigger"
|
||||||
|
source_hook pre-trigger
|
||||||
|
|
||||||
|
@@ -230,7 +230,7 @@ unset RDRETRY
|
||||||
|
|
||||||
|
# pre-mount happens before we try to mount the root filesystem,
|
||||||
|
# and happens once.
|
||||||
|
-make_trace_mem "hook pre-mount" '1:shortmem' '2+:mem' '3+:slab' '4+:komem'
|
||||||
|
+make_trace_mem "hook pre-mount" '1:shortmem' '2+:mem' '3+:slab'
|
||||||
|
getarg 'rd.break=pre-mount' -d 'rdbreak=pre-mount' && emergency_shell -n pre-mount "Break pre-mount"
|
||||||
|
source_hook pre-mount
|
||||||
|
|
||||||
|
@@ -266,7 +266,7 @@ done
|
||||||
|
|
||||||
|
# pre pivot scripts are sourced just before we doing cleanup and switch over
|
||||||
|
# to the new root.
|
||||||
|
-make_trace_mem "hook pre-pivot" '1:shortmem' '2+:mem' '3+:slab' '4+:komem'
|
||||||
|
+make_trace_mem "hook pre-pivot" '1:shortmem' '2+:mem' '3+:slab'
|
||||||
|
getarg 'rd.break=pre-pivot' -d 'rdbreak=pre-pivot' && emergency_shell -n pre-pivot "Break pre-pivot"
|
||||||
|
source_hook pre-pivot
|
||||||
|
|
||||||
|
diff --git a/modules.d/99base/memtrace-ko.sh b/modules.d/99base/memtrace-ko.sh
|
||||||
|
deleted file mode 100755
|
||||||
|
index ee035e15..00000000
|
||||||
|
--- a/modules.d/99base/memtrace-ko.sh
|
||||||
|
+++ /dev/null
|
||||||
|
@@ -1,191 +0,0 @@
|
||||||
|
-#!/bin/sh
|
||||||
|
-
|
||||||
|
-# Try to find out kernel modules with large total memory allocation during loading.
|
||||||
|
-# For large slab allocation, it will fall into buddy, also not trace "mm_page_free"
|
||||||
|
-# considering large free is quite rare for module_init, thus saving tons of events
|
||||||
|
-# to avoid trace data overwritten.
|
||||||
|
-#
|
||||||
|
-# Therefore, tracing "mm_page_alloc"alone should be enough for the purpose.
|
||||||
|
-
|
||||||
|
-# "sys/kernel/tracing" has the priority if exists.
|
||||||
|
-get_trace_base() {
|
||||||
|
- # trace access through debugfs would be obsolete if "/sys/kernel/tracing" is available.
|
||||||
|
- if [ -d "/sys/kernel/tracing" ]; then
|
||||||
|
- echo "/sys/kernel"
|
||||||
|
- else
|
||||||
|
- echo "/sys/kernel/debug"
|
||||||
|
- fi
|
||||||
|
-}
|
||||||
|
-
|
||||||
|
-# We want to enable these trace events.
|
||||||
|
-get_want_events() {
|
||||||
|
- echo "module:module_put module:module_load kmem:mm_page_alloc"
|
||||||
|
-}
|
||||||
|
-
|
||||||
|
-get_event_filter() {
|
||||||
|
- echo "comm == systemd-udevd || comm == modprobe || comm == insmod"
|
||||||
|
-}
|
||||||
|
-
|
||||||
|
-is_trace_ready() {
|
||||||
|
- local trace_base want_events current_events
|
||||||
|
-
|
||||||
|
- trace_base=$(get_trace_base)
|
||||||
|
- ! [ -f "$trace_base/tracing/trace" ] && return 1
|
||||||
|
-
|
||||||
|
- [ "$(cat $trace_base/tracing/tracing_on)" -eq 0 ] && return 1
|
||||||
|
-
|
||||||
|
- # Also check if trace events were properly setup.
|
||||||
|
- want_events=$(get_want_events)
|
||||||
|
- current_events=$(echo $(cat $trace_base/tracing/set_event))
|
||||||
|
- [ "$current_events" != "$want_events" ] && return 1
|
||||||
|
-
|
||||||
|
- return 0
|
||||||
|
-}
|
||||||
|
-
|
||||||
|
-prepare_trace() {
|
||||||
|
- local trace_base
|
||||||
|
-
|
||||||
|
- trace_base=$(get_trace_base)
|
||||||
|
- # old debugfs interface case.
|
||||||
|
- if ! [ -d "$trace_base/tracing" ]; then
|
||||||
|
- mount none -t debugfs $trace_base
|
||||||
|
- # new tracefs interface case.
|
||||||
|
- elif ! [ -f "$trace_base/tracing/trace" ]; then
|
||||||
|
- mount none -t tracefs "$trace_base/tracing"
|
||||||
|
- fi
|
||||||
|
-
|
||||||
|
- if ! [ -f "$trace_base/tracing/trace" ]; then
|
||||||
|
- echo "WARN: Mount trace failed for kernel module memory analyzing."
|
||||||
|
- return 1
|
||||||
|
- fi
|
||||||
|
-
|
||||||
|
- # Active all the wanted trace events.
|
||||||
|
- echo "$(get_want_events)" > $trace_base/tracing/set_event
|
||||||
|
-
|
||||||
|
- # There are three kinds of known applications for module loading:
|
||||||
|
- # "systemd-udevd", "modprobe" and "insmod".
|
||||||
|
- # Set them as the global events filter.
|
||||||
|
- # NOTE: Some kernel may not support this format of filter, anyway
|
||||||
|
- # the operation will fail and it doesn't matter.
|
||||||
|
- echo "$(get_event_filter)" > $trace_base/tracing/events/kmem/filter 2>&1
|
||||||
|
- echo "$(get_event_filter)" > $trace_base/tracing/events/module/filter 2>&1
|
||||||
|
-
|
||||||
|
- # Set the number of comm-pid if supported.
|
||||||
|
- if [ -f "$trace_base/tracing/saved_cmdlines_size" ]; then
|
||||||
|
- # Thanks to filters, 4096 is big enough(also well supported).
|
||||||
|
- echo 4096 > $trace_base/tracing/saved_cmdlines_size
|
||||||
|
- fi
|
||||||
|
-
|
||||||
|
- # Enable and clear trace data for the first time.
|
||||||
|
- echo 1 > $trace_base/tracing/tracing_on
|
||||||
|
- echo > $trace_base/tracing/trace
|
||||||
|
- echo "Prepare trace success."
|
||||||
|
- return 0
|
||||||
|
-}
|
||||||
|
-
|
||||||
|
-order_to_pages()
|
||||||
|
-{
|
||||||
|
- local pages=1
|
||||||
|
- local order=$1
|
||||||
|
-
|
||||||
|
- while [ "$order" != 0 ]; do
|
||||||
|
- order=$((order-1))
|
||||||
|
- pages=$(($pages*2))
|
||||||
|
- done
|
||||||
|
-
|
||||||
|
- echo $pages
|
||||||
|
-}
|
||||||
|
-
|
||||||
|
-parse_trace_data() {
|
||||||
|
- local module_name tmp_eval pages
|
||||||
|
-
|
||||||
|
- cat "$(get_trace_base)/tracing/trace" | while read pid cpu flags ts function args
|
||||||
|
- do
|
||||||
|
- # Skip comment lines
|
||||||
|
- if [ "$pid" = "#" ]; then
|
||||||
|
- continue
|
||||||
|
- fi
|
||||||
|
-
|
||||||
|
- pid=${pid##*-}
|
||||||
|
- function=${function%:}
|
||||||
|
- if [ "$function" = "module_load" ]; then
|
||||||
|
- # One module is being loaded, save the task pid for tracking.
|
||||||
|
- # Remove the trailing after whitespace, there may be the module flags.
|
||||||
|
- module_name=${args%% *}
|
||||||
|
- # Mark current_module to track the task.
|
||||||
|
- eval current_module_$pid="$module_name"
|
||||||
|
- tmp_eval=$(eval echo '${module_loaded_'${module_name}'}')
|
||||||
|
- if [ -n "$tmp_eval" ]; then
|
||||||
|
- echo "WARN: \"$module_name\" was loaded multiple times!"
|
||||||
|
- fi
|
||||||
|
- eval unset module_loaded_$module_name
|
||||||
|
- eval nr_alloc_pages_$module_name=0
|
||||||
|
- continue
|
||||||
|
- fi
|
||||||
|
-
|
||||||
|
- module_name=$(eval echo '${current_module_'${pid}'}')
|
||||||
|
- if [ -z "$module_name" ]; then
|
||||||
|
- continue
|
||||||
|
- fi
|
||||||
|
-
|
||||||
|
- # Once we get here, the task is being tracked(is loading a module).
|
||||||
|
- if [ "$function" = "module_put" ]; then
|
||||||
|
- # Mark the module as loaded when the first module_put event happens after module_load.
|
||||||
|
- tmp_eval=$(eval echo '${nr_alloc_pages_'${module_name}'}')
|
||||||
|
- echo "$tmp_eval pages consumed by \"$module_name\""
|
||||||
|
- eval module_loaded_$module_name=1
|
||||||
|
- # Module loading finished, so untrack the task.
|
||||||
|
- eval unset current_module_$pid
|
||||||
|
- eval unset nr_alloc_pages_$module_name
|
||||||
|
- continue
|
||||||
|
- fi
|
||||||
|
-
|
||||||
|
- if [ "$function" = "mm_page_alloc" ]; then
|
||||||
|
- # Get order first, then convert to actual pages.
|
||||||
|
- pages=$(echo $args | sed -e 's/.*order=\([0-9]*\) .*/\1/')
|
||||||
|
- pages=$(order_to_pages "$pages")
|
||||||
|
- tmp_eval=$(eval echo '${nr_alloc_pages_'${module_name}'}')
|
||||||
|
- eval nr_alloc_pages_$module_name="$(($tmp_eval+$pages))"
|
||||||
|
- fi
|
||||||
|
- done
|
||||||
|
-}
|
||||||
|
-
|
||||||
|
-cleanup_trace() {
|
||||||
|
- local trace_base
|
||||||
|
-
|
||||||
|
- if is_trace_ready; then
|
||||||
|
- trace_base=$(get_trace_base)
|
||||||
|
- echo 0 > $trace_base/tracing/tracing_on
|
||||||
|
- echo > $trace_base/tracing/trace
|
||||||
|
- echo > $trace_base/tracing/set_event
|
||||||
|
- echo 0 > $trace_base/tracing/events/kmem/filter
|
||||||
|
- echo 0 > $trace_base/tracing/events/module/filter
|
||||||
|
- fi
|
||||||
|
-}
|
||||||
|
-
|
||||||
|
-show_usage() {
|
||||||
|
- echo "Find out kernel modules with large memory consumption during loading based on trace."
|
||||||
|
- echo "Usage:"
|
||||||
|
- echo "1) run it first to setup trace."
|
||||||
|
- echo "2) run again to parse the trace data if any."
|
||||||
|
- echo "3) run with \"--cleanup\" option to cleanup trace after use."
|
||||||
|
-}
|
||||||
|
-
|
||||||
|
-if [ "$1" = "--help" ]; then
|
||||||
|
- show_usage
|
||||||
|
- exit 0
|
||||||
|
-fi
|
||||||
|
-
|
||||||
|
-if [ "$1" = "--cleanup" ]; then
|
||||||
|
- cleanup_trace
|
||||||
|
- exit 0
|
||||||
|
-fi
|
||||||
|
-
|
||||||
|
-if is_trace_ready ; then
|
||||||
|
- echo "tracekomem - Rough memory consumption by loading kernel modules (larger value with better accuracy)"
|
||||||
|
- parse_trace_data
|
||||||
|
-else
|
||||||
|
- prepare_trace
|
||||||
|
-fi
|
||||||
|
-
|
||||||
|
-exit $?
|
||||||
|
diff --git a/modules.d/99base/module-setup.sh b/modules.d/99base/module-setup.sh
|
||||||
|
index 3a2246b4..c9e3ebcb 100755
|
||||||
|
--- a/modules.d/99base/module-setup.sh
|
||||||
|
+++ b/modules.d/99base/module-setup.sh
|
||||||
|
@@ -39,7 +39,6 @@ install() {
|
||||||
|
inst_script "$moddir/initqueue.sh" "/sbin/initqueue"
|
||||||
|
inst_script "$moddir/loginit.sh" "/sbin/loginit"
|
||||||
|
inst_script "$moddir/rdsosreport.sh" "/sbin/rdsosreport"
|
||||||
|
- inst_script "$moddir/memtrace-ko.sh" "/sbin/tracekomem"
|
||||||
|
|
||||||
|
[ -e "${initdir}/lib" ] || mkdir -m 0755 -p ${initdir}/lib
|
||||||
|
mkdir -m 0755 -p ${initdir}/lib/dracut
|
||||||
|
|
316
0043.patch
Normal file
316
0043.patch
Normal file
@ -0,0 +1,316 @@
|
|||||||
|
From 7dd8a2f4d351ce8975c0af122732a2a12697c8cc Mon Sep 17 00:00:00 2001
|
||||||
|
From: Kairui Song <kasong@redhat.com>
|
||||||
|
Date: Wed, 8 Apr 2020 20:09:38 +0800
|
||||||
|
Subject: [PATCH] Add 99memstrack module
|
||||||
|
|
||||||
|
memstrack is a new tool to track the overall memory usage and
|
||||||
|
allocation, which can help off load the improve the builtin module
|
||||||
|
memory tracing function in dracut.
|
||||||
|
|
||||||
|
With this change, the rd.memdebug=4 behavior is similiar with before,
|
||||||
|
but the report is defered to pre-pivot, so the memory usage info
|
||||||
|
during the whole initramfs run is traced. And the ourput format is
|
||||||
|
changed a bit:
|
||||||
|
|
||||||
|
dracut-pre-pivot[519]: ======== Report format module_summary: ========
|
||||||
|
dracut-pre-pivot[519]: Module squashfs using 10.4MB (2658 pages), peak allocation 10.4MB (2671 pages)
|
||||||
|
dracut-pre-pivot[519]: Module qxl using 3.4MB (865 pages), peak allocation 3.4MB (880 pages)
|
||||||
|
dracut-pre-pivot[519]: Module crc32c_intel using 2.0MB (519 pages), peak allocation 3.0MB (769 pages)
|
||||||
|
dracut-pre-pivot[519]: Module serio_raw using 2.0MB (505 pages), peak allocation 3.6MB (918 pages)
|
||||||
|
dracut-pre-pivot[519]: Module virtio_console using 1.6MB (416 pages), peak allocation 1.6MB (419 pages)
|
||||||
|
... snip ...
|
||||||
|
dracut-pre-pivot[519]: ======== Report format module_summary END ========
|
||||||
|
|
||||||
|
It now contains more detail and also includes the peak usage which could
|
||||||
|
be more helpful.
|
||||||
|
|
||||||
|
And now it have a rd.memdebug=5, which will print more detail about
|
||||||
|
the stack trace of the top memory user, also printed on pri-pivot:
|
||||||
|
|
||||||
|
dracut-pre-pivot[519]: ======== Report format module_top: ========
|
||||||
|
dracut-pre-pivot[519]: Top stack usage of module squashfs:
|
||||||
|
dracut-pre-pivot[519]: (null) Pages: 2658 (peak: 2671)
|
||||||
|
dracut-pre-pivot[519]: (null) Pages: 2658 (peak: 2671)
|
||||||
|
dracut-pre-pivot[519]: async_page_fault (0xffffffff81a01149) Pages: 1448 (peak: 1461)
|
||||||
|
dracut-pre-pivot[519]: do_async_page_fault (0xffffffff8105c509) Pages: 1448 (peak: 1461)
|
||||||
|
dracut-pre-pivot[519]: do_page_fault (0xffffffff8106296a) Pages: 1448 (peak: 1461)
|
||||||
|
dracut-pre-pivot[519]: do_user_addr_fault (0xffffffff810626bd) Pages: 1448 (peak: 1461)
|
||||||
|
dracut-pre-pivot[519]: handle_mm_fault (0xffffffff812940c4) Pages: 1448 (peak: 1461)
|
||||||
|
dracut-pre-pivot[519]: __handle_mm_fault (0xffffffff81293627) Pages: 1195 (peak: 1208)
|
||||||
|
dracut-pre-pivot[519]: __do_fault (0xffffffff8128b07e) Pages: 1195 (peak: 1208)
|
||||||
|
dracut-pre-pivot[519]: filemap_fault (0xffffffff8124c0b9) Pages: 1195 (peak: 1208)
|
||||||
|
dracut-pre-pivot[519]: __do_page_cache_readahead (0xffffffff812585da) Pages: 1063 (peak: 1076)
|
||||||
|
dracut-pre-pivot[519]: read_pages (0xffffffff812583c2) Pages: 1063 (peak: 1076)
|
||||||
|
dracut-pre-pivot[519]: squashfs_readpage squashfs (0xffffffffc0022073) Pages: 1039 (peak: 1052)
|
||||||
|
dracut-pre-pivot[519]: squashfs_readpage_block squashfs (0xffffffffc0024334) Pages: 744 (peak: 744)
|
||||||
|
dracut-pre-pivot[519]: squashfs_copy_cache squashfs (0xffffffffc0021a3f) Pages: 744 (peak: 744)
|
||||||
|
dracut-pre-pivot[519]: pagecache_get_page (0xffffffff8124abf7) Pages: 744 (peak: 744)
|
||||||
|
dracut-pre-pivot[519]: __page_cache_alloc (0xffffffff81247df6) Pages: 744 (peak: 744)
|
||||||
|
dracut-pre-pivot[519]: alloc_pages_current (0xffffffff812cdca7) Pages: 744 (peak: 744)
|
||||||
|
dracut-pre-pivot[519]: __alloc_pages_nodemask (0xffffffff812b3107) Pages: 744 (peak: 744)
|
||||||
|
dracut-pre-pivot[519]: __alloc_pages_nodemask (0xffffffff812b3107) Pages: 1488 (peak: 1488)
|
||||||
|
dracut-pre-pivot[519]: Top stack usage of module qxl:
|
||||||
|
dracut-pre-pivot[519]: (null) Pages: 865 (peak: 880)
|
||||||
|
dracut-pre-pivot[519]: entry_SYSCALL_64_after_hwframe (0xffffffff81a0008c) Pages: 855 (peak: 858)
|
||||||
|
dracut-pre-pivot[519]: do_syscall_64 (0xffffffff81002a5a) Pages: 855 (peak: 858)
|
||||||
|
dracut-pre-pivot[519]: __x64_sys_finit_module (0xffffffff8117ccea) Pages: 811 (peak: 811)
|
||||||
|
dracut-pre-pivot[519]: __do_sys_finit_module (0xffffffff8117cc6e) Pages: 811 (peak: 811)
|
||||||
|
dracut-pre-pivot[519]: load_module (0xffffffff8117c6be) Pages: 802 (peak: 802)
|
||||||
|
dracut-pre-pivot[519]: do_init_module (0xffffffff81179e72) Pages: 802 (peak: 802)
|
||||||
|
dracut-pre-pivot[519]: do_one_initcall (0xffffffff81000d5a) Pages: 802 (peak: 802)
|
||||||
|
dracut-pre-pivot[519]: serio_raw_poll serio_raw (0xffffffffc0200054) Pages: 802 (peak: 802)
|
||||||
|
dracut-pre-pivot[519]: __pci_register_driver (0xffffffff81557804) Pages: 802 (peak: 802)
|
||||||
|
dracut-pre-pivot[519]: driver_register (0xffffffff8167ed24) Pages: 802 (peak: 802)
|
||||||
|
dracut-pre-pivot[519]: bus_add_driver (0xffffffff8167cbb2) Pages: 801 (peak: 801)
|
||||||
|
dracut-pre-pivot[519]: driver_attach (0xffffffff8167d28e) Pages: 801 (peak: 801)
|
||||||
|
dracut-pre-pivot[519]: bus_for_each_dev (0xffffffff8167b62c) Pages: 801 (peak: 801)
|
||||||
|
dracut-pre-pivot[519]: __driver_attach (0xffffffff8167e18f) Pages: 801 (peak: 801)
|
||||||
|
dracut-pre-pivot[519]: device_driver_attach (0xffffffff8167e0ed) Pages: 801 (peak: 801)
|
||||||
|
dracut-pre-pivot[519]: driver_probe_device (0xffffffff8167de6c) Pages: 801 (peak: 801)
|
||||||
|
dracut-pre-pivot[519]: really_probe (0xffffffff8167d9c9) Pages: 801 (peak: 801)
|
||||||
|
dracut-pre-pivot[519]: pci_device_probe (0xffffffff81559627) Pages: 801 (peak: 801)
|
||||||
|
dracut-pre-pivot[519]: local_pci_probe (0xffffffff81557f98) Pages: 801 (peak: 801)
|
||||||
|
dracut-pre-pivot[519]: qxl_pci_probe qxl (0xffffffffc01f0387) Pages: 773 (peak: 773)
|
||||||
|
dracut-pre-pivot[519]: drm_fbdev_generic_setup drm_kms_helper (0xffffffffc01b30c5) Pages: 773 (peak: 773)
|
||||||
|
dracut-pre-pivot[519]: drm_fbdev_client_hotplug drm_kms_helper (0xffffffffc01b2656) Pages: 773 (peak: 773)
|
||||||
|
dracut-pre-pivot[519]: __drm_fb_helper_initial_config_and_unlock drm_kms_helper (0xffffffffc01b1a28) Pages: 770 (peak: 770)
|
||||||
|
dracut-pre-pivot[519]: drm_fb_helper_generic_probe drm_kms_helper (0xffffffffc01b2fa5) Pages: 770 (peak: 770)
|
||||||
|
dracut-pre-pivot[519]: vzalloc (0xffffffff812aa39c) Pages: 770 (peak: 770)
|
||||||
|
dracut-pre-pivot[519]: __vmalloc_node_range (0xffffffff812aa200) Pages: 768 (peak: 768)
|
||||||
|
... snip ...
|
||||||
|
======== Report format module_top END ========
|
||||||
|
|
||||||
|
This could be very helpful for debuging memory usage issues.
|
||||||
|
---
|
||||||
|
dracut.cmdline.7.asc | 16 ++++++++++------
|
||||||
|
dracut.spec | 2 ++
|
||||||
|
modules.d/99base/dracut-lib.sh | 2 +-
|
||||||
|
modules.d/99memstrack/memstrack-report.sh | 23 +++++++++++++++++++++++
|
||||||
|
modules.d/99memstrack/memstrack-start.sh | 68 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
|
||||||
|
modules.d/99memstrack/memstrack.service | 13 +++++++++++++
|
||||||
|
modules.d/99memstrack/module-setup.sh | 27 +++++++++++++++++++++++++++
|
||||||
|
7 files changed, 144 insertions(+), 7 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/dracut.cmdline.7.asc b/dracut.cmdline.7.asc
|
||||||
|
index c53601ea..4d4970c8 100644
|
||||||
|
--- a/dracut.cmdline.7.asc
|
||||||
|
+++ b/dracut.cmdline.7.asc
|
||||||
|
@@ -188,8 +188,8 @@ It should be attached to any report about dracut problems.
|
||||||
|
_/run/initramfs/init.log_.
|
||||||
|
If "quiet" is set, it also logs to the console.
|
||||||
|
|
||||||
|
-**rd.memdebug=[0-3]**::
|
||||||
|
- Print memory usage info at various points, set the verbose level from 0 to 4.
|
||||||
|
+**rd.memdebug=[0-5]**::
|
||||||
|
+ Print memory usage info at various points, set the verbose level from 0 to 5.
|
||||||
|
+
|
||||||
|
Higher level means more debugging output:
|
||||||
|
+
|
||||||
|
@@ -198,10 +198,14 @@ It should be attached to any report about dracut problems.
|
||||||
|
1 - partial /proc/meminfo
|
||||||
|
2 - /proc/meminfo
|
||||||
|
3 - /proc/meminfo + /proc/slabinfo
|
||||||
|
- 4 - /proc/meminfo + /proc/slabinfo + tracekomem
|
||||||
|
- NOTE: tracekomem is a shell script utilizing kernel trace to track
|
||||||
|
- the rough total memory consumption of kernel modules during
|
||||||
|
- loading. It may override other trace configurations.
|
||||||
|
+ 4 - /proc/meminfo + /proc/slabinfo + memstrack summary
|
||||||
|
+ NOTE: memstrack is a memory tracing tool that tracks the total memory
|
||||||
|
+ consumption, and peak memory consumption of each kernel modules
|
||||||
|
+ and userspace progress during the whole initramfs runtime, report
|
||||||
|
+ is genereted and the end of initramsfs run.
|
||||||
|
+ 5 - /proc/meminfo + /proc/slabinfo + memstrack (with top memory stacktrace)
|
||||||
|
+ NOTE: memstrack (with top memory stacktrace) will print top memory
|
||||||
|
+ allocation stack traces during the whole initramfs runtime.
|
||||||
|
----
|
||||||
|
|
||||||
|
**rd.break**::
|
||||||
|
diff --git a/dracut.spec b/dracut.spec
|
||||||
|
index 0369dde6..1eb47402 100644
|
||||||
|
--- a/dracut.spec
|
||||||
|
+++ b/dracut.spec
|
||||||
|
@@ -77,6 +77,7 @@ Requires: xz
|
||||||
|
Requires: gzip
|
||||||
|
|
||||||
|
%if 0%{?fedora} || 0%{?rhel}
|
||||||
|
+Recommends: memstrack
|
||||||
|
Recommends: hardlink
|
||||||
|
Recommends: pigz
|
||||||
|
Recommends: kpartx
|
||||||
|
@@ -403,6 +404,7 @@ install -m 0755 51-dracut-rescue-postinst.sh $RPM_BUILD_ROOT%{_sysconfdir}/kerne
|
||||||
|
%{dracutlibdir}/modules.d/98syslog
|
||||||
|
%{dracutlibdir}/modules.d/98usrmount
|
||||||
|
%{dracutlibdir}/modules.d/99base
|
||||||
|
+%{dracutlibdir}/modules.d/99memstrack
|
||||||
|
%{dracutlibdir}/modules.d/99fs-lib
|
||||||
|
%{dracutlibdir}/modules.d/99shutdown
|
||||||
|
%attr(0644,root,root) %ghost %config(missingok,noreplace) %{_localstatedir}/log/dracut.log
|
||||||
|
diff --git a/modules.d/99base/dracut-lib.sh b/modules.d/99base/dracut-lib.sh
|
||||||
|
index b7020892..e602bacb 100755
|
||||||
|
--- a/modules.d/99base/dracut-lib.sh
|
||||||
|
+++ b/modules.d/99base/dracut-lib.sh
|
||||||
|
@@ -1187,7 +1187,7 @@ are_lists_eq() {
|
||||||
|
|
||||||
|
setmemdebug() {
|
||||||
|
if [ -z "$DEBUG_MEM_LEVEL" ]; then
|
||||||
|
- export DEBUG_MEM_LEVEL=$(getargnum 0 0 3 rd.memdebug)
|
||||||
|
+ export DEBUG_MEM_LEVEL=$(getargnum 0 0 5 rd.memdebug)
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
diff --git a/modules.d/99memstrack/memstrack-report.sh b/modules.d/99memstrack/memstrack-report.sh
|
||||||
|
new file mode 100755
|
||||||
|
index 00000000..241e8621
|
||||||
|
--- /dev/null
|
||||||
|
+++ b/modules.d/99memstrack/memstrack-report.sh
|
||||||
|
@@ -0,0 +1,23 @@
|
||||||
|
+#!/usr/bin/env bash
|
||||||
|
+. /lib/dracut-lib.sh
|
||||||
|
+
|
||||||
|
+if ! [ "$DEBUG_MEM_LEVEL" -ge 4 ]; then
|
||||||
|
+ exit 0
|
||||||
|
+fi
|
||||||
|
+
|
||||||
|
+if type -P systemctl >/dev/null; then
|
||||||
|
+ systemctl stop memstrack.service
|
||||||
|
+else
|
||||||
|
+ get_pid_of_tracer () {
|
||||||
|
+ local _user _pid _rest
|
||||||
|
+ read _user _pid _rest <<< $(ps aux | grep [m]emstrack | head -1)
|
||||||
|
+ echo $_pid
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+ kill -s INT $(get_pid_of_tracer)
|
||||||
|
+ while [[ -n $(get_pid_of_tracer) ]]; do
|
||||||
|
+ sleep 1
|
||||||
|
+ done
|
||||||
|
+fi
|
||||||
|
+
|
||||||
|
+cat /.memstrack
|
||||||
|
diff --git a/modules.d/99memstrack/memstrack-start.sh b/modules.d/99memstrack/memstrack-start.sh
|
||||||
|
new file mode 100755
|
||||||
|
index 00000000..5aa73efe
|
||||||
|
--- /dev/null
|
||||||
|
+++ b/modules.d/99memstrack/memstrack-start.sh
|
||||||
|
@@ -0,0 +1,68 @@
|
||||||
|
+#!/bin/sh
|
||||||
|
+# Mount kernel debug fs so debug tools can work.
|
||||||
|
+# memdebug=4 and memdebug=5 requires debug fs to be mounted.
|
||||||
|
+# And there is no need to umount it.
|
||||||
|
+
|
||||||
|
+type getargnum >/dev/null 2>&1 || . /lib/dracut-lib.sh
|
||||||
|
+
|
||||||
|
+# "sys/kernel/tracing" has the priority if exists.
|
||||||
|
+get_trace_base() {
|
||||||
|
+ # trace access through debugfs would be obsolete if "/sys/kernel/tracing" is available.
|
||||||
|
+ if [ -d "/sys/kernel/tracing" ]; then
|
||||||
|
+ echo "/sys/kernel"
|
||||||
|
+ else
|
||||||
|
+ echo "/sys/kernel/debug"
|
||||||
|
+ fi
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
+is_debugfs_ready() {
|
||||||
|
+ [ -f "$(get_trace_base)/tracing/trace" ]
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
+prepare_debugfs() {
|
||||||
|
+ local trace_base
|
||||||
|
+
|
||||||
|
+ trace_base=$(get_trace_base)
|
||||||
|
+ # old debugfs interface case.
|
||||||
|
+ if ! [ -d "$trace_base/tracing" ]; then
|
||||||
|
+ mount none -t debugfs $trace_base
|
||||||
|
+ # new tracefs interface case.
|
||||||
|
+ elif ! [ -f "$trace_base/tracing/trace" ]; then
|
||||||
|
+ mount none -t tracefs "$trace_base/tracing"
|
||||||
|
+ fi
|
||||||
|
+
|
||||||
|
+ if ! [ -f "$trace_base/tracing/trace" ]; then
|
||||||
|
+ echo "WARN: failed to mount debugfs"
|
||||||
|
+ return 1
|
||||||
|
+ fi
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
+if ! is_debugfs_ready ; then
|
||||||
|
+ prepare_debugfs
|
||||||
|
+fi
|
||||||
|
+
|
||||||
|
+if [ -n "$DEBUG_MEM_LEVEL" ]; then
|
||||||
|
+ if [ "$DEBUG_MEM_LEVEL" -ge 5 ]; then
|
||||||
|
+ echo "memstrack - will report kernel module memory usage summary and top allocation stack"
|
||||||
|
+ memstrack --report module_summary,module_top --notui --throttle 80 -o /.memstrack &
|
||||||
|
+ elif [ "$DEBUG_MEM_LEVEL" -ge 4 ]; then
|
||||||
|
+ echo "memstrack - will report memory usage summary"
|
||||||
|
+ memstrack --report module_summary --notui --throttle 80 -o /.memstrack &
|
||||||
|
+ else
|
||||||
|
+ exit 0;
|
||||||
|
+ fi
|
||||||
|
+fi
|
||||||
|
+
|
||||||
|
+PID=$!
|
||||||
|
+RET=$?
|
||||||
|
+
|
||||||
|
+if [ $RET -ne 0 ]; then
|
||||||
|
+ echo "Failed to start memstrack, exit status: $RET"
|
||||||
|
+ exit $RET
|
||||||
|
+fi
|
||||||
|
+
|
||||||
|
+# Wait a second for memstrack to setup everything, avoid missing any event
|
||||||
|
+sleep 1
|
||||||
|
+
|
||||||
|
+echo $PID > /run/memstrack.pid
|
||||||
|
+disown
|
||||||
|
diff --git a/modules.d/99memstrack/memstrack.service b/modules.d/99memstrack/memstrack.service
|
||||||
|
new file mode 100644
|
||||||
|
index 00000000..6b47adef
|
||||||
|
--- /dev/null
|
||||||
|
+++ b/modules.d/99memstrack/memstrack.service
|
||||||
|
@@ -0,0 +1,13 @@
|
||||||
|
+[Unit]
|
||||||
|
+Description=Memstrack Anylazing Service
|
||||||
|
+DefaultDependencies=no
|
||||||
|
+Before=dracut-cmdline.service systemd-udevd.service local-fs-pre.target
|
||||||
|
+IgnoreOnIsolate=true
|
||||||
|
+
|
||||||
|
+[Service]
|
||||||
|
+Type=simple
|
||||||
|
+ExecStart=/bin/memstrack-start
|
||||||
|
+PIDFile=/run/memstrack.pid
|
||||||
|
+StandardInput=null
|
||||||
|
+StandardOutput=syslog+console
|
||||||
|
+StandardError=syslog+console
|
||||||
|
diff --git a/modules.d/99memstrack/module-setup.sh b/modules.d/99memstrack/module-setup.sh
|
||||||
|
new file mode 100755
|
||||||
|
index 00000000..d5bacb4d
|
||||||
|
--- /dev/null
|
||||||
|
+++ b/modules.d/99memstrack/module-setup.sh
|
||||||
|
@@ -0,0 +1,27 @@
|
||||||
|
+#!/usr/bin/bash
|
||||||
|
+
|
||||||
|
+check() {
|
||||||
|
+ if type -P memstrack >/dev/null; then
|
||||||
|
+ dinfo "memstrack is available"
|
||||||
|
+ return 0
|
||||||
|
+ fi
|
||||||
|
+
|
||||||
|
+ dinfo "memstrack is not available"
|
||||||
|
+ dinfo "If you need to use rd.memdebug>=4, please install memstrack"
|
||||||
|
+
|
||||||
|
+ return 1
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
+depends() {
|
||||||
|
+ return 0
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
+install() {
|
||||||
|
+ inst "/bin/memstrack" "/bin/memstrack"
|
||||||
|
+
|
||||||
|
+ inst "$moddir/memstrack-start.sh" "/bin/memstrack-start"
|
||||||
|
+ inst_hook cleanup 99 "$moddir/memstrack-report.sh"
|
||||||
|
+
|
||||||
|
+ inst "$moddir/memstrack.service" "$systemdsystemunitdir/memstrack.service"
|
||||||
|
+ systemctl -q --root "$initdir" add-wants initrd.target memstrack.service
|
||||||
|
+}
|
||||||
|
|
29
0044.patch
Normal file
29
0044.patch
Normal file
@ -0,0 +1,29 @@
|
|||||||
|
From faea4e4ddb10f697590b80f8f17181341c537262 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Peter Georg <peter.georg@physik.uni-regensburg.de>
|
||||||
|
Date: Tue, 21 Apr 2020 21:34:38 +0200
|
||||||
|
Subject: [PATCH] Always pull in machinery to read ifcfg files
|
||||||
|
|
||||||
|
So far machinery is only pulled in if the user has not yet included any
|
||||||
|
ifcfg files.
|
||||||
|
---
|
||||||
|
modules.d/35network-manager/module-setup.sh | 6 ++----
|
||||||
|
1 file changed, 2 insertions(+), 4 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/modules.d/35network-manager/module-setup.sh b/modules.d/35network-manager/module-setup.sh
|
||||||
|
index 8fc3114d..ad2a1534 100755
|
||||||
|
--- a/modules.d/35network-manager/module-setup.sh
|
||||||
|
+++ b/modules.d/35network-manager/module-setup.sh
|
||||||
|
@@ -47,10 +47,8 @@ install() {
|
||||||
|
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
|
||||||
|
+ # But the user might choose to include them, so we pull in the machinery to read them.
|
||||||
|
+ inst_libdir_file "NetworkManager/$_nm_version/libnm-settings-plugin-ifcfg-rh.so"
|
||||||
|
|
||||||
|
_arch=${DRACUT_ARCH:-$(uname -m)}
|
||||||
|
|
||||||
|
|
66
0045.patch
Normal file
66
0045.patch
Normal file
@ -0,0 +1,66 @@
|
|||||||
|
From 586a56c2877ae8c0b365c3a6c69cd4ff8b27bf0c Mon Sep 17 00:00:00 2001
|
||||||
|
From: Harald Hoyer <harald@redhat.com>
|
||||||
|
Date: Fri, 24 Apr 2020 11:05:49 +0200
|
||||||
|
Subject: [PATCH] Install crypto modules in 90kernel-modules
|
||||||
|
|
||||||
|
We don't want to play catch up with hash and encryption algorithms.
|
||||||
|
To be safe, just use the hammer and include all crypto.
|
||||||
|
|
||||||
|
Fixes https://github.com/dracutdevs/dracut/issues/802
|
||||||
|
---
|
||||||
|
modules.d/90btrfs/module-setup.sh | 2 --
|
||||||
|
modules.d/90crypt/module-setup.sh | 6 +-----
|
||||||
|
modules.d/90kernel-modules/module-setup.sh | 9 +++++++++
|
||||||
|
3 files changed, 10 insertions(+), 7 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/modules.d/90btrfs/module-setup.sh b/modules.d/90btrfs/module-setup.sh
|
||||||
|
index 66a254e1..79f89a50 100755
|
||||||
|
--- a/modules.d/90btrfs/module-setup.sh
|
||||||
|
+++ b/modules.d/90btrfs/module-setup.sh
|
||||||
|
@@ -26,8 +26,6 @@ depends() {
|
||||||
|
# called by dracut
|
||||||
|
installkernel() {
|
||||||
|
instmods btrfs
|
||||||
|
- # Make sure btfs can use fast crc32c implementations where available (bsc#1011554)
|
||||||
|
- instmods crc32c-intel
|
||||||
|
}
|
||||||
|
|
||||||
|
# called by dracut
|
||||||
|
diff --git a/modules.d/90crypt/module-setup.sh b/modules.d/90crypt/module-setup.sh
|
||||||
|
index 3ee4c545..a9dda734 100755
|
||||||
|
--- a/modules.d/90crypt/module-setup.sh
|
||||||
|
+++ b/modules.d/90crypt/module-setup.sh
|
||||||
|
@@ -25,11 +25,7 @@ depends() {
|
||||||
|
# called by dracut
|
||||||
|
installkernel() {
|
||||||
|
hostonly="" instmods drbg
|
||||||
|
- arch=$(uname -m)
|
||||||
|
- [[ $arch == x86_64 ]] && arch=x86
|
||||||
|
- [[ $arch == s390x ]] && arch=s390
|
||||||
|
- [[ $arch == aarch64 ]] && arch=arm64
|
||||||
|
- instmods dm_crypt =crypto =drivers/crypto =arch/$arch/crypto
|
||||||
|
+ instmods dm_crypt
|
||||||
|
}
|
||||||
|
|
||||||
|
# called by dracut
|
||||||
|
diff --git a/modules.d/90kernel-modules/module-setup.sh b/modules.d/90kernel-modules/module-setup.sh
|
||||||
|
index bc3810cc..28d291eb 100755
|
||||||
|
--- a/modules.d/90kernel-modules/module-setup.sh
|
||||||
|
+++ b/modules.d/90kernel-modules/module-setup.sh
|
||||||
|
@@ -104,6 +104,15 @@ installkernel() {
|
||||||
|
elif [[ "${host_fs_types[*]}" ]]; then
|
||||||
|
hostonly='' instmods "${host_fs_types[@]}"
|
||||||
|
fi
|
||||||
|
+
|
||||||
|
+ arch=${DRACUT_ARCH:-$(uname -m)}
|
||||||
|
+
|
||||||
|
+ # We don't want to play catch up with hash and encryption algorithms.
|
||||||
|
+ # To be safe, just use the hammer and include all crypto.
|
||||||
|
+ [[ $arch == x86_64 ]] && arch=x86
|
||||||
|
+ [[ $arch == s390x ]] && arch=s390
|
||||||
|
+ [[ $arch == aarch64 ]] && arch=arm64
|
||||||
|
+ instmods "=crypto" "=arch/$arch/crypto" "=drivers/crypto"
|
||||||
|
fi
|
||||||
|
:
|
||||||
|
}
|
||||||
|
|
53
0046.patch
Normal file
53
0046.patch
Normal file
@ -0,0 +1,53 @@
|
|||||||
|
From 5bfebf0f04c8e88a0447d5f75c7ec13951fa610d Mon Sep 17 00:00:00 2001
|
||||||
|
From: Harald Hoyer <harald@redhat.com>
|
||||||
|
Date: Tue, 7 Apr 2020 22:26:25 +0200
|
||||||
|
Subject: [PATCH] 90crypt/module-setup.sh: try to catch kernel config changes
|
||||||
|
|
||||||
|
If a crypto kernel module changes from compiled in to module, the
|
||||||
|
encrypted disk might fail to open, because the kernel module was
|
||||||
|
not included in the initramfs.
|
||||||
|
|
||||||
|
This patch tries heuristically to catch such modules.
|
||||||
|
|
||||||
|
Fixes https://github.com/dracutdevs/dracut/issues/706
|
||||||
|
---
|
||||||
|
modules.d/90crypt/module-setup.sh | 25 +++++++++++++++++++++++++
|
||||||
|
1 file changed, 25 insertions(+)
|
||||||
|
|
||||||
|
diff --git a/modules.d/90crypt/module-setup.sh b/modules.d/90crypt/module-setup.sh
|
||||||
|
index a9dda734..3bce2411 100755
|
||||||
|
--- a/modules.d/90crypt/module-setup.sh
|
||||||
|
+++ b/modules.d/90crypt/module-setup.sh
|
||||||
|
@@ -26,6 +26,31 @@ depends() {
|
||||||
|
installkernel() {
|
||||||
|
hostonly="" instmods drbg
|
||||||
|
instmods dm_crypt
|
||||||
|
+
|
||||||
|
+ # in case some of the crypto modules moved from compiled in
|
||||||
|
+ # to module based, try to install those modules
|
||||||
|
+ # best guess
|
||||||
|
+ [[ $hostonly ]] || [[ $mount_needs ]] && {
|
||||||
|
+ # dmsetup returns s.th. like
|
||||||
|
+ # cryptvol: 0 2064384 crypt aes-xts-plain64 :64:logon:cryptsetup:....
|
||||||
|
+ dmsetup table | while read name _ _ is_crypt cipher _; do
|
||||||
|
+ [[ $is_crypt != "crypt" ]] && continue
|
||||||
|
+ # get the device name
|
||||||
|
+ name=/dev/$(dmsetup info -c --noheadings -o blkdevname ${name%:})
|
||||||
|
+ # check if the device exists as a key in our host_fs_types
|
||||||
|
+ if [[ ${host_fs_types[$name]+_} ]]; then
|
||||||
|
+ # split the cipher aes-xts-plain64 in pieces
|
||||||
|
+ _OLD_IFS=$IFS
|
||||||
|
+ IFS='-:'
|
||||||
|
+ set -- $cipher
|
||||||
|
+ IFS=$_OLD_IFS
|
||||||
|
+ # try to load the cipher part with "crypto-" prepended
|
||||||
|
+ # in non-hostonly mode
|
||||||
|
+ hostonly= instmods $(for k in "$@"; do echo "crypto-$k";done)
|
||||||
|
+ fi
|
||||||
|
+ done
|
||||||
|
+ }
|
||||||
|
+ return 0
|
||||||
|
}
|
||||||
|
|
||||||
|
# called by dracut
|
||||||
|
|
24
0047.patch
Normal file
24
0047.patch
Normal file
@ -0,0 +1,24 @@
|
|||||||
|
From c6a2ebffe5812bf45a17d90208d9bb1044b6dba0 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Harald Hoyer <harald@redhat.com>
|
||||||
|
Date: Thu, 30 Apr 2020 20:42:27 +0200
|
||||||
|
Subject: [PATCH] 90kernel-modules/module-setup.sh: add sg kernel module
|
||||||
|
|
||||||
|
Fixes udevd messages about failure of `modprobe -bv sg`.
|
||||||
|
---
|
||||||
|
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 28d291eb..b3aa75f3 100755
|
||||||
|
--- a/modules.d/90kernel-modules/module-setup.sh
|
||||||
|
+++ b/modules.d/90kernel-modules/module-setup.sh
|
||||||
|
@@ -25,7 +25,7 @@ installkernel() {
|
||||||
|
}
|
||||||
|
|
||||||
|
install_block_modules () {
|
||||||
|
- hostonly='' instmods sr_mod sd_mod scsi_dh ata_piix
|
||||||
|
+ hostonly='' instmods sg sr_mod sd_mod scsi_dh ata_piix
|
||||||
|
instmods \
|
||||||
|
scsi_dh_rdac scsi_dh_emc scsi_dh_alua \
|
||||||
|
=ide nvme vmd \
|
||||||
|
|
26
0048.patch
Normal file
26
0048.patch
Normal file
@ -0,0 +1,26 @@
|
|||||||
|
From cb9e6881dde7ec34e11f6f38727602d6d841a04f Mon Sep 17 00:00:00 2001
|
||||||
|
From: Derek Hageman <hageman@inthat.cloud>
|
||||||
|
Date: Thu, 30 Apr 2020 18:40:13 -0600
|
||||||
|
Subject: [PATCH] 90crypt/module-setup.sh: fix force on multiple lines
|
||||||
|
|
||||||
|
The first line in crypttab with a "force" option causes all subsequent
|
||||||
|
lines to be included as if they also had it set because the variable
|
||||||
|
used to track it is not reset between loop iterations. So fix that by
|
||||||
|
just setting it to empty before the check for the force option.
|
||||||
|
---
|
||||||
|
modules.d/90crypt/module-setup.sh | 1 +
|
||||||
|
1 file changed, 1 insertion(+)
|
||||||
|
|
||||||
|
diff --git a/modules.d/90crypt/module-setup.sh b/modules.d/90crypt/module-setup.sh
|
||||||
|
index 3bce2411..e3d6338f 100755
|
||||||
|
--- a/modules.d/90crypt/module-setup.sh
|
||||||
|
+++ b/modules.d/90crypt/module-setup.sh
|
||||||
|
@@ -113,6 +113,7 @@ install() {
|
||||||
|
set -- ${luksoptions}
|
||||||
|
IFS="${OLD_IFS}"
|
||||||
|
|
||||||
|
+ forceentry=""
|
||||||
|
while [ $# -gt 0 ]; do
|
||||||
|
case $1 in
|
||||||
|
force)
|
||||||
|
|
25
0049.patch
Normal file
25
0049.patch
Normal file
@ -0,0 +1,25 @@
|
|||||||
|
From 32dfd41688a0a2aee59a62dd661c808a935d91a4 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Fabian Vogt <fvogt@suse.de>
|
||||||
|
Date: Mon, 4 May 2020 10:09:07 +0200
|
||||||
|
Subject: [PATCH] Fix test in lsinitrd
|
||||||
|
|
||||||
|
If $uefi is empty, this evaluated to true previously,
|
||||||
|
resulting in "initrd in UEFI: : 13M".
|
||||||
|
---
|
||||||
|
lsinitrd.sh | 2 +-
|
||||||
|
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||||
|
|
||||||
|
diff --git a/lsinitrd.sh b/lsinitrd.sh
|
||||||
|
index b5c73f62..ea0c7f62 100755
|
||||||
|
--- a/lsinitrd.sh
|
||||||
|
+++ b/lsinitrd.sh
|
||||||
|
@@ -206,7 +206,7 @@ if [ "$bin" = "MZ" ]; then
|
||||||
|
fi
|
||||||
|
|
||||||
|
if (( ${#filenames[@]} <= 0 )) && [[ -z "$unpack" ]] && [[ -z "$unpackearly" ]]; then
|
||||||
|
- if [ -n $uefi ]; then
|
||||||
|
+ if [ -n "$uefi" ]; then
|
||||||
|
echo -n "initrd in UEFI: $uefi: "
|
||||||
|
du -h $image | while read a b || [ -n "$a" ]; do echo $a;done
|
||||||
|
if [ -f "$TMPDIR/osrel.txt" ]; then
|
||||||
|
|
43
0050.patch
Normal file
43
0050.patch
Normal file
@ -0,0 +1,43 @@
|
|||||||
|
From ff366790a6e30175f243d54c2922a8c781030ede Mon Sep 17 00:00:00 2001
|
||||||
|
From: Javier Martinez Canillas <javierm@redhat.com>
|
||||||
|
Date: Tue, 5 May 2020 19:11:18 +0200
|
||||||
|
Subject: [PATCH] 51-dracut-rescue.install: Don't use BLS fragment shipped by
|
||||||
|
kernel package
|
||||||
|
|
||||||
|
For the GRUB and zipl bootloaders the BLS fragment that is shipped by the
|
||||||
|
kernel package is used, so the same fragment is used for the rescue entry.
|
||||||
|
|
||||||
|
But there are cases where this BLS fragment is not suitable. For example,
|
||||||
|
if the boot directory is on a btrfs subvolume the path in the linux and
|
||||||
|
initrd fiels need to be adjusted with the real path. Otherwise GRUB won't
|
||||||
|
be able to read them.
|
||||||
|
|
||||||
|
The GRUB and zipl kernel-install plugins already take care of this before
|
||||||
|
installing the BLS fragments, so just copy the installed fragment that has
|
||||||
|
the updated paths instead of using the BLS shipped by the kernel package.
|
||||||
|
|
||||||
|
Resolves: rhbz#1827882
|
||||||
|
|
||||||
|
Signed-off-by: Javier Martinez Canillas <javierm@redhat.com>
|
||||||
|
---
|
||||||
|
51-dracut-rescue.install | 6 +++++-
|
||||||
|
1 file changed, 5 insertions(+), 1 deletion(-)
|
||||||
|
|
||||||
|
diff --git a/51-dracut-rescue.install b/51-dracut-rescue.install
|
||||||
|
index b4ed1783..b2b3b9ef 100755
|
||||||
|
--- a/51-dracut-rescue.install
|
||||||
|
+++ b/51-dracut-rescue.install
|
||||||
|
@@ -106,7 +106,11 @@ case "$COMMAND" in
|
||||||
|
echo "initrd $BOOT_DIR/initrd"
|
||||||
|
} > $LOADER_ENTRY
|
||||||
|
else
|
||||||
|
- cp -aT "${KERNEL_IMAGE%/*}/bls.conf" $LOADER_ENTRY
|
||||||
|
+ if [[ -e "${BLS_DIR}/${MACHINE_ID}-${KERNEL_VERSION}.conf" ]]; then
|
||||||
|
+ cp -aT "${BLS_DIR}/${MACHINE_ID}-${KERNEL_VERSION}.conf" $LOADER_ENTRY
|
||||||
|
+ else
|
||||||
|
+ cp -aT "${KERNEL_IMAGE%/*}/bls.conf" $LOADER_ENTRY
|
||||||
|
+ fi
|
||||||
|
sed -i 's/'$KERNEL_VERSION'/0-rescue-'${MACHINE_ID}'/' $LOADER_ENTRY
|
||||||
|
fi
|
||||||
|
|
||||||
|
|
25
0051.patch
Normal file
25
0051.patch
Normal file
@ -0,0 +1,25 @@
|
|||||||
|
From 1ec7b694b55c70d06f262a96c320709b70d20bcb Mon Sep 17 00:00:00 2001
|
||||||
|
From: =?UTF-8?q?Tomasz=20Pawe=C5=82=20Gajc?= <tpgxyz@gmail.com>
|
||||||
|
Date: Mon, 11 May 2020 14:49:06 +0200
|
||||||
|
Subject: [PATCH] install dependant libs too
|
||||||
|
|
||||||
|
By default rng-tools are compiled with pkcs11 support.
|
||||||
|
Make sure opensc-pkcs11.so library is installed inside initramfs to prevent error on boot
|
||||||
|
---
|
||||||
|
modules.d/06rngd/module-setup.sh | 2 ++
|
||||||
|
1 file changed, 2 insertions(+)
|
||||||
|
|
||||||
|
diff --git a/modules.d/06rngd/module-setup.sh b/modules.d/06rngd/module-setup.sh
|
||||||
|
index 354bd0bb..f07a0cb9 100644
|
||||||
|
--- a/modules.d/06rngd/module-setup.sh
|
||||||
|
+++ b/modules.d/06rngd/module-setup.sh
|
||||||
|
@@ -33,6 +33,8 @@ check() {
|
||||||
|
install() {
|
||||||
|
inst rngd
|
||||||
|
inst_simple "${moddir}/rngd.service" "${systemdsystemunitdir}/rngd.service"
|
||||||
|
+ # make sure dependant libs are installed too
|
||||||
|
+ inst_libdir_file opensc-pkcs11.so
|
||||||
|
|
||||||
|
systemctl -q --root "$initdir" add-wants sysinit.target rngd.service
|
||||||
|
}
|
||||||
|
|
34
0052.patch
Normal file
34
0052.patch
Normal file
@ -0,0 +1,34 @@
|
|||||||
|
From 424f01e2a0ac0b329e68eb63048cf0d6d9c74d37 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Kairui Song <kasong@redhat.com>
|
||||||
|
Date: Wed, 27 May 2020 22:07:37 +0800
|
||||||
|
Subject: [PATCH] 99memstrack: hook script should not call exit
|
||||||
|
|
||||||
|
With memstrack module, rd.break may not work because the hook scripts
|
||||||
|
are sourced, not executed, so the exit call will make pre-pivot queue
|
||||||
|
exit early. See 98dracut-systemd/dracut-pre-pivot.sh, everything after
|
||||||
|
"source_hook cleanup" will be ignored.
|
||||||
|
|
||||||
|
Replace with return instead.
|
||||||
|
|
||||||
|
Credits go to Lukas Nykryn <lnykryn@redhat.com> who helped discover and
|
||||||
|
debug this issue.
|
||||||
|
|
||||||
|
Signed-off-by: Kairui Song <kasong@redhat.com>
|
||||||
|
---
|
||||||
|
modules.d/99memstrack/memstrack-report.sh | 2 +-
|
||||||
|
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||||
|
|
||||||
|
diff --git a/modules.d/99memstrack/memstrack-report.sh b/modules.d/99memstrack/memstrack-report.sh
|
||||||
|
index 241e8621..3de55bd1 100755
|
||||||
|
--- a/modules.d/99memstrack/memstrack-report.sh
|
||||||
|
+++ b/modules.d/99memstrack/memstrack-report.sh
|
||||||
|
@@ -2,7 +2,7 @@
|
||||||
|
. /lib/dracut-lib.sh
|
||||||
|
|
||||||
|
if ! [ "$DEBUG_MEM_LEVEL" -ge 4 ]; then
|
||||||
|
- exit 0
|
||||||
|
+ return 0
|
||||||
|
fi
|
||||||
|
|
||||||
|
if type -P systemctl >/dev/null; then
|
||||||
|
|
39
0053.patch
Normal file
39
0053.patch
Normal file
@ -0,0 +1,39 @@
|
|||||||
|
From 2a611328652388b809a379403ceec126cb55819f Mon Sep 17 00:00:00 2001
|
||||||
|
From: Kairui Song <kasong@redhat.com>
|
||||||
|
Date: Wed, 27 May 2020 21:59:55 +0800
|
||||||
|
Subject: [PATCH] Remove cleanup_trace_mem calls
|
||||||
|
|
||||||
|
In commit 49c4172 all shell based memory tracing functions are removed,
|
||||||
|
there are some left over. Remove them as well.
|
||||||
|
|
||||||
|
Signed-off-by: Kairui Song <kasong@redhat.com>
|
||||||
|
---
|
||||||
|
modules.d/98dracut-systemd/dracut-pre-pivot.sh | 1 -
|
||||||
|
modules.d/99base/init.sh | 1 -
|
||||||
|
2 files changed, 2 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/modules.d/98dracut-systemd/dracut-pre-pivot.sh b/modules.d/98dracut-systemd/dracut-pre-pivot.sh
|
||||||
|
index 96e6f8ca..cc70e3c3 100755
|
||||||
|
--- a/modules.d/98dracut-systemd/dracut-pre-pivot.sh
|
||||||
|
+++ b/modules.d/98dracut-systemd/dracut-pre-pivot.sh
|
||||||
|
@@ -14,7 +14,6 @@ make_trace_mem "hook pre-pivot" '1:shortmem' '2+:mem' '3+:slab'
|
||||||
|
getarg 'rd.break=pre-pivot' 'rdbreak=pre-pivot' && emergency_shell -n pre-pivot "Break pre-pivot"
|
||||||
|
source_hook pre-pivot
|
||||||
|
|
||||||
|
-cleanup_trace_mem
|
||||||
|
# pre pivot cleanup scripts are sourced just before we switch over to the new root.
|
||||||
|
getarg 'rd.break=cleanup' 'rdbreak=cleanup' && emergency_shell -n cleanup "Break cleanup"
|
||||||
|
source_hook cleanup
|
||||||
|
diff --git a/modules.d/99base/init.sh b/modules.d/99base/init.sh
|
||||||
|
index 148ce831..f70a811e 100755
|
||||||
|
--- a/modules.d/99base/init.sh
|
||||||
|
+++ b/modules.d/99base/init.sh
|
||||||
|
@@ -271,7 +271,6 @@ getarg 'rd.break=pre-pivot' -d 'rdbreak=pre-pivot' && emergency_shell -n pre-piv
|
||||||
|
source_hook pre-pivot
|
||||||
|
|
||||||
|
make_trace_mem "hook cleanup" '1:shortmem' '2+:mem' '3+:slab'
|
||||||
|
-cleanup_trace_mem
|
||||||
|
# pre pivot cleanup scripts are sourced just before we switch over to the new root.
|
||||||
|
getarg 'rd.break=cleanup' -d 'rdbreak=cleanup' && emergency_shell -n cleanup "Break cleanup"
|
||||||
|
source_hook cleanup
|
||||||
|
|
60
0054.patch
Normal file
60
0054.patch
Normal file
@ -0,0 +1,60 @@
|
|||||||
|
From f769154bccf22d2b5caf5e4888f88bf7edde2662 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Alexander Tsoy <alexander@tsoy.me>
|
||||||
|
Date: Mon, 25 May 2020 19:02:05 +0300
|
||||||
|
Subject: [PATCH] dracut-functions: fix find_binary() to return full path
|
||||||
|
|
||||||
|
Fixes: a01204202b30 (Allow running on a cross-compiled rootfs)
|
||||||
|
---
|
||||||
|
dracut-functions.sh | 21 +++++++++++++--------
|
||||||
|
1 file changed, 13 insertions(+), 8 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/dracut-functions.sh b/dracut-functions.sh
|
||||||
|
index 3cb9c7af..b5c28248 100755
|
||||||
|
--- a/dracut-functions.sh
|
||||||
|
+++ b/dracut-functions.sh
|
||||||
|
@@ -41,31 +41,36 @@ str_ends() { [ "${1%*"$2"}" != "$1" ]; }
|
||||||
|
# search in the usual places to find the binary.
|
||||||
|
find_binary() {
|
||||||
|
local _delim
|
||||||
|
+ local _path
|
||||||
|
local l
|
||||||
|
local p
|
||||||
|
[[ -z ${1##/*} ]] || _delim="/"
|
||||||
|
|
||||||
|
if [[ "$1" == *.so* ]]; then
|
||||||
|
for l in libdirs ; do
|
||||||
|
- if { $DRACUT_LDD "$dracutsysrootdir$l$_delim$1" &>/dev/null; }; then
|
||||||
|
- printf "%s\n" "$1"
|
||||||
|
+ _path="${l}${_delim}${1}"
|
||||||
|
+ if { $DRACUT_LDD "${dracutsysrootdir}${_path}" &>/dev/null; }; then
|
||||||
|
+ printf "%s\n" "${_path}"
|
||||||
|
return 0
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
- if { $DRACUT_LDD "$dracutsysrootdir$_delim$1" &>/dev/null; }; then
|
||||||
|
- printf "%s\n" "$1"
|
||||||
|
+ _path="${_delim}${1}"
|
||||||
|
+ if { $DRACUT_LDD "${dracutsysrootdir}${_path}" &>/dev/null; }; then
|
||||||
|
+ printf "%s\n" "${_path}"
|
||||||
|
return 0
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
if [[ "$1" == */* ]]; then
|
||||||
|
- if [[ -L $dracutsysrootdir$_delim$1 ]] || [[ -x $dracutsysrootdir$_delim$1 ]]; then
|
||||||
|
- printf "%s\n" "$1"
|
||||||
|
+ _path="${_delim}${1}"
|
||||||
|
+ if [[ -L ${dracutsysrootdir}${_path} ]] || [[ -x ${dracutsysrootdir}${_path} ]]; then
|
||||||
|
+ printf "%s\n" "${_path}"
|
||||||
|
return 0
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
for p in $DRACUT_PATH ; do
|
||||||
|
- if [[ -L $dracutsysrootdir$p$_delim$1 ]] || [[ -x $dracutsysrootdir$p$_delim$1 ]]; then
|
||||||
|
- printf "%s\n" "$1"
|
||||||
|
+ _path="${p}${_delim}${1}"
|
||||||
|
+ if [[ -L ${dracutsysrootdir}${_path} ]] || [[ -x ${dracutsysrootdir}${_path} ]]; then
|
||||||
|
+ printf "%s\n" "${_path}"
|
||||||
|
return 0
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
|
38
0055.patch
Normal file
38
0055.patch
Normal file
@ -0,0 +1,38 @@
|
|||||||
|
From 50cc23ba32b0fda63eff7623b529dbeb4e6a38c6 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Alexander Tsoy <alexander@tsoy.me>
|
||||||
|
Date: Mon, 25 May 2020 17:49:20 +0300
|
||||||
|
Subject: [PATCH] busybox: simplify listing of supported utilities
|
||||||
|
|
||||||
|
'--list' option is supported since busybox-1.20.0, which was released
|
||||||
|
in 2010.
|
||||||
|
---
|
||||||
|
modules.d/05busybox/module-setup.sh | 11 ++++++-----
|
||||||
|
1 file changed, 6 insertions(+), 5 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/modules.d/05busybox/module-setup.sh b/modules.d/05busybox/module-setup.sh
|
||||||
|
index ecbd6a13..5d88c5d1 100755
|
||||||
|
--- a/modules.d/05busybox/module-setup.sh
|
||||||
|
+++ b/modules.d/05busybox/module-setup.sh
|
||||||
|
@@ -14,15 +14,16 @@ depends() {
|
||||||
|
|
||||||
|
# called by dracut
|
||||||
|
install() {
|
||||||
|
- local _i _progs _path _busybox
|
||||||
|
+ local _i _path _busybox
|
||||||
|
+ local _progs=()
|
||||||
|
_busybox=$(type -P busybox)
|
||||||
|
inst $_busybox /usr/bin/busybox
|
||||||
|
- for _i in $($_busybox | sed -ne '1,/Currently/!{s/,//g; s/busybox//g; p}')
|
||||||
|
- do
|
||||||
|
- _progs="$_progs $_i"
|
||||||
|
+ for _i in $($_busybox --list); do
|
||||||
|
+ [[ ${_i} == busybox ]] && continue
|
||||||
|
+ _progs+=("${_i}")
|
||||||
|
done
|
||||||
|
|
||||||
|
- for _i in $_progs; do
|
||||||
|
+ for _i in "${_progs[@]}"; do
|
||||||
|
_path=$(find_binary "$_i")
|
||||||
|
[ -z "$_path" ] && continue
|
||||||
|
ln_r /usr/bin/busybox $_path
|
||||||
|
|
52
0056.patch
Normal file
52
0056.patch
Normal file
@ -0,0 +1,52 @@
|
|||||||
|
From b448655ba7cf46d25cbc2845e30ec559a487fc1e Mon Sep 17 00:00:00 2001
|
||||||
|
From: Harald Hoyer <harald@redhat.com>
|
||||||
|
Date: Fri, 29 May 2020 10:30:26 +0200
|
||||||
|
Subject: [PATCH] CI: remove Fedora 30, add Fedora 32
|
||||||
|
|
||||||
|
---
|
||||||
|
.github/workflows/{fedora-30.yml => fedora-32.yml} | 10 ++++++++--
|
||||||
|
1 file changed, 8 insertions(+), 2 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/.github/workflows/fedora-30.yml b/.github/workflows/fedora-32.yml
|
||||||
|
similarity index 84%
|
||||||
|
rename from .github/workflows/fedora-30.yml
|
||||||
|
rename to .github/workflows/fedora-32.yml
|
||||||
|
index 1a3d3e8d..589bf176 100644
|
||||||
|
--- a/.github/workflows/fedora-30.yml
|
||||||
|
+++ b/.github/workflows/fedora-32.yml
|
||||||
|
@@ -1,6 +1,6 @@
|
||||||
|
## The test container is created with https://github.com/dracutdevs/fedora-container
|
||||||
|
|
||||||
|
-name: Fedora-30
|
||||||
|
+name: Fedora-32
|
||||||
|
|
||||||
|
on:
|
||||||
|
push:
|
||||||
|
@@ -14,7 +14,7 @@ jobs:
|
||||||
|
test:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
container:
|
||||||
|
- image: quay.io/haraldh/dracut-fedora:30
|
||||||
|
+ image: quay.io/haraldh/dracut-fedora:32
|
||||||
|
options: "--privileged"
|
||||||
|
timeout-minutes: 45
|
||||||
|
strategy:
|
||||||
|
@@ -32,11 +32,17 @@ jobs:
|
||||||
|
"15",
|
||||||
|
"17",
|
||||||
|
"20",
|
||||||
|
+ "21",
|
||||||
|
"30",
|
||||||
|
+ "31",
|
||||||
|
"35",
|
||||||
|
+ "36",
|
||||||
|
"40",
|
||||||
|
+ "41",
|
||||||
|
"50",
|
||||||
|
+ "51",
|
||||||
|
"60",
|
||||||
|
+ "61",
|
||||||
|
"99",
|
||||||
|
]
|
||||||
|
fail-fast: false
|
||||||
|
|
34
0057.patch
Normal file
34
0057.patch
Normal file
@ -0,0 +1,34 @@
|
|||||||
|
From c800d1a7b943f8ca86b9756fbaa4cd2a5644ad44 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Harald Hoyer <harald@redhat.com>
|
||||||
|
Date: Fri, 29 May 2020 10:49:47 +0200
|
||||||
|
Subject: [PATCH] dracut.cmdline.7.asc: clarify usage of `rd.lvm.vg` and
|
||||||
|
`rd.lvm.lv`
|
||||||
|
|
||||||
|
Fixes: https://github.com/dracutdevs/dracut/issues/816
|
||||||
|
---
|
||||||
|
dracut.cmdline.7.asc | 10 +++++-----
|
||||||
|
1 file changed, 5 insertions(+), 5 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/dracut.cmdline.7.asc b/dracut.cmdline.7.asc
|
||||||
|
index 4d4970c8..751f5276 100644
|
||||||
|
--- a/dracut.cmdline.7.asc
|
||||||
|
+++ b/dracut.cmdline.7.asc
|
||||||
|
@@ -281,12 +281,12 @@ LVM
|
||||||
|
disable LVM detection
|
||||||
|
|
||||||
|
**rd.lvm.vg=**__<volume group name>__::
|
||||||
|
- only activate the volume groups with the given name. rd.lvm.vg can be
|
||||||
|
- specified multiple times on the kernel command line.
|
||||||
|
+ only activate all logical volumes in the the volume groups with the given name.
|
||||||
|
+ rd.lvm.vg can be specified multiple times on the kernel command line.
|
||||||
|
|
||||||
|
-**rd.lvm.lv=**__<logical volume name>__::
|
||||||
|
- only activate the logical volumes with the given name. rd.lvm.lv can be
|
||||||
|
- specified multiple times on the kernel command line.
|
||||||
|
+**rd.lvm.lv=**__<volume group name>/<logical volume name>__::
|
||||||
|
+ only activate the logical volumes with the given name.
|
||||||
|
+ rd.lvm.lv can be specified multiple times on the kernel command line.
|
||||||
|
|
||||||
|
**rd.lvm.conf=0**::
|
||||||
|
remove any _/etc/lvm/lvm.conf_, which may exist in the initramfs
|
||||||
|
|
31
0058.patch
Normal file
31
0058.patch
Normal file
@ -0,0 +1,31 @@
|
|||||||
|
From 7169e5f0e43cdc9a0bdc93de33f3404d8c461acd Mon Sep 17 00:00:00 2001
|
||||||
|
From: Harald Hoyer <harald@redhat.com>
|
||||||
|
Date: Fri, 29 May 2020 11:03:19 +0200
|
||||||
|
Subject: [PATCH] dracut.conf.5.asc: document how to config --no-compress in
|
||||||
|
the config
|
||||||
|
|
||||||
|
Fixes: https://github.com/dracutdevs/dracut/issues/824
|
||||||
|
---
|
||||||
|
dracut.conf.5.asc | 3 ++-
|
||||||
|
1 file changed, 2 insertions(+), 1 deletion(-)
|
||||||
|
|
||||||
|
diff --git a/dracut.conf.5.asc b/dracut.conf.5.asc
|
||||||
|
index 937f5423..f206f2f7 100644
|
||||||
|
--- a/dracut.conf.5.asc
|
||||||
|
+++ b/dracut.conf.5.asc
|
||||||
|
@@ -80,12 +80,13 @@ Configuration files must have the extension .conf; other extensions are ignored.
|
||||||
|
Specify additional files to include in the initramfs, separated by spaces,
|
||||||
|
if they exist.
|
||||||
|
|
||||||
|
-*compress=*"__{bzip2|lzma|xz|gzip|lzo|lz4|zstd|<compressor [args ...]>}__"::
|
||||||
|
+*compress=*"__{cat|bzip2|lzma|xz|gzip|lzo|lz4|zstd|<compressor [args ...]>}__"::
|
||||||
|
Compress the generated initramfs using the passed compression program. If
|
||||||
|
you pass it just the name of a compression program, it will call that
|
||||||
|
program with known-working arguments. If you pass arguments, it will be called
|
||||||
|
with exactly those arguments. Depending on what you pass, this may result in
|
||||||
|
an initramfs that the kernel cannot decompress.
|
||||||
|
+ To disable compression, use "cat".
|
||||||
|
|
||||||
|
*do_strip=*"__{yes|no}__"::
|
||||||
|
Strip binaries in the initramfs (default=yes)
|
||||||
|
|
38
0059.patch
Normal file
38
0059.patch
Normal file
@ -0,0 +1,38 @@
|
|||||||
|
From eb770a4a207b2e9e3080068c1df22b69ed44d4b5 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Beniamino Galvani <bgalvani@redhat.com>
|
||||||
|
Date: Thu, 7 May 2020 07:48:12 +0200
|
||||||
|
Subject: [PATCH] network-manager: set kernel hostname from the command line
|
||||||
|
|
||||||
|
Since commit ff70adf873ef ("initrd: save hostname to a file in /run"),
|
||||||
|
the initrd generator of NetworkManager parses the hostname from 'ip='
|
||||||
|
options of the kernel command line and writes it to
|
||||||
|
/run/NetworkManager/initrd/hostname.
|
||||||
|
|
||||||
|
When that file exists, set the kernel hostname.
|
||||||
|
|
||||||
|
In presence of multiple hostnames in the command line, the last one
|
||||||
|
wins. Hostnames from command line always have precedence over ones
|
||||||
|
received through DHCP. This is a bit different from the legacy network
|
||||||
|
module that gives higher precedence to the hostname (from DHCP or
|
||||||
|
command line) of the last interface that is brought up, which depends
|
||||||
|
on the udev order.
|
||||||
|
---
|
||||||
|
modules.d/35network-manager/nm-run.sh | 4 ++++
|
||||||
|
1 file changed, 4 insertions(+)
|
||||||
|
|
||||||
|
diff --git a/modules.d/35network-manager/nm-run.sh b/modules.d/35network-manager/nm-run.sh
|
||||||
|
index fc5280a1..61752384 100755
|
||||||
|
--- a/modules.d/35network-manager/nm-run.sh
|
||||||
|
+++ b/modules.d/35network-manager/nm-run.sh
|
||||||
|
@@ -10,6 +10,10 @@ for i in /usr/lib/NetworkManager/system-connections/* \
|
||||||
|
else
|
||||||
|
/usr/sbin/NetworkManager --configure-and-quit=initrd --no-daemon
|
||||||
|
fi
|
||||||
|
+
|
||||||
|
+ if [ -s /run/NetworkManager/initrd/hostname ]; then
|
||||||
|
+ cat /run/NetworkManager/initrd/hostname > /proc/sys/kernel/hostname
|
||||||
|
+ fi
|
||||||
|
break
|
||||||
|
done
|
||||||
|
|
||||||
|
|
59
0060.patch
Normal file
59
0060.patch
Normal file
@ -0,0 +1,59 @@
|
|||||||
|
From 871d63c3be529cee2c2bd868750eda121ece46dc Mon Sep 17 00:00:00 2001
|
||||||
|
From: Harald Hoyer <harald@redhat.com>
|
||||||
|
Date: Fri, 29 May 2020 14:43:57 +0200
|
||||||
|
Subject: [PATCH] Fix CI badges in README.md and fix dracut description
|
||||||
|
|
||||||
|
While fixing the CI badges, I removed some old crufty README text.
|
||||||
|
---
|
||||||
|
README.md | 11 ++++-------
|
||||||
|
dracut.spec | 2 +-
|
||||||
|
2 files changed, 5 insertions(+), 8 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/README.md b/README.md
|
||||||
|
index 9948bf97..0ab54ea6 100644
|
||||||
|
--- a/README.md
|
||||||
|
+++ b/README.md
|
||||||
|
@@ -4,15 +4,15 @@ dracut
|
||||||
|
dracut is an event driven initramfs infrastructure.
|
||||||
|
|
||||||
|
[![Build Status](https://travis-ci.org/dracutdevs/dracut.svg?branch=master)](https://travis-ci.org/dracutdevs/dracut)
|
||||||
|
-[![Fedora-30](https://github.com/dracutdevs/dracut/workflows/Fedora-30/badge.svg?branch=master)](https://github.com/dracutdevs/dracut/actions?query=workflow%3AFedora-30)
|
||||||
|
[![Fedora-31](https://github.com/dracutdevs/dracut/workflows/Fedora-31/badge.svg?branch=master)](https://github.com/dracutdevs/dracut/actions?query=workflow%3AFedora-31)
|
||||||
|
+[![Fedora-32](https://github.com/dracutdevs/dracut/workflows/Fedora-32/badge.svg?branch=master)](https://github.com/dracutdevs/dracut/actions?query=workflow%3AFedora-32)
|
||||||
|
|
||||||
|
dracut (the tool) is used to create an initramfs image by copying tools
|
||||||
|
and files from an installed system and combining it with the
|
||||||
|
dracut framework, usually found in /usr/lib/dracut/modules.d.
|
||||||
|
|
||||||
|
-Unlike existing initramfs's, this is an attempt at having as little as
|
||||||
|
-possible hard-coded into the initramfs as possible. The initramfs has
|
||||||
|
+Unlike other implementations, dracut hard-codes as little
|
||||||
|
+as possible into the initramfs. The initramfs has
|
||||||
|
(basically) one purpose in life -- getting the rootfs mounted so that
|
||||||
|
we can transition to the real rootfs. This is all driven off of
|
||||||
|
device availability. Therefore, instead of scripts hard-coded to do
|
||||||
|
@@ -20,10 +20,7 @@ various things, we depend on udev to create device nodes for us and
|
||||||
|
then when we have the rootfs's device node, we mount and carry on.
|
||||||
|
This helps to keep the time required in the initramfs as little as
|
||||||
|
possible so that things like a 5 second boot aren't made impossible as
|
||||||
|
-a result of the very existence of an initramfs. It's likely that
|
||||||
|
-we'll grow some hooks for running arbitrary commands in the flow of
|
||||||
|
-the script, but it's worth trying to resist the urge as much as we can
|
||||||
|
-as hooks are guaranteed to be the path to slow-down.
|
||||||
|
+a result of the very existence of an initramfs.
|
||||||
|
|
||||||
|
Most of the initramfs generation functionality in dracut is provided by a bunch
|
||||||
|
of generator modules that are sourced by the main dracut script to install
|
||||||
|
diff --git a/dracut.spec b/dracut.spec
|
||||||
|
index 1eb47402..4d1cb7a4 100644
|
||||||
|
--- a/dracut.spec
|
||||||
|
+++ b/dracut.spec
|
||||||
|
@@ -99,7 +99,7 @@ Requires: libkcapi-hmaccalc
|
||||||
|
|
||||||
|
%description
|
||||||
|
dracut contains tools to create bootable initramfses for the Linux
|
||||||
|
-kernel. Unlike previous implementations, dracut hard-codes as little
|
||||||
|
+kernel. Unlike other implementations, dracut hard-codes as little
|
||||||
|
as possible into the initramfs. dracut contains various modules which
|
||||||
|
are driven by the event-based udev. Having root on MD, DM, LVM2, LUKS
|
||||||
|
is supported as well as NFS, iSCSI, NBD, FCoE with the dracut-network
|
44
dracut.spec
44
dracut.spec
@ -5,7 +5,7 @@
|
|||||||
# strip the automatically generated dep here and instead co-own the
|
# strip the automatically generated dep here and instead co-own the
|
||||||
# directory.
|
# directory.
|
||||||
%global __requires_exclude pkg-config
|
%global __requires_exclude pkg-config
|
||||||
%define dist_free_release 26.git20200316
|
%define dist_free_release 61.git20200529
|
||||||
|
|
||||||
Name: dracut
|
Name: dracut
|
||||||
Version: 050
|
Version: 050
|
||||||
@ -53,6 +53,41 @@ Patch22: 0022.patch
|
|||||||
Patch23: 0023.patch
|
Patch23: 0023.patch
|
||||||
Patch24: 0024.patch
|
Patch24: 0024.patch
|
||||||
Patch25: 0025.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
|
||||||
|
|
||||||
Source1: https://www.gnu.org/licenses/lgpl-2.1.txt
|
Source1: https://www.gnu.org/licenses/lgpl-2.1.txt
|
||||||
|
|
||||||
@ -103,6 +138,7 @@ Requires: xz
|
|||||||
Requires: gzip
|
Requires: gzip
|
||||||
|
|
||||||
%if 0%{?fedora} || 0%{?rhel}
|
%if 0%{?fedora} || 0%{?rhel}
|
||||||
|
Recommends: memstrack
|
||||||
Recommends: hardlink
|
Recommends: hardlink
|
||||||
Recommends: pigz
|
Recommends: pigz
|
||||||
Recommends: kpartx
|
Recommends: kpartx
|
||||||
@ -124,7 +160,7 @@ Requires: libkcapi-hmaccalc
|
|||||||
|
|
||||||
%description
|
%description
|
||||||
dracut contains tools to create bootable initramfses for the Linux
|
dracut contains tools to create bootable initramfses for the Linux
|
||||||
kernel. Unlike previous implementations, dracut hard-codes as little
|
kernel. Unlike other implementations, dracut hard-codes as little
|
||||||
as possible into the initramfs. dracut contains various modules which
|
as possible into the initramfs. dracut contains various modules which
|
||||||
are driven by the event-based udev. Having root on MD, DM, LVM2, LUKS
|
are driven by the event-based udev. Having root on MD, DM, LVM2, LUKS
|
||||||
is supported as well as NFS, iSCSI, NBD, FCoE with the dracut-network
|
is supported as well as NFS, iSCSI, NBD, FCoE with the dracut-network
|
||||||
@ -429,6 +465,7 @@ install -m 0755 51-dracut-rescue-postinst.sh $RPM_BUILD_ROOT%{_sysconfdir}/kerne
|
|||||||
%{dracutlibdir}/modules.d/98syslog
|
%{dracutlibdir}/modules.d/98syslog
|
||||||
%{dracutlibdir}/modules.d/98usrmount
|
%{dracutlibdir}/modules.d/98usrmount
|
||||||
%{dracutlibdir}/modules.d/99base
|
%{dracutlibdir}/modules.d/99base
|
||||||
|
%{dracutlibdir}/modules.d/99memstrack
|
||||||
%{dracutlibdir}/modules.d/99fs-lib
|
%{dracutlibdir}/modules.d/99fs-lib
|
||||||
%{dracutlibdir}/modules.d/99shutdown
|
%{dracutlibdir}/modules.d/99shutdown
|
||||||
%attr(0644,root,root) %ghost %config(missingok,noreplace) %{_localstatedir}/log/dracut.log
|
%attr(0644,root,root) %ghost %config(missingok,noreplace) %{_localstatedir}/log/dracut.log
|
||||||
@ -507,6 +544,9 @@ install -m 0755 51-dracut-rescue-postinst.sh $RPM_BUILD_ROOT%{_sysconfdir}/kerne
|
|||||||
%endif
|
%endif
|
||||||
|
|
||||||
%changelog
|
%changelog
|
||||||
|
* Fri May 29 2020 Harald Hoyer <harald@redhat.com> - 050-61.git20200529
|
||||||
|
- git snapshot
|
||||||
|
|
||||||
* Mon Mar 16 2020 Harald Hoyer <harald@redhat.com> - 050-26.git20200316
|
* Mon Mar 16 2020 Harald Hoyer <harald@redhat.com> - 050-26.git20200316
|
||||||
- fixed `--tmpdir` mishandling
|
- fixed `--tmpdir` mishandling
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user