Debian Patches

Status for dracut/112-2

Patch Description Author Forwarded Bugs Origin Last update
fix-multipath-include-Debian-specific-priority-of-udev-ru.patch fix(multipath): include Debian-specific priority of udev rules
In Debian multipath-tools 0.13.0-1 carries
0004-Debian-specific-priority-of-udev-rules.patch which changes the
priority of udev rules with following reasoning:

11-dm-*.rules supposedly should apply after dmsetup rules, but in Debian
these have priority 55 instead of 11. Also for historic reasons,
multipath.rules and kpartx.rules have a slightly higher prio in Debian
than upstream.

The result is that kpartx is not run when booting, multipath disk
partitions are not found, and boot fails.

Until Debian/Ubuntu and upstream agrees on one common naming, include
the renumbered udev rules (similar to what has been done in the dm and
lvm Dracut modules).
Benjamin Drung <benjamin.drung@canonical.com> not-needed 2026-02-23
fix-net-lib-normalize-iSCSI-target-names-on-the-iqn.-eui..patch fix(net-lib): normalize iSCSI target names on the iqn./eui./naa. path

Commit 843af3e751782285cd2bc7c9a3a9d33e843fb91d added a
`normalized_iscsi_name()` call at the end of `parse_iscsi_root()`, but that
statement is only reachable via the legacy positional parsing path. When the
target name is matched by the `*:iqn.*` / `*:eui.*` / `*:naa.*` case statement,
the function returns before the normalization is ever applied.

Follow-up for 843af3e751782285cd2bc7c9a3a9d33e843fb91d
Antonio Alvarez Feijoo <antonio.feijoo@suse.com> no upstream, https://github.com/dracut-ng/dracut/commit/da39dde8f5f49a8a068b5fadb71d932fdf0712de 2026-08-03
fix-iscsi-do-not-source-the-boot-time-net-lib.sh-into-mod.patch fix(iscsi): do not source the boot-time net-lib.sh into module-setup.sh

That sources all of net-lib.sh into dracut.sh, not just the one function that
is wanted. net-lib.sh defines `iface_for_remote_addr()`, which is also defined
in dracut-functions.sh with a different implementation, so the boot-time version
silently replaces it for the rest of the run. The version in dracut-functions.sh
parses `ip -o route get` and prints nothing when the route has no dev token;
the version in net-lib.sh parses `ip route get` and prints the last field
unconditionally, so an unreachable route yields the literal string "unreachable"
as an interface name. `ip_params_for_remote_addr()` then builds a bogus `ip=`
line from it.

Usually boot-time libraries are not sourced into the generator, helpers on both
sides are duplicated instead, e.g.: `iface_for_remote_addr()`.

Fixes 843af3e751782285cd2bc7c9a3a9d33e843fb91d
Antonio Alvarez Feijoo <antonio.feijoo@suse.com> no upstream, https://github.com/dracut-ng/dracut/commit/e7db0f18807a4a29fc99b23e89408f30e515a11c 2026-08-03
fix-iscsi-normalize-the-target-name-in-the-generated-netr.patch fix(iscsi): normalize the target name in the generated netroot=
Commit 843af3e751782285cd2bc7c9a3a9d33e843fb91d normalized `rd.iscsi.initiator=`
but left the target name in the `netroot=` line on the next line unnormalized,
even though both come from the same sysfs session directory and are subject to
the same RFC 3722 rules.

Follow-up for 843af3e751782285cd2bc7c9a3a9d33e843fb91d
Antonio Alvarez Feijoo <antonio.feijoo@suse.com> no upstream, https://github.com/dracut-ng/dracut/commit/48f8b0263ffdf6e0ccbd529c7a5676de9da92972 2026-08-03
fix-dracut-remove-globbing-does-not-work.patch fix(dracut): --remove globbing does not work
The glob pattern is quoted in the call to `rm`, so it does not expand.

E.g.:

```
$ dracut -f --remove "/etc/udev/rules.d/*.rules" test.img
$ lsinitrd test.img | grep etc/udev/rules.d
drwxr-xr-x 1 root root 0 Aug 4 14:06 etc/udev/rules.d
-rw-r--r-- 1 root root 297 Jul 22 08:10 etc/udev/rules.d/59-persistent-storage.rules
-rw-r--r-- 1 root root 1030 Jul 22 08:10 etc/udev/rules.d/61-persistent-storage.rules
```

Fixes f8dfe3ee5b958262c38a821b15443893e400dba0
Antonio Alvarez Feijoo <antonio.feijoo@suse.com> no upstream, https://github.com/dracut-ng/dracut/commit/c000b3fd7327f2814bc0e3c9a0c2c3254bcbee73 2026-08-04
fix-dracut-remove-allows-removing-files-from-the-host-fil.patch fix(dracut): --remove allows removing files from the host filesystem
The dracut temporary directory is under /var/tmp/dracut.???????/initramfs, so
using ".." specifiers in the path allows escaping from it.

E.g.:

```
$ mkdir /hostdir && ls -l /hostdir
total 0
$ dracut -f --remove "../../../../hostdir" test.img
$ ls -l /hostdir
```

Fixes f8dfe3ee5b958262c38a821b15443893e400dba0
Antonio Alvarez Feijoo <antonio.feijoo@suse.com> no upstream, https://github.com/dracut-ng/dracut/commit/1abc4e0594aaeadf364774db9eb343d1ccd3572b 2026-08-04
refactor-net-lib-use-strip_non_digits-to-validate-iSCSI-L.patch refactor(net-lib): use strip_non_digits() to validate iSCSI LUN parameters

This function is a generalization of `_validate_iscsi_lun()`. It checks if the
first argument contains only digits; otherwise, it removes any non-digit
characters and prints a warning message.
Antonio Alvarez Feijoo <antonio.feijoo@suse.com> no upstream, https://github.com/dracut-ng/dracut/commit/b4f5fe23003dfc7f11449ccdd3b67cc115fbb029 2026-08-06
fix-net-lib-validate-iSCSI-port-parameters.patch fix(net-lib): validate iSCSI port parameters
Similar to 05c02db994ca322371a40695a3cc223faa1c7258, the iSCSI port is a number.
Validate that given ports are numbers.
Antonio Alvarez Feijoo <antonio.feijoo@suse.com> no upstream, https://github.com/dracut-ng/dracut/commit/c8bf7dc5428f0db589e7a73a0114fbb89cd957fa 2026-08-06
fix-dracut-systemd-actually-make-rd.break-pre-trigger-sto.patch fix(dracut-systemd): actually make rd.break=pre-trigger stop before pre-trigger

Currently, pre-trigger hooks are sourced before the breakpoint, not after. It's
the only `rd.break` option with this behavior, even all the non-systemd
breakpoints defined in 80base/init.sh work as intended.

Follow-up for 22137f9cac5ceb1a1d0ff8c5cab3d7bb8b582e33
Antonio Alvarez Feijoo <antonio.feijoo@suse.com> no upstream, https://github.com/dracut-ng/dracut/commit/a122c1fcac9f27d3f8a59f405a8b667430397f7f 2026-08-07
fix-base-sanitize-message-written-by-die-to-the-emergency.patch fix(base): sanitize message written by die() to the emergency hook
It is possible that not all messages passed to `die()` are trusted. E.g.,
netroot.sh calls:

```
die "No handler for netroot type '$netroot'"
```

The value of `$netroot` can be taken from the DHCP root-path option; that would
be safe thanks to previous fixes that escape DHCP values before writing them to
dhclient's dhcpopts files.

But, it may also be taken directly from the `netroot=` kernel command line
option, allowing any type of characters.

Use the `escape()` helper and single-quote the message instead, which is the
safe usage documented for escape().
Antonio Alvarez Feijoo <antonio.feijoo@suse.com> no upstream, https://github.com/dracut-ng/dracut/commit/c4d555716d569038ca38365741e94ee07908f261 2026-08-10
fix-iscsi-sanitize-netroot-value-passed-to-initqueue-scri.patch fix(iscsi): sanitize netroot= value passed to initqueue scripts
The value of the `netroot=` kernel command line option is passed unsanitized to
initqueue scripts, which end up being sourced as shell scripts.
Antonio Alvarez Feijoo <antonio.feijoo@suse.com> no upstream, https://github.com/dracut-ng/dracut/commit/6b290cf10b9bddd441b07fd5bfe19e19e88fcd76 2026-08-10
refactor-devicetree-firmware-make-looping-over-fw_dir-top.patch refactor(devicetree-firmware): make looping over fw_dir top-level loop

Make the looping over $fw_dir the top-level loop. This is a preparation
patch for adding support to install_generic() to add soc specific
firmwares (qcom/<soc>/qupv3fw.elf).
Hans de Goede <johannes.goede@oss.qualcomm.com> no upstream, https://github.com/dracut-ng/dracut/commit/3df545238141f2e93a7d6469958e6c1896a8fdf2 2026-08-16
fix-devicetree-firmware-include-soc-specific-firmwares-in.patch fix(devicetree-firmware): include soc specific firmwares in install_generic()

Qualcomm boards may use SoC specific firmwares from an otherwise generic
driver like qcom-geni-se. Which firmware to load is specified with
a firmware-name devicetree-property, so install_hostonly() already picks
these up.

Make install_generic() also include these in the initramfs by explicitly
searching for them similar to how this is already done for Qualcomm laptop
model specific firmwares.
Hans de Goede <johannes.goede@oss.qualcomm.com> no upstream, https://github.com/dracut-ng/dracut/commit/48e66eada503033c4d9e6fcd6f195a40f5610c30 2026-08-16
fix-devicetree-firmware-include-Qualcomm-X2-laptop-model-.patch fix(devicetree-firmware): include Qualcomm X2 laptop model specific firmwares

Qualcomm laptops typically have laptop model specific firmwares.

Extend install_generic() to pick up the laptop model specific firmwares
for the new X2 / Glymur laptops which have a filename pattern of:
<fwdir>/qcom/glymur/<vendor>/<model>/*.[mbn|elf]
Hans de Goede <johannes.goede@oss.qualcomm.com> no upstream, https://github.com/dracut-ng/dracut/commit/911aeed0a2bc2c59fcd62f47cf6a1cb7354f08b1 2026-08-16
fix-dracut-disable-hostonly-cmdline-by-default-in-contain.patch fix(dracut): disable hostonly-cmdline by default in container
Disable hostonly-cmdline by default in hostonly mode when container
detected.

Follow-up to 67d8287 .
devkontrol <dev@kontrol.dev> no upstream, https://github.com/dracut-ng/dracut/commit/1a32e7fe51af63e79a8b8835839f6d5844f28db1 2026-08-11
fix-lsinitrd-do-no-sort-cpio-output-if-not-needed.patch fix(lsinitrd): do no sort cpio output if not needed
lsinitrd will try to sort the cpio output by the file which is normally
key 9, but this is not the case for special files. Therefore special
files are shown first:

```
drwxr-xr-x 2 root root 0 Aug 19 15:31 .
crw-r--r-- 1 root root 5, 1 Aug 19 15:31 dev/console
crw-r--r-- 1 root root 1, 11 Aug 19 15:31 dev/kmsg
crw-r--r-- 1 root root 1, 3 Aug 19 15:31 dev/null
crw-r--r-- 1 root root 1, 8 Aug 19 15:31 dev/random
crw-r--r-- 1 root root 1, 9 Aug 19 15:31 dev/urandom
lrwxrwxrwx 1 root root 7 Aug 19 15:31 bin -> usr/bin
drwxr-xr-x 2 root root 0 Aug 19 15:31 dev
drwxr-xr-x 2 root root 0 Aug 19 15:31 etc
[...]
```

This sorting is confusing and not needed in the normal case. Normally
the content of the cpio is already sorted. So removing the sorting. Then
the output is in correct order:

```
drwxr-xr-x 2 root root 0 Aug 19 15:31 .
lrwxrwxrwx 1 root root 7 Aug 19 15:31 bin -> usr/bin
drwxr-xr-x 2 root root 0 Aug 19 15:31 dev
crw-r--r-- 1 root root 5, 1 Aug 19 15:31 dev/console
crw-r--r-- 1 root root 1, 11 Aug 19 15:31 dev/kmsg
crw-r--r-- 1 root root 1, 3 Aug 19 15:31 dev/null
crw-r--r-- 1 root root 1, 8 Aug 19 15:31 dev/random
crw-r--r-- 1 root root 1, 9 Aug 19 15:31 dev/urandom
drwxr-xr-x 2 root root 0 Aug 19 15:31 etc
[...]
```
Benjamin Drung <benjamin.drung@canonical.com> no upstream, https://github.com/dracut-ng/dracut/commit/8aff42bafa89f6f6a549a78cd2f018033b354c4e 2026-08-20
feat-Makefile-switch-from-gnu99-to-gnu11-by-default.patch feat(Makefile): switch from gnu99 to gnu11 by default
Switch from `gnu99` to `gnu11` by default because this will be needed
for `static_assert`.
Benjamin Drung <benjamin.drung@canonical.com> no upstream, https://github.com/dracut-ng/dracut/commit/00c62abecd1cfe77789bf8ddf77e17e26a72ab57 2026-08-20
feat-add-extractinitrd.patch feat: add extractinitrd
Add an `extractinitrd` helper command. This will allow simplifying
`lsinitrd` and will make `skipcpio` obsolete. The tool is based on
`unmkinitramfs` from Debian's initramfs-tools.
Benjamin Drung <benjamin.drung@canonical.com> no upstream, https://github.com/dracut-ng/dracut/commit/07ce5cfa66372c6e25bc08589040d18015e93943 2026-08-24
feat-lsinitrd-use-extractinitrd.patch feat(lsinitrd): use extractinitrd
Simplify the `lsinitrd` code by using the new `extractinitrd` helper
tool. Either `3cpio` or `extractinitrd` will be needed.
Benjamin Drung <benjamin.drung@canonical.com> no upstream, https://github.com/dracut-ng/dracut/commit/caba9a160918b9ecd06c3e627f77d3d9aea7afc5 2026-08-24
refactor-dracut-initramfs-restore-add-extract_initrd.patch refactor(dracut-initramfs-restore): add extract_initrd
Add a `extract_initrd` function to make it easier to add support for
3cpio.
Benjamin Drung <benjamin.drung@canonical.com> no upstream, https://github.com/dracut-ng/dracut/commit/30802ca29987f090d8c14de358728dbe5c66c376 2026-08-24
feat-dracut-initramfs-restore-support-3cpio.patch feat(dracut-initramfs-restore): support 3cpio
Support using `3cpio` in `dracut-initramfs-restore` if available.
Benjamin Drung <benjamin.drung@canonical.com> no upstream, https://github.com/dracut-ng/dracut/commit/8b683e6a60d4f37790e0d44b2c1c41c4a186545a 2026-08-24
feat-dracut-initramfs-restore-use-extractinitrd.patch feat(dracut-initramfs-restore): use extractinitrd
Simplify the `dracut-initramfs-restore` code by using the new
`extractinitrd` helper tool. Either `3cpio` or `extractinitrd` will be
needed.
Benjamin Drung <benjamin.drung@canonical.com> no upstream, https://github.com/dracut-ng/dracut/commit/83873dc72d6b44ee0db141b6e97cb341d3d898cc 2026-08-24
chore-remove-skipcpio.patch chore: remove skipcpio
The helper command `skipcpio` has been replaced by `extractcpio` and is
not used anywhere anymore.
Benjamin Drung <benjamin.drung@canonical.com> no upstream, https://github.com/dracut-ng/dracut/commit/adf8329557fd8542d2287132f496d6f74c76261c 2026-08-24
feat-put-compressed-kernel-modules-and-firmware-in-an-unc.patch feat: put compressed kernel modules and firmware in an uncompressed cpio

Dracut compresses all files that are put into the initramfs. Kernel
modules and firmware files might already be compressed. Compressing
those files will not give any size savings.

So put compressed kernel modules and firmware files in an uncompressed
cpio instead. This will speed up the initrd generation and extraction
without a significant size change of the initrd.

See
https://salsa.debian.org/kernel-team/initramfs-tools/-/merge_requests/128
and https://lists.ubuntu.com/archives/ubuntu-devel/2023-July/042707.html
for a similar change in initramfs-tools.
Benjamin Drung <benjamin.drung@canonical.com> no upstream, https://github.com/dracut-ng/dracut/commit/5004ba20b02bacc320d05d2f571738727cd119d2 2026-08-25

All known versions for source package 'dracut'

Links