From mboxrd@z Thu Jan 1 00:00:00 1970 From: Michael Tremer To: development@lists.ipfire.org Subject: Re: [PATCH] dracut: Update to 056 Date: Fri, 04 Mar 2022 11:18:06 +0000 Message-ID: <6B002198-B5CC-45F5-8808-BAE5FCF5BAFE@ipfire.org> In-Reply-To: <6edae0df-4931-0b83-dcd3-cd22146e6074@ipfire.org> MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="===============2968248403779244405==" List-Id: --===============2968248403779244405== Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Hello Peter, Did you actually get a system booted with an initramdisk generated by this? I believe that we were stuck on the latest version of dracut that didn=E2=80= =99t too deeply integrate systemd. Since we are on sysvinit, I have no idea h= ow usable modern versions of dracut would be for us. -Michael > On 3 Mar 2022, at 21:22, Peter M=C3=BCller wro= te: >=20 > This one was desperately in need of an upgrade, as dracut 038 was > released 8 YEARS ago. Hence, the changelog since is way too long to > include it here; refer to https://git.kernel.org/pub/scm/boot/dracut/dracut= .git/tree/NEWS.md > for details. >=20 > See also: #12773 >=20 > Signed-off-by: Peter M=C3=BCller > --- > config/rootfiles/common/dracut | 111 +++++++++++++++++- > lfs/dracut | 11 +- > .../dracut-038-always-enable-mdraid.patch | 55 --------- > ...38_add_hyperv-keyboard_and_sdhci-pci.patch | 12 -- > .../dracut-056-always-enable-mdraid.patch | 68 +++++++++++ > ...56_add_hyperv-keyboard_and_sdhci-pci.patch | 12 ++ > 6 files changed, 191 insertions(+), 78 deletions(-) > delete mode 100644 src/patches/dracut-038-always-enable-mdraid.patch > delete mode 100644 src/patches/dracut-038_add_hyperv-keyboard_and_sdhci-pci= .patch > create mode 100644 src/patches/dracut-056-always-enable-mdraid.patch > create mode 100644 src/patches/dracut-056_add_hyperv-keyboard_and_sdhci-pci= .patch >=20 > diff --git a/config/rootfiles/common/dracut b/config/rootfiles/common/dracut > index 03379b4d6..0d6009b5c 100644 > --- a/config/rootfiles/common/dracut > +++ b/config/rootfiles/common/dracut > @@ -3,18 +3,24 @@ etc/dracut.conf.d > usr/bin/dracut > usr/bin/dracut-catimages > usr/bin/lsinitrd > -usr/bin/mkinitrd > usr/lib/dracut > #usr/lib/dracut/dracut-functions > #usr/lib/dracut/dracut-functions.sh > +#usr/lib/dracut/dracut-init.sh > #usr/lib/dracut/dracut-initramfs-restore > #usr/lib/dracut/dracut-install > #usr/lib/dracut/dracut-logger.sh > +#usr/lib/dracut/dracut-util > #usr/lib/dracut/dracut-version.sh > #usr/lib/dracut/dracut.conf.d > #usr/lib/dracut/modules.d > #usr/lib/dracut/modules.d/00bash > #usr/lib/dracut/modules.d/00bash/module-setup.sh > +#usr/lib/dracut/modules.d/00mksh > +#usr/lib/dracut/modules.d/00mksh/module-setup.sh > +#usr/lib/dracut/modules.d/00warpclock > +#usr/lib/dracut/modules.d/00warpclock/module-setup.sh > +#usr/lib/dracut/modules.d/00warpclock/warpclock.sh > #usr/lib/dracut/modules.d/02caps > #usr/lib/dracut/modules.d/02caps/README > #usr/lib/dracut/modules.d/02caps/caps.sh > @@ -22,26 +28,77 @@ usr/lib/dracut > #usr/lib/dracut/modules.d/03rescue > #usr/lib/dracut/modules.d/03rescue/module-setup.sh > #usr/lib/dracut/modules.d/04watchdog > +#usr/lib/dracut/modules.d/04watchdog-modules > +#usr/lib/dracut/modules.d/04watchdog-modules/module-setup.sh > #usr/lib/dracut/modules.d/04watchdog/module-setup.sh > #usr/lib/dracut/modules.d/04watchdog/watchdog-stop.sh > #usr/lib/dracut/modules.d/04watchdog/watchdog.sh > +#usr/lib/dracut/modules.d/06dbus-broker > +#usr/lib/dracut/modules.d/06dbus-broker/module-setup.sh > +#usr/lib/dracut/modules.d/06dbus-daemon > +#usr/lib/dracut/modules.d/06dbus-daemon/module-setup.sh > +#usr/lib/dracut/modules.d/06rngd > +#usr/lib/dracut/modules.d/06rngd/module-setup.sh > +#usr/lib/dracut/modules.d/06rngd/rngd.service > +#usr/lib/dracut/modules.d/09dbus > +#usr/lib/dracut/modules.d/09dbus/module-setup.sh > #usr/lib/dracut/modules.d/10i18n > #usr/lib/dracut/modules.d/10i18n/10-console.rules > #usr/lib/dracut/modules.d/10i18n/README > #usr/lib/dracut/modules.d/10i18n/console_init.sh > #usr/lib/dracut/modules.d/10i18n/module-setup.sh > #usr/lib/dracut/modules.d/10i18n/parse-i18n.sh > +#usr/lib/dracut/modules.d/35network-legacy > +#usr/lib/dracut/modules.d/35network-legacy/dhclient-script.sh > +#usr/lib/dracut/modules.d/35network-legacy/dhclient.conf > +#usr/lib/dracut/modules.d/35network-legacy/dhcp-multi.sh > +#usr/lib/dracut/modules.d/35network-legacy/ifup.sh > +#usr/lib/dracut/modules.d/35network-legacy/kill-dhclient.sh > +#usr/lib/dracut/modules.d/35network-legacy/module-setup.sh > +#usr/lib/dracut/modules.d/35network-legacy/net-genrules.sh > +#usr/lib/dracut/modules.d/35network-legacy/parse-bond.sh > +#usr/lib/dracut/modules.d/35network-legacy/parse-bridge.sh > +#usr/lib/dracut/modules.d/35network-legacy/parse-ibft.sh > +#usr/lib/dracut/modules.d/35network-legacy/parse-ifname.sh > +#usr/lib/dracut/modules.d/35network-legacy/parse-ip-opts.sh > +#usr/lib/dracut/modules.d/35network-legacy/parse-team.sh > +#usr/lib/dracut/modules.d/35network-legacy/parse-vlan.sh > +#usr/lib/dracut/modules.d/35network-manager > +#usr/lib/dracut/modules.d/35network-manager/initrd-no-auto-default.conf > +#usr/lib/dracut/modules.d/35network-manager/module-setup.sh > +#usr/lib/dracut/modules.d/35network-manager/nm-config.sh > +#usr/lib/dracut/modules.d/35network-manager/nm-initrd.service > +#usr/lib/dracut/modules.d/35network-manager/nm-lib.sh > +#usr/lib/dracut/modules.d/35network-manager/nm-run.sh > +#usr/lib/dracut/modules.d/35network-manager/nm-wait-online-initrd.service > +#usr/lib/dracut/modules.d/35network-wicked > +#usr/lib/dracut/modules.d/35network-wicked/module-setup.sh > +#usr/lib/dracut/modules.d/35network-wicked/wicked-config.sh > +#usr/lib/dracut/modules.d/35network-wicked/wicked-run.sh > #usr/lib/dracut/modules.d/50drm > #usr/lib/dracut/modules.d/50drm/module-setup.sh > +#usr/lib/dracut/modules.d/62bluetooth > +#usr/lib/dracut/modules.d/62bluetooth/module-setup.sh > +#usr/lib/dracut/modules.d/80lvmmerge > +#usr/lib/dracut/modules.d/80lvmmerge/README.md > +#usr/lib/dracut/modules.d/80lvmmerge/lvmmerge.sh > +#usr/lib/dracut/modules.d/80lvmmerge/module-setup.sh > +#usr/lib/dracut/modules.d/81cio_ignore > +#usr/lib/dracut/modules.d/81cio_ignore/module-setup.sh > +#usr/lib/dracut/modules.d/81cio_ignore/parse-cio_accept.sh > +#usr/lib/dracut/modules.d/90dmsquash-live-ntfs > +#usr/lib/dracut/modules.d/90dmsquash-live-ntfs/module-setup.sh > #usr/lib/dracut/modules.d/90kernel-modules > +#usr/lib/dracut/modules.d/90kernel-modules-extra > +#usr/lib/dracut/modules.d/90kernel-modules-extra/module-setup.sh > #usr/lib/dracut/modules.d/90kernel-modules/insmodpost.sh > #usr/lib/dracut/modules.d/90kernel-modules/module-setup.sh > #usr/lib/dracut/modules.d/90kernel-modules/parse-kernel.sh > +#usr/lib/dracut/modules.d/90kernel-network-modules > +#usr/lib/dracut/modules.d/90kernel-network-modules/module-setup.sh > #usr/lib/dracut/modules.d/90mdraid > #usr/lib/dracut/modules.d/90mdraid/59-persistent-storage-md.rules > #usr/lib/dracut/modules.d/90mdraid/65-md-incremental-imsm.rules > -#usr/lib/dracut/modules.d/90mdraid/md-noddf.sh > -#usr/lib/dracut/modules.d/90mdraid/md-noimsm.sh > #usr/lib/dracut/modules.d/90mdraid/md-shutdown.sh > #usr/lib/dracut/modules.d/90mdraid/mdmon-pre-shutdown.sh > #usr/lib/dracut/modules.d/90mdraid/mdmon-pre-udev.sh > @@ -51,11 +108,45 @@ usr/lib/dracut > #usr/lib/dracut/modules.d/90mdraid/mdraid_start.sh > #usr/lib/dracut/modules.d/90mdraid/module-setup.sh > #usr/lib/dracut/modules.d/90mdraid/parse-md.sh > +#usr/lib/dracut/modules.d/90nvdimm > +#usr/lib/dracut/modules.d/90nvdimm/module-setup.sh > +#usr/lib/dracut/modules.d/90ppcmac > +#usr/lib/dracut/modules.d/90ppcmac/load-thermal.sh > +#usr/lib/dracut/modules.d/90ppcmac/module-setup.sh > +#usr/lib/dracut/modules.d/91fido2 > +#usr/lib/dracut/modules.d/91fido2/module-setup.sh > +#usr/lib/dracut/modules.d/91pcsc > +#usr/lib/dracut/modules.d/91pcsc/module-setup.sh > +#usr/lib/dracut/modules.d/91pcsc/pcscd.service > +#usr/lib/dracut/modules.d/91pcsc/pcscd.socket > +#usr/lib/dracut/modules.d/91pkcs11 > +#usr/lib/dracut/modules.d/91pkcs11/module-setup.sh > +#usr/lib/dracut/modules.d/91tpm2-tss > +#usr/lib/dracut/modules.d/91tpm2-tss/module-setup.sh > +#usr/lib/dracut/modules.d/91zipl > +#usr/lib/dracut/modules.d/91zipl/install_zipl_cmdline.sh > +#usr/lib/dracut/modules.d/91zipl/module-setup.sh > +#usr/lib/dracut/modules.d/91zipl/parse-zipl.sh > +#usr/lib/dracut/modules.d/95dcssblk > +#usr/lib/dracut/modules.d/95dcssblk/module-setup.sh > +#usr/lib/dracut/modules.d/95dcssblk/parse-dcssblk.sh > #usr/lib/dracut/modules.d/95debug > #usr/lib/dracut/modules.d/95debug/module-setup.sh > #usr/lib/dracut/modules.d/95fstab-sys > #usr/lib/dracut/modules.d/95fstab-sys/module-setup.sh > #usr/lib/dracut/modules.d/95fstab-sys/mount-sys.sh > +#usr/lib/dracut/modules.d/95lunmask > +#usr/lib/dracut/modules.d/95lunmask/fc_transport_scan_lun.sh > +#usr/lib/dracut/modules.d/95lunmask/module-setup.sh > +#usr/lib/dracut/modules.d/95lunmask/parse-lunmask.sh > +#usr/lib/dracut/modules.d/95lunmask/sas_transport_scan_lun.sh > +#usr/lib/dracut/modules.d/95nvmf > +#usr/lib/dracut/modules.d/95nvmf/95-nvmf-initqueue.rules > +#usr/lib/dracut/modules.d/95nvmf/module-setup.sh > +#usr/lib/dracut/modules.d/95nvmf/nvmf-autoconnect.sh > +#usr/lib/dracut/modules.d/95nvmf/parse-nvmf-boot-connections.sh > +#usr/lib/dracut/modules.d/95qeth_rules > +#usr/lib/dracut/modules.d/95qeth_rules/module-setup.sh > #usr/lib/dracut/modules.d/95rootfs-block > #usr/lib/dracut/modules.d/95rootfs-block/block-genrules.sh > #usr/lib/dracut/modules.d/95rootfs-block/module-setup.sh > @@ -76,6 +167,7 @@ usr/lib/dracut > #usr/lib/dracut/modules.d/98integrity > #usr/lib/dracut/modules.d/98integrity/README > #usr/lib/dracut/modules.d/98integrity/evm-enable.sh > +#usr/lib/dracut/modules.d/98integrity/ima-keys-load.sh > #usr/lib/dracut/modules.d/98integrity/ima-policy-load.sh > #usr/lib/dracut/modules.d/98integrity/module-setup.sh > #usr/lib/dracut/modules.d/98pollcdrom > @@ -89,8 +181,8 @@ usr/lib/dracut > #usr/lib/dracut/modules.d/98syslog/rsyslogd-start.sh > #usr/lib/dracut/modules.d/98syslog/rsyslogd-stop.sh > #usr/lib/dracut/modules.d/98syslog/syslog-cleanup.sh > -#usr/lib/dracut/modules.d/98syslog/syslog-genrules.sh > #usr/lib/dracut/modules.d/99base > +#usr/lib/dracut/modules.d/99base/dracut-dev-lib.sh > #usr/lib/dracut/modules.d/99base/dracut-lib.sh > #usr/lib/dracut/modules.d/99base/init.sh > #usr/lib/dracut/modules.d/99base/initqueue.sh > @@ -104,9 +196,17 @@ usr/lib/dracut > #usr/lib/dracut/modules.d/99img-lib > #usr/lib/dracut/modules.d/99img-lib/img-lib.sh > #usr/lib/dracut/modules.d/99img-lib/module-setup.sh > +#usr/lib/dracut/modules.d/99memstrack > +#usr/lib/dracut/modules.d/99memstrack/memstrack-report.sh > +#usr/lib/dracut/modules.d/99memstrack/memstrack-start.sh > +#usr/lib/dracut/modules.d/99memstrack/memstrack.service > +#usr/lib/dracut/modules.d/99memstrack/module-setup.sh > #usr/lib/dracut/modules.d/99shutdown > #usr/lib/dracut/modules.d/99shutdown/module-setup.sh > #usr/lib/dracut/modules.d/99shutdown/shutdown.sh > +#usr/lib/dracut/modules.d/99squash > +#usr/lib/dracut/modules.d/99squash/init-squash.sh > +#usr/lib/dracut/modules.d/99squash/module-setup.sh > #usr/lib/dracut/skipcpio > #usr/lib/kernel > #usr/lib/kernel/install.d > @@ -130,5 +230,4 @@ usr/lib/dracut > #usr/share/man/man8/dracut-pre-udev.service.8 > #usr/share/man/man8/dracut-shutdown.service.8 > #usr/share/man/man8/dracut.8 > -#usr/share/man/man8/mkinitrd-suse.8 > -#usr/share/man/man8/mkinitrd.8 > +#usr/share/pkgconfig/dracut.pc > diff --git a/lfs/dracut b/lfs/dracut > index c4f7231b1..6bf5825a6 100644 > --- a/lfs/dracut > +++ b/lfs/dracut > @@ -1,7 +1,7 @@ > ###########################################################################= #### > # = # > # IPFire.org - A linux based firewall = # > -# Copyright (C) 2007-2018 IPFire Team = # > +# Copyright (C) 2007-2022 IPFire Team = # > # = # > # This program is free software: you can redistribute it and/or modify = # > # it under the terms of the GNU General Public License as published by = # > @@ -24,7 +24,7 @@ >=20 > include Config >=20 > -VER =3D 038 > +VER =3D 056 >=20 > THISAPP =3D dracut-$(VER) > DL_FILE =3D $(THISAPP).tar.xz > @@ -40,7 +40,7 @@ objects =3D $(DL_FILE) >=20 > $(DL_FILE) =3D $(DL_FROM)/$(DL_FILE) >=20 > -$(DL_FILE)_MD5 =3D 4487bd98000cc536c5c3839a2f112831 > +$(DL_FILE)_MD5 =3D 17d51f3ccc3a3a790bab6da0355ca4c2 >=20 > install : $(TARGET) >=20 > @@ -70,9 +70,10 @@ $(subst %,%_MD5,$(objects)) : > $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) > @$(PREBUILD) > @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar axf $(DIR_DL)/$(DL_FILE) > - cd $(DIR_APP) && patch -Np1 -i $(DIR_SRC)/src/patches/dracut-038-always-e= nable-mdraid.patch > - cd $(DIR_APP) && patch -Np1 -i $(DIR_SRC)/src/patches/dracut-038_add_hype= rv-keyboard_and_sdhci-pci.patch > + cd $(DIR_APP) && patch -Np1 -i $(DIR_SRC)/src/patches/dracut-056-always-e= nable-mdraid.patch > + cd $(DIR_APP) && patch -Np1 -i $(DIR_SRC)/src/patches/dracut-056_add_hype= rv-keyboard_and_sdhci-pci.patch >=20 > + cd $(DIR_APP) && ./configure --prefix=3D/usr --sbindir=3D/sbin --sysconfd= ir=3D/etc > cd $(DIR_APP) && make $(MAKETUNING) > cd $(DIR_APP) && make install sbindir=3D/sbin sysconfdir=3D/etc >=20 > diff --git a/src/patches/dracut-038-always-enable-mdraid.patch b/src/patche= s/dracut-038-always-enable-mdraid.patch > deleted file mode 100644 > index a65e59a8a..000000000 > --- a/src/patches/dracut-038-always-enable-mdraid.patch > +++ /dev/null > @@ -1,55 +0,0 @@ > -diff --git a/modules.d/90mdraid/parse-md.sh b/modules.d/90mdraid/parse-md.= sh > -index dd7bda2..7bc944c 100755 > ---- a/modules.d/90mdraid/parse-md.sh > -+++ b/modules.d/90mdraid/parse-md.sh > -@@ -4,32 +4,26 @@ > -=20 > - MD_UUID=3D$(getargs rd.md.uuid -d rd_MD_UUID=3D) > -=20 > --if ( ! [ -n "$MD_UUID" ] && ! getargbool 0 rd.auto ) || ! getargbool 1 rd= .md -d -n rd_NO_MD; then > -- info "rd.md=3D0: removing MD RAID activation" > -- udevproperty rd_NO_MD=3D1 > --else > -- # rewrite the md rules to only process the specified raid array > -- if [ -n "$MD_UUID" ]; then > -- for f in /etc/udev/rules.d/65-md-incremental*.rules; do > -- [ -e "$f" ] || continue > -- while read line; do > -- if [ "${line%%UUID CHECK}" !=3D "$line" ]; then > -- printf 'IMPORT{program}=3D"/sbin/mdadm --examine --ex= port $tempnode"\n' > -- for uuid in $MD_UUID; do > -- printf 'ENV{MD_UUID}=3D=3D"%s", GOTO=3D"md_uuid_o= k"\n' $uuid > -- done; > -- printf 'GOTO=3D"md_end"\n' > -- printf 'LABEL=3D"md_uuid_ok"\n' > -- else > -- echo "$line" > -- fi > -- done < "${f}" > "${f}.new" > -- mv "${f}.new" "$f" > -- done > -- fi > -+# rewrite the md rules to only process the specified raid array > -+if [ -n "$MD_UUID" ]; then > -+ for f in /etc/udev/rules.d/65-md-incremental*.rules; do > -+ [ -e "$f" ] || continue > -+ while read line; do > -+ if [ "${line%%UUID CHECK}" !=3D "$line" ]; then > -+ printf 'IMPORT{program}=3D"/sbin/mdadm --examine --export= $tempnode"\n' > -+ for uuid in $MD_UUID; do > -+ printf 'ENV{MD_UUID}=3D=3D"%s", GOTO=3D"md_uuid_ok"\n= ' $uuid > -+ done; > -+ printf 'GOTO=3D"md_end"\n' > -+ printf 'LABEL=3D"md_uuid_ok"\n' > -+ else > -+ echo "$line" > -+ fi > -+ done < "${f}" > "${f}.new" > -+ mv "${f}.new" "$f" > -+ done > - fi > -=20 > -- > - if [ -e /etc/mdadm.conf ] && getargbool 1 rd.md.conf -d -n rd_NO_MDADMCON= F; then > - udevproperty rd_MDADMCONF=3D1 > - rm -f -- $hookdir/pre-pivot/*mdraid-cleanup.sh > diff --git a/src/patches/dracut-038_add_hyperv-keyboard_and_sdhci-pci.patch= b/src/patches/dracut-038_add_hyperv-keyboard_and_sdhci-pci.patch > deleted file mode 100644 > index 19ed15fd3..000000000 > --- a/src/patches/dracut-038_add_hyperv-keyboard_and_sdhci-pci.patch > +++ /dev/null > @@ -1,12 +0,0 @@ > -diff -Naur dracut-038.org/modules.d/90kernel-modules/module-setup.sh dracu= t-038/modules.d/90kernel-modules/module-setup.sh > ---- dracut-038.org/modules.d/90kernel-modules/module-setup.sh 2014-06-30 1= 2:03:12.000000000 +0200 > -+++ dracut-038/modules.d/90kernel-modules/module-setup.sh 2015-05-05 14:58= :56.820197839 +0200 > -@@ -47,7 +47,7 @@ > - atkbd i8042 usbhid hid-apple hid-sunplus hid-cherry hid-logit= ech \ > - hid-logitech-dj hid-microsoft firewire-ohci \ > - pcmcia usb_storage nvme hid-hyperv hv-vmbus \ > -- sdhci_acpi > -+ hyperv-keyboard sdhci_acpi sdhci_pci > -=20 > - if [[ "$(uname -p)" =3D=3D arm* ]]; then > - # arm specific modules > diff --git a/src/patches/dracut-056-always-enable-mdraid.patch b/src/patche= s/dracut-056-always-enable-mdraid.patch > new file mode 100644 > index 000000000..f293a7f75 > --- /dev/null > +++ b/src/patches/dracut-056-always-enable-mdraid.patch > @@ -0,0 +1,68 @@ > +diff --git a/modules.d/90mdraid/parse-md.sh b/modules.d/90mdraid/parse-md.= sh > +index c75e5f70f..9be292d75 100755 > +--- a/modules.d/90mdraid/parse-md.sh > ++++ b/modules.d/90mdraid/parse-md.sh > +@@ -7,37 +7,32 @@ MD_UUID=3D$(getargs rd.md.uuid -d rd_MD_UUID=3D) > + MD_UUID=3D$(str_replace "$MD_UUID" "-" "") > + MD_UUID=3D$(str_replace "$MD_UUID" ":" "") > +=20 > +-if { [ -z "$MD_UUID" ] && ! getargbool 0 rd.auto; } || ! getargbool 1 rd.= md -d -n rd_NO_MD; then > +- info "rd.md=3D0: removing MD RAID activation" > +- udevproperty rd_NO_MD=3D1 > +-else > +- # rewrite the md rules to only process the specified raid array > +- if [ -n "$MD_UUID" ]; then > +- for f in /etc/udev/rules.d/65-md-incremental*.rules; do > +- [ -e "$f" ] || continue > +- while read -r line || [ -n "$line" ]; do > +- if [ "${line%%UUID CHECK}" !=3D "$line" ]; then > +- for uuid in $MD_UUID; do > +- printf 'ENV{ID_FS_UUID}=3D=3D"%s", GOTO=3D"md_uui= d_ok"\n' "$(expr substr "$uuid" 1 8)-$(expr substr "$uuid" 9 4)-$(expr substr= "$uuid" 13 4)-$(expr substr "$uuid" 17 4)-$(expr substr "$uuid" 21 12)" > +- done > +- # shellcheck disable=3DSC2016 > +- printf 'IMPORT{program}=3D"/sbin/mdadm --examine --ex= port $tempnode"\n' > +- for uuid in $MD_UUID; do > +- printf 'ENV{MD_UUID}=3D=3D"%s", GOTO=3D"md_uuid_o= k"\n' "$(expr substr "$uuid" 1 8):$(expr substr "$uuid" 9 8):$(expr substr "$= uuid" 17 8):$(expr substr "$uuid" 25 8)" > +- done > +- printf 'GOTO=3D"md_end"\n' > +- printf 'LABEL=3D"md_uuid_ok"\n' > +- else > +- echo "$line" > +- fi > +- done < "${f}" > "${f}.new" > +- mv "${f}.new" "$f" > +- done > +- for uuid in $MD_UUID; do > +- uuid=3D"$(expr substr "$uuid" 1 8):$(expr substr "$uuid" 9 8)= :$(expr substr "$uuid" 17 8):$(expr substr "$uuid" 25 8)" > +- wait_for_dev "/dev/disk/by-id/md-uuid-${uuid}" > +- done > +- fi > ++# rewrite the md rules to only process the specified raid array > ++if [ -n "$MD_UUID" ]; then > ++ for f in /etc/udev/rules.d/65-md-incremental*.rules; do > ++ [ -e "$f" ] || continue > ++ while read -r line || [ -n "$line" ]; do > ++ if [ "${line%%UUID CHECK}" !=3D "$line" ]; then > ++ for uuid in $MD_UUID; do > ++ printf 'ENV{ID_FS_UUID}=3D=3D"%s", GOTO=3D"md_uuid_ok= "\n' "$(expr substr "$uuid" 1 8)-$(expr substr "$uuid" 9 4)-$(expr substr "$u= uid" 13 4)-$(expr substr "$uuid" 17 4)-$(expr substr "$uuid" 21 12)" > ++ done > ++ # shellcheck disable=3DSC2016 > ++ printf 'IMPORT{program}=3D"/sbin/mdadm --examine --export= $tempnode"\n' > ++ for uuid in $MD_UUID; do > ++ printf 'ENV{MD_UUID}=3D=3D"%s", GOTO=3D"md_uuid_ok"\n= ' "$(expr substr "$uuid" 1 8):$(expr substr "$uuid" 9 8):$(expr substr "$uuid= " 17 8):$(expr substr "$uuid" 25 8)" > ++ done > ++ printf 'GOTO=3D"md_end"\n' > ++ printf 'LABEL=3D"md_uuid_ok"\n' > ++ else > ++ echo "$line" > ++ fi > ++ done < "${f}" > "${f}.new" > ++ mv "${f}.new" "$f" > ++ done > ++ for uuid in $MD_UUID; do > ++ uuid=3D"$(expr substr "$uuid" 1 8):$(expr substr "$uuid" 9 8):$(e= xpr substr "$uuid" 17 8):$(expr substr "$uuid" 25 8)" > ++ wait_for_dev "/dev/disk/by-id/md-uuid-${uuid}" > ++ done > + fi > +=20 > + if [ -e /etc/mdadm.conf ] && getargbool 1 rd.md.conf -d -n rd_NO_MDADMCON= F; then > diff --git a/src/patches/dracut-056_add_hyperv-keyboard_and_sdhci-pci.patch= b/src/patches/dracut-056_add_hyperv-keyboard_and_sdhci-pci.patch > new file mode 100644 > index 000000000..eb5e7c2f3 > --- /dev/null > +++ b/src/patches/dracut-056_add_hyperv-keyboard_and_sdhci-pci.patch > @@ -0,0 +1,12 @@ > +diff --git a/modules.d/90kernel-modules/module-setup.sh b/modules.d/90kern= el-modules/module-setup.sh > +index e2073a04f..7a96edb58 100755 > +--- a/modules.d/90kernel-modules/module-setup.sh > ++++ b/modules.d/90kernel-modules/module-setup.sh > +@@ -66,6 +66,7 @@ installkernel() { > + yenta_socket \ > + atkbd i8042 usbhid firewire-ohci pcmcia hv-vmbus \ > + virtio virtio_ring virtio_pci pci_hyperv \ > ++ hyperv-keyboard sdhci_acpi sdhci_pci \ > + "=3Ddrivers/pcmcia" > +=20 > + if [[ ${DRACUT_ARCH:-$(uname -m)} =3D=3D arm* || ${DRACUT_ARCH:-$= (uname -m)} =3D=3D aarch64 || ${DRACUT_ARCH:-$(uname -m)} =3D=3D riscv* ]]; t= hen > --=20 > 2.34.1 --===============2968248403779244405==--