Debian Patches
Status for dracut/112-6
| Patch | Description | Author | Forwarded | Bugs | Origin | Last update |
|---|---|---|---|---|---|---|
| fix-busybox-do-not-install-blkid-unconditionally.patch | fix(busybox): do not install blkid unconditionally The busybox `blkid` applet does not support the option `-o` and `-s`, but `blkid` is used with those options in `modules.d/70dmsquash-live-autooverlay/create-overlay.sh` and `modules.d/70dmsquash-live/dmsquash-live-root.sh`. So always exclude the `blkid` busybox applet. Part of: https://github.com/dracut-ng/dracut/issues/2437 |
Benjamin Drung <benjamin.drung@canonical.com> | no | upstream, https://github.com/dracut-ng/dracut/commit/059d602de0e48ce8acd83f03cec443be69ba6aa9 | 2026-09-05 | |
| feat-dracut-add-prefer-option.patch | feat(dracut): add --prefer option Add a `--prefer` option and a `prefer_dracutmodules` config option to specify Dracut modules that should be included if their preconditions are met. |
Benjamin Drung <benjamin.drung@canonical.com> | no | upstream, https://github.com/dracut-ng/dracut/commit/4b8c11c0590b546e37908968042eaf7c7d669b17 | 2026-09-03 | |
| feat-debian.conf-prefer-busybox.patch | feat(debian.conf): prefer busybox Include busybox on Debian/Ubuntu if available. This reduces the size of the initrd significantly. Some data for Ubuntu 26.04 LTS "resolute" using the current `ubuntu:rolling` container with a modified test 10. The data is collected with `ls -l` and `3cpio --examine`. ## Without plymouth An initrd without plymouth and without busybox uses 42.0 MB (42001866 bytes) when zstd compressed: ``` Start End Size Compr. Extracted 0 B 92.0 kB 92.0 kB cpio 91.1 kB 92.0 kB 17.3 MB 17.2 MB cpio 17.0 MB 17.3 MB 42.0 MB 24.7 MB zstd 77.9 MB ``` The same initrd with busybox needs only 37.9 MB (37861705 bytes) when zstd compressed: ``` Start End Size Compr. Extracted 0 B 92.0 kB 92.0 kB cpio 91.1 kB 92.0 kB 17.3 MB 17.2 MB cpio 17.0 MB 17.3 MB 37.9 MB 20.6 MB zstd 65.4 MB ``` So 4.1 MB (9.9 %) disk space is saved and 12.5 MB (16.0 %) memory after decompression is saved. ## With plymouth An initrd with plymouth and without busybox uses 49.5 MB (49493709 bytes) when zstd compressed: ``` Start End Size Compr. Extracted 0 B 92.0 kB 92.0 kB cpio 91.1 kB 92.0 kB 17.3 MB 17.2 MB cpio 17.1 MB 17.3 MB 49.5 MB 32.2 MB zstd 99.4 MB ``` The same initrd with busybox needs only 45.3 MB (45348147 bytes) when zstd compressed: ``` Start End Size Compr. Extracted 0 B 92.0 kB 92.0 kB cpio 91.1 kB 92.0 kB 17.3 MB 17.2 MB cpio 17.1 MB 17.3 MB 45.3 MB 28.0 MB zstd 86.9 MB ``` So 4.1 MB (8.4 %) disk space is saved and 12.5 MB (12.6 %) memory after decompression is saved. |
Benjamin Drung <benjamin.drung@canonical.com> | no | upstream, https://github.com/dracut-ng/dracut/commit/aa2229dc9e272029e7e98f95bec954d0a64fe697 | 2026-09-03 | |
| fix-nbd-use-usr-sbin-nbd-client-for-CONFIG_FEATURE_PREFER.patch | fix(nbd): use /usr/sbin/nbd-client for CONFIG_FEATURE_PREFER_APPLETS The busybox Dracut modules skips installing some incompatible applets. This workaround has no effect in case busybox was built with `CONFIG_FEATURE_PREFER_APPLETS`. The Debian/Ubuntu busybox-static package is built with that option. This causes the NBD test to fail: ``` $ TEST_CONTAINER_COMMAND="apt update && apt install --yes busybox-static" test/test.sh ubuntu:devel 72 [...] [ 1.345256] dracut-initqueue[634]: nbd-client: unrecognized option '-check' [ 1.346137] dracut-initqueue[634]: BusyBox v1.38.0 (Ubuntu 1:1.38.0-3ubuntu1) multi-call binary. [ 1.346719] dracut-initqueue[634]: Usage: nbd-client { [-b BLKSIZE] [-N NAME] [-t SEC] [-p] HOST [PORT] | -d } BLOCKDEV [ 1.347399] dracut-initqueue[634]: Connect to HOST and provide network block device on BLOCKDEV [ 1.348014] dracut-initqueue[635]: nbd-client: unrecognized option '-systemd-mark' [ 1.348493] dracut-initqueue[635]: BusyBox v1.38.0 (Ubuntu 1:1.38.0-3ubuntu1) multi-call binary. [ 1.349055] dracut-initqueue[635]: Usage: nbd-client { [-b BLKSIZE] [-N NAME] [-t SEC] [-p] HOST [PORT] | -d } BLOCKDEV [ 1.349710] dracut-initqueue[635]: Connect to HOST and provide network block device on BLOCKDEV ``` So use absolute paths for `nbd-client` to avoid using the applet when running shell code in busybox shell. Part of: https://github.com/dracut-ng/dracut/issues/2437 |
Benjamin Drung <benjamin.drung@canonical.com> | yes | debian | 2026-09-06 | |
| test-BUSYBOX-check-built-with-CONFIG_FEATURE_TR_CLASSES.patch | test(BUSYBOX): check built with CONFIG_FEATURE_TR_CLASSES Dracut uses code like `tr '[:upper:]' '[:lower:]'` that require the busybox feature `CONFIG_FEATURE_TR_CLASSES`. Instead of documenting this requirement somewhere, add a test case for it. See https://github.com/dracut-ng/dracut/issues/2687 |
Benjamin Drung <benjamin.drung@canonical.com> | no | upstream, https://github.com/dracut-ng/dracut/commit/7cc3a8e53ae7501c8bb21f21f9b6f54026d8b9a8 | 2026-09-07 | |
| 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 | |
| fix-znet-support-mktemp-applet-from-busybox-in-module-set.patch | fix(znet): support mktemp applet from busybox in module-setup.sh busybox's `mktemp` applet does not support the long form `--tmpdir` but it supports the short form `-p`. Part of: https://github.com/dracut-ng/dracut/issues/2437 |
Benjamin Drung <benjamin.drung@canonical.com> | no | upstream, https://github.com/dracut-ng/dracut/commit/dcbe20e146b570ac3bff80bbebccd2fca973879e | 2026-08-27 | |
| test-support-mktemp-applet-from-busybox.patch | test: support mktemp applet from busybox busybox's `mktemp` applet does not support the long form `--directory` but it supports the short form `-d`. Part of: https://github.com/dracut-ng/dracut/issues/2437 |
Benjamin Drung <benjamin.drung@canonical.com> | no | upstream, https://github.com/dracut-ng/dracut/commit/725caac7a27a4e3adc4abb262ed0e6635355a6c6 | 2026-08-27 | |
| 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-systemd-cryptsetup-support-grep-applet-from-busybox-i.patch | fix(systemd-cryptsetup): support grep applet from busybox in module-setup.sh busybox's `grep` applet does not support the Perl regexp `-P`. Use the extended regexp `-E` instead. This does not support the inline Perl `(?i)` flag. So make the entire pattern case-insensitive. Part of: https://github.com/dracut-ng/dracut/issues/2437 |
Benjamin Drung <benjamin.drung@canonical.com> | no | upstream, https://github.com/dracut-ng/dracut/commit/a2a8289052e9b94e1b28f945d65a4b3d9deb362f | 2026-08-26 | |
| fix-url-lib-support-grep-applet-from-busybox-in-module-se.patch | fix(url-lib): support grep applet from busybox in module-setup.sh busybox's `grep` applet does not support the long form `--binary-files=text` but it supports the short form `-a`. Part of: https://github.com/dracut-ng/dracut/issues/2437 |
Benjamin Drung <benjamin.drung@canonical.com> | no | upstream, https://github.com/dracut-ng/dracut/commit/40d0ea72223ffc19fe7d68389a5d07f13fc03930 | 2026-08-26 | |
| fix-dmsquash-live-autooverlay-support-grep-applet-from-bu.patch | fix(dmsquash-live-autooverlay): support grep applet from busybox busybox's `grep` applet does not support the long form `--count` but it supports the short form `-c`. Part of: https://github.com/dracut-ng/dracut/issues/2437 |
Benjamin Drung <benjamin.drung@canonical.com> | no | upstream, https://github.com/dracut-ng/dracut/commit/84d912fc9195a8e572daa2c5a63d359dee66e40c | 2026-08-26 | |
| 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 | |
| fix-shutdown-make-timeout-call-busybox-compatible.patch | fix(shutdown): make "timeout" call busybox-compatible Busybox' "timeout" does not support long-form "--signal". Use short "-s" instead. Part of: https://github.com/dracut-ng/dracut/issues/2437 |
Fiona Klute <fiona.klute@gmx.de> | no | upstream, https://github.com/dracut-ng/dracut/commit/8f5c7dd81bc039f8388c46ea2e8c8628aaffed03 | 2026-08-26 | |
| fix-dracut-functions-support-head-applet-from-busybox.patch | fix(dracut-functions): support head applet from busybox busybox's `head` applet does not support the long form `--bytes` but it supports the short form `-c`. Part of: https://github.com/dracut-ng/dracut/issues/2437 |
Benjamin Drung <benjamin.drung@canonical.com> | no | upstream, https://github.com/dracut-ng/dracut/commit/305a51dedb9999c0e974355b1c7320646a09c474 | 2026-08-26 | |
| 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-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 | |
| 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 | |
| feat-base-add-get_user-function.patch | feat(base): add get_user function Generalize the `get_rpc_user` function to take a list of expected user names. Call this function `get_user` and ship it in `dracut-lib.sh` to allow using it in other modules. |
Benjamin Drung <benjamin.drung@canonical.com> | no | upstream, https://github.com/dracut-ng/dracut/commit/49f25ccabc8e38eb805f3f17dafe056bd8dfa886 | 2026-08-26 | |
| fix-chrony-support-_chrony-username.patch | fix(chrony): support _chrony username The test 61 chrony fails on Debian/Ubuntu and this failure can be seen in the logs: ``` dracut-cmdline[278]: chown: invalid user: 'chrony:' [...] chronyd[461]: Wrong owner of /run/chrony (UID != 988) ``` The username used on Debian/Ubuntu is `_chrony`. Partially fixes: https://github.com/dracut-ng/dracut/issues/2541 |
Benjamin Drung <benjamin.drung@canonical.com> | no | upstream, https://github.com/dracut-ng/dracut/commit/5ee731b62223d63269d8dc3be3cdc798869264d1 | 2026-08-26 | |
| test-NFS-fix-ETIMEDOUT-error-in-rpc.nfsd-call.patch | test(NFS): fix ETIMEDOUT error in rpc.nfsd call nfsdcld must be running before rpc.nfsd: ``` + rpc.nfsd [ 6.872734][ T614] NFSD: Unable to initialize client recovery tracking! (-110) [ 6.874020][ T614] NFSD: Is nfsdcld running? If not, enable CONFIG_NFSD_LEGACY_CLIENT_TRACKING. [ 6.875426][ T614] NFSD: starting 90-second grace period (net effffff9) ``` |
Antonio Alvarez Feijoo <antonio.feijoo@suse.com> | no | upstream, https://github.com/dracut-ng/dracut/commit/58b8321fcd85007e66d7404613793428c3efdf93 | 2026-09-02 | |
| test-NFS-always-load-the-nfsv3-kernel-module.patch | test(NFS): always load the nfsv3 kernel module After debugging issue #2688 (hang after switch root in NFSv4 root), we can see that nfs_layout_flexfiles can pull in an NFSv3 data server at any time. ``` Pivoting root worked. [ 61.872297][ T1] ------------[ cut here ]------------ [ 61.873713][ T1] !get_v3_ds_connect [ 61.873715][ T1] WARNING: fs/nfs/pnfs_nfs.c:792 at nfs4_pnfs_ds_connect+0x47e/0x490 [nfsv4], CPU#0: systemd/1 [ 61.878015][ T1] Modules linked in: nfs_layout_flexfiles rpcsec_gss_krb5 krb5 auth_rpcgss nfsv4 dns_resolver nfs lockd grace netfs af_packet aesni_intel ahci libahci gf128mul virtio_net rfkill i6300esb libata net_failover virtio_scsi failover button serio_raw iTCO_wdt intel_pmc_bxt sunrpc dm_mirror dm_region_hash dm_log i2c_dev msr dm_multipath dm_mod sd_mod scsi_dh_emc scsi_dh_rdac scsi_dh_alua sg scsi_mod scsi_common efivarfs dmi_sysfs qemu_fw_cfg virtiofs fuse virtio_rng [ 61.891584][ T1] CPU: 0 UID: 0 PID: 1 Comm: systemd Tainted: G W 7.2.2-1-default #1 PREEMPT(full) openSUSE Tumbleweed bc7dc2f166d6b41995debd78d75c9e4bbcfbc2e3 [ 61.895581][ T1] Tainted: [W]=WARN [ 61.896572][ T1] Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS unknown 02/02/2022 [ 61.898835][ T1] RIP: 0010:nfs4_pnfs_ds_connect+0x47e/0x490 [nfsv4] [ 61.900485][ T1] Code: 6e cc cb c0 bf 01 00 00 00 e8 be 65 81 f5 48 c7 c7 5b cc cb c0 e8 42 18 81 f5 48 89 05 3b ed 1a 00 48 85 c0 0f 85 94 fd ff ff <0f> 0b e9 fa fc ff ff e8 16 27 5e f6 66 0f 1f 44 00 00 90 90 90 90 [ 61.906605][ T1] RSP: 0018:ffffd3cbc001f3b0 EFLAGS: 00010246 [ 61.908952][ T1] RAX: 0000000000000000 RBX: ffff8c5562ad9340 RCX: 0000000000000000 [ 61.911701][ T1] RDX: 0000000000000000 RSI: 0000000000000000 RDI: ffff8c5502168000 [ 61.914434][ T1] RBP: ffff8c5562ad9300 R08: ffffffffb62663b0 R09: 0000000000000003 [ 61.916501][ T1] R10: ffff8c550291bcc0 R11: 0000000000000000 R12: ffff8c55020bf900 [ 61.918400][ T1] R13: 0000000000000003 R14: ffff8c55020eb000 R15: 0000000000000258 [ 61.920285][ T1] FS: 00007fbf72c70880(0000) GS:ffff8c55afbe8000(0000) knlGS:0000000000000000 [ 61.922450][ T1] CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033 [ 61.924599][ T1] CR2: 00007fbf732e23c8 CR3: 000000007e9bd005 CR4: 0000000000770ef0 [ 61.926751][ T1] PKRU: 55555554 [ 61.927697][ T1] Call Trace: [ 61.928635][ T1] <TASK> [ 61.929430][ T1] ? __nfs4_find_get_deviceid+0x4a/0x60 [nfsv4 afbba1d09ce808ffdfab764dec0615577be943e8] [ 61.932071][ T1] ? _raw_spin_unlock+0xe/0x30 [ 61.933575][ T1] ? nfs4_find_get_deviceid+0x39c/0x460 [nfsv4 afbba1d09ce808ffdfab764dec0615577be943e8] [ 61.936817][ T1] nfs4_ff_layout_prepare_ds+0xeb/0x2e0 [nfs_layout_flexfiles a92ede795548aff05ebc86e90e14083ed7c97953] [ 61.940938][ T1] ff_layout_choose_ds_for_read+0x91/0x120 [nfs_layout_flexfiles a92ede795548aff05ebc86e90e14083ed7c97953] [ 61.944809][ T1] ff_layout_pg_init_read+0xc2/0x2d0 [nfs_layout_flexfiles a92ede795548aff05ebc86e90e14083ed7c97953] [ 61.948102][ T1] __nfs_pageio_add_request+0x30f/0x520 [nfs 706f2be7c137ba70b6dc79397a1acf17ddc1d13c] [ 61.950614][ T1] nfs_pageio_add_request+0x1cc/0x370 [nfs 706f2be7c137ba70b6dc79397a1acf17ddc1d13c] [ 61.953083][ T1] nfs_read_add_folio+0x174/0x290 [nfs 706f2be7c137ba70b6dc79397a1acf17ddc1d13c] [ 61.955479][ T1] nfs_readahead+0x1ee/0x280 [nfs 706f2be7c137ba70b6dc79397a1acf17ddc1d13c] [ 61.957919][ T1] ? xas_store+0x410/0x710 [ 61.959227][ T1] read_pages+0x63/0x200 [ 61.960408][ T1] page_cache_ra_order+0x224/0x370 [ 61.961860][ T1] filemap_get_pages+0x13e/0x780 [ 61.963249][ T1] filemap_read+0x106/0x430 [ 61.964740][ T1] ? profile_transition+0x198/0xd30 [ 61.966709][ T1] ? aa_file_perm+0x1ac/0x600 [ 61.968324][ T1] ? _raw_spin_unlock+0xe/0x30 [ 61.969900][ T1] ? apparmor_bprm_creds_for_exec+0x230/0xd10 [ 61.971854][ T1] ? nfs4_have_delegation+0x45/0xa0 [nfsv4 afbba1d09ce808ffdfab764dec0615577be943e8] [ 61.975274][ T1] nfs_file_read+0xfc/0x130 [nfs 706f2be7c137ba70b6dc79397a1acf17ddc1d13c] [ 61.978374][ T1] __kernel_read+0x165/0x350 [ 61.979975][ T1] bprm_execve+0x29f/0x5f0 [ 61.981208][ T1] do_execveat_common.isra.0+0x197/0x1b0 [ 61.982681][ T1] __x64_sys_execve+0x3d/0x60 [ 61.983916][ T1] do_syscall_64+0xe1/0x610 [ 61.985099][ T1] ? do_syscall_64+0xe1/0x610 [ 61.986300][ T1] ? security_task_prctl+0x3d/0xa0 [ 61.987542][ T1] ? security_task_prctl+0x3d/0xa0 [ 61.988777][ T1] ? __do_sys_prctl+0x2b/0xe80 [ 61.989991][ T1] ? do_syscall_64+0xe1/0x610 [ 61.991649][ T1] ? security_task_prctl+0x3d/0xa0 [ 61.993036][ T1] ? __do_sys_prctl+0x2b/0xe80 [ 61.994341][ T1] ? security_task_prctl+0x3d/0xa0 [ 61.995738][ T1] ? __do_sys_prctl+0x2b/0xe80 [ 61.997158][ T1] ? __do_sys_prctl+0x2b/0xe80 [ 61.999187][ T1] ? do_syscall_64+0xe1/0x610 [ 62.000939][ T1] ? security_task_prctl+0x3d/0xa0 [ 62.002651][ T1] ? __do_sys_prctl+0x2b/0xe80 [ 62.004263][ T1] ? do_syscall_64+0xe1/0x610 [ 62.005715][ T1] ? __do_sys_prctl+0x2b/0xe80 [ 62.007831][ T1] ? do_syscall_64+0xe1/0x610 [ 62.009606][ T1] ? do_syscall_64+0xe1/0x610 [ 62.011460][ T1] ? do_syscall_64+0xe1/0x610 [ 62.012797][ T1] ? do_syscall_64+0x98/0x610 [ 62.014028][ T1] ? clear_bhb_loop+0x40/0x90 [ 62.015297][ T1] entry_SYSCALL_64_after_hwframe+0x76/0x7e [ 62.016790][ T1] RIP: 0033:0x7fbf72e819cb [ 62.017916][ T1] Code: 00 00 66 2e 0f 1f 84 00 00 00 00 00 0f 1f 00 90 90 90 90 90 90 90 90 90 90 90 90 90 90 f3 0f 1e fa 90 90 b8 3b 00 00 00 0f 05 <48> 3d 01 f0 ff ff 73 01 c3 48 8b 0d 0d 14 11 00 f7 d8 64 89 01 48 [ 62.022437][ T1] RSP: 002b:00007ffd27858a88 EFLAGS: 00000202 ORIG_RAX: 000000000000003b [ 62.024942][ T1] RAX: ffffffffffffffda RBX: 00007ffd27858aa0 RCX: 00007fbf72e819cb [ 62.027165][ T1] RDX: 0000556d66a5fb20 RSI: 00007ffd27858a90 RDI: 0000556d2f0fb522 [ 62.029504][ T1] RBP: 00007ffd27858cb0 R08: 0000000000000000 R09: 0000000000000001 [ 62.032291][ T1] R10: 0000000000000000 R11: 0000000000000202 R12: 0000000000000001 [ 62.034980][ T1] R13: 00007fbf73b93000 R14: 00007ffd27858fd8 R15: 0000556d2f102bb8 [ 62.037504][ T1] </TASK> [ 62.038474][ T1] ---[ end trace 0000000000000000 ]--- ``` Since nfs_layout_flexfiles does not expose nfsv3 as a softdep, dracut has to force loading it. Fixes #2688 |
Antonio Alvarez Feijoo <antonio.feijoo@suse.com> | no | upstream, https://github.com/dracut-ng/dracut/commit/62fbbfbb4e0040b07886e278d52751b6cc15f1ca | 2026-09-02 | |
| fix-dracut-correct-order-of-Creating-image-log-line.patch | fix(dracut): correct order of "Creating image" log line The log line "Creating image" is followed by "Hardlinking files": ``` [...] dracut[I]: *** Including modules done *** dracut[I]: *** Installing kernel module dependencies *** dracut[I]: *** Installing kernel module dependencies done *** dracut[I]: *** Resolving dependencies for executables and libraries *** dracut[I]: *** Resolving dependencies for executables and libraries done *** dracut[I]: *** Generating early-microcode cpio image *** dracut[I]: *** Constructing GenuineIntel.bin *** dracut[I]: *** Store current command line parameters *** dracut[I]: *** Stripping files *** dracut[I]: *** Stripping files done *** dracut[I]: *** Creating image file '/var/tmp/dracut-test.doZhty/initramfs.testing' *** dracut[I]: *** Hardlinking files *** dracut[I]: *** Hardlinking files done *** dracut[I]: Using auto-determined compression method 'zstd' dracut[I]: *** Creating initramfs image file '/var/tmp/dracut-test.doZhty/initramfs.testing' done *** ``` Move the "Creating image" log line back to where it belonged: ``` [...] dracut[I]: *** Including modules done *** dracut[I]: *** Installing kernel module dependencies *** dracut[I]: *** Installing kernel module dependencies done *** dracut[I]: *** Resolving dependencies for executables and libraries *** dracut[I]: *** Resolving dependencies for executables and libraries done *** dracut[I]: *** Generating early-microcode cpio image *** dracut[I]: *** Constructing GenuineIntel.bin *** dracut[I]: *** Store current command line parameters *** dracut[I]: *** Stripping files *** dracut[I]: *** Stripping files done *** dracut[I]: *** Hardlinking files *** dracut[I]: *** Hardlinking files done *** dracut[I]: *** Creating image file '/var/tmp/dracut-test.nfRABi/initramfs.testing' *** dracut[I]: Using auto-determined compression method 'zstd' dracut[I]: *** Creating initramfs image file '/var/tmp/dracut-test.nfRABi/initramfs.testing' done *** ``` |
Benjamin Drung <benjamin.drung@canonical.com> | no | upstream, https://github.com/dracut-ng/dracut/commit/1de52aca55cf16bc469b65b12f91e75e9a252b58 | 2026-09-02 | |
| perf-lsinitrd-call-extractor-only-once-in-extract_squash_.patch | perf(lsinitrd): call extractor only once in extract_squash_img Calling the extractor (`3cpio` or `extractinitrd`) is expensive. `extract_squash_img` calls the extract three times; once per possible squashfs/erofs file. Call the extractor only once in `extract_squash_img` to extract all three files in one go. A normal initrd only ships one squashfs/erofs file. Benchmark result on my desktop machine running Ubuntu 26.04: ``` $ hyperfine -L commit 3948f63c,speedup-lsinitrd -p "git checkout {commit}" -w 1 "sudo ./lsinitrd.sh /boot/initrd.img" Benchmark 1: sudo ./lsinitrd.sh /boot/initrd.img (commit = 3948f63c) Time (mean ± σ): 571.7 ms ± 3.2 ms [User: 2.5 ms, System: 3.0 ms] Range (min … max): 565.7 ms … 576.5 ms 10 runs Benchmark 2: sudo ./lsinitrd.sh /boot/initrd.img (commit = speedup-lsinitrd) Time (mean ± σ): 433.4 ms ± 5.2 ms [User: 2.0 ms, System: 3.4 ms] Range (min … max): 426.6 ms … 444.3 ms 10 runs Summary sudo ./lsinitrd.sh /boot/initrd.img (commit = speedup-lsinitrd) ran 1.32 ± 0.02 times faster than sudo ./lsinitrd.sh /boot/initrd.img (commit = 3948f63c) ``` |
Benjamin Drung <benjamin.drung@canonical.com> | no | upstream, https://github.com/dracut-ng/dracut/commit/0430cb4a57ad76eea71f8118a5fe39fb6e7d7d4d | 2026-09-03 | |
| fix-drm-add-leds-qcom-lpg-to-aarch64-specific-modules-nee.patch | fix(drm): add leds-qcom-lpg to aarch64 specific modules needed by drm leds-qcom-lpg is not only a LED class driver but it can also be a pwm class driver and sometimes its pwm function is used for panel backlight control in which case it is needed for drm/kms to work. Since leds-qcom-lpg lives under drivers/leds/rgb/ it is not automatically picked-up by the existing 'instmods "=drivers/pwm"', add it explicitly to the instmods argument to get it included into the initramfs. This follows the pattern of how the amdkfd and hyperv_fb special cases are already handled. |
Hans de Goede <johannes.goede@oss.qualcomm.com> | no | upstream, https://github.com/dracut-ng/dracut/commit/6fe62db59b8a450319a36f062d396f9bccfd9bb5 | 2026-09-03 | |
| fix-i18n-support-find-applet-from-busybox-in-module-setup.patch | fix(i18n): support find applet from busybox in module-setup.sh busybox's `find` applet neither supports `-delete` nor specifying multiple types to `-type`. So replace `-delete` by a `rm` call and split the `-type` option. Part of: https://github.com/dracut-ng/dracut/issues/2437 |
Benjamin Drung <benjamin.drung@canonical.com> | no | upstream, https://github.com/dracut-ng/dracut/commit/e241be2e0265616fbb32a8435eee4ee99cbb5bb1 | 2026-08-25 | |
| fix-convertfs-support-find-applet-from-busybox.patch | fix(convertfs): support find applet from busybox busybox's `find` applet does not support `-delete`. So replace `-delete` by a `rm` call. Part of: https://github.com/dracut-ng/dracut/issues/2437 |
Benjamin Drung <benjamin.drung@canonical.com> | no | upstream, https://github.com/dracut-ng/dracut/commit/deb14ebbfed325939c15289e92b4a8836167df32 | 2026-08-25 | |
| fix-lsinitrd-use-find-exec-ls-instead-of-find-ls.patch | fix(lsinitrd): use "find -exec ls" instead of "find -ls" busybox's `find` applet does not support `-ls`. Also the output of `find -ls` differs from the style of `ls` and `cpio`: ``` $ touch example foobar $ find . -ls 1127667 0 drwxrwxr-x 2 root root 80 Aug 25 17:59 . 1127669 0 -rw-rw-r-- 1 root root 0 Aug 25 17:59 ./foobar 1127668 0 -rw-rw-r-- 1 root root 0 Aug 25 17:59 ./example $ find . -exec ls -ld {} + drwxrwxr-x 2 root root 80 Aug 25 17:59 . -rw-rw-r-- 1 root root 0 Aug 25 17:59 ./example -rw-rw-r-- 1 root root 0 Aug 25 17:59 ./foobar ``` So replace `-ls` by a `ls` call. Part of: https://github.com/dracut-ng/dracut/issues/2437 |
Benjamin Drung <benjamin.drung@canonical.com> | no | upstream, https://github.com/dracut-ng/dracut/commit/b1050191bfcbd037243df6195e3cd08247d66d50 | 2026-08-25 | |
| test-FULL-SYSTEMD-avoid-copying-usr-twice.patch | test(FULL-SYSTEMD): avoid copying /usr twice The test setup fails with busybox 1.37: ``` Create subvolume '/root/usr/usr' ``` This bug is fixed in busybox 1.38 by upstream commit a0017a5b5038 ("cp: fix `cp -aT` overwriting symlink to directories"). Workaround this bug in busybox 1.37 and speed up the test by not copying `/usr` twice. |
Benjamin Drung <benjamin.drung@canonical.com> | no | upstream, https://github.com/dracut-ng/dracut/commit/cebc9274c755dce91d2538ca565f45fc88a40c10 | 2026-09-02 | |
| fix-base-support-readlink-applet-from-busybox.patch | fix(base): support readlink applet from busybox The busybox `readlink` applet does not support the option `-e`. These `readlink` calls can be replaced by `realpath`, but `realpath` is not included in the initrd. So support using `readlink` (when busybox is used) and fall back to keep using `readlink` otherwise. Since `realpath` will return successfully on non-existing path, check the path exists if needed. Part of: https://github.com/dracut-ng/dracut/issues/2437 |
Benjamin Drung <benjamin.drung@canonical.com> | no | upstream, https://github.com/dracut-ng/dracut/commit/4e62000376551caa8ccd3ed16dec825631cccc38 | 2026-09-06 | |
| fix-dmsquash-live-support-umount-applet-from-busybox.patch | fix(dmsquash-live): support umount applet from busybox busybox's `umount` applet does not support the long form `--detach-loop` but it supports the short form `-d`. Part of: https://github.com/dracut-ng/dracut/issues/2437 |
Benjamin Drung <benjamin.drung@canonical.com> | no | upstream, https://github.com/dracut-ng/dracut/commit/8bc69aeda0c676889e9fd593547a5695b5fae603 | 2026-09-01 | |
| fix-lvmmerge-support-umount-applet-from-busybox.patch | fix(lvmmerge): support umount applet from busybox The busybox `umount` applet does not support the option `-R`/`--recursive`. Implement the recursive unmounting in shell by reverse iterating over `/proc/self/mountinfo` and unmounting matching paths. Part of: https://github.com/dracut-ng/dracut/issues/2437 |
Benjamin Drung <benjamin.drung@canonical.com> | no | upstream, https://github.com/dracut-ng/dracut/commit/0ed2a3b984a7fbdbc715b0eeb9a8de795c2ab232 | 2026-09-03 | |
| fix-selinux-support-umount-applet-from-busybox.patch | fix(selinux): support umount applet from busybox The busybox `umount` applet does not support the option `-R`/`--recursive`. Implement the recursive unmounting in shell by reverse iterating over `/proc/self/mountinfo` and unmounting matching paths. Part of: https://github.com/dracut-ng/dracut/issues/2437 |
Benjamin Drung <benjamin.drung@canonical.com> | no | upstream, https://github.com/dracut-ng/dracut/commit/e767d6a646bd8b5994e7e46505b99a5fda1e04a3 | 2026-09-03 | |
| fix-busybox-do-not-install-sulogin-applet.patch | fix(busybox): do not install sulogin applet The busybox `sulogin` applet does not support the option `-e` Part of: https://github.com/dracut-ng/dracut/issues/2437 |
Benjamin Drung <benjamin.drung@canonical.com> | no | upstream, https://github.com/dracut-ng/dracut/commit/0ea1933edbb5aeef6b64dc0e6a4f8c7abc14874c | 2026-09-01 | |
| fix-busybox-use-full-path-provided-by-busybox-list-full.patch | fix(busybox): use full path provided by busybox --list-full `busybox --list` only lists the names of the included applets but does not show their paths. The busybox module looks for the path on the host system. It will skip the applet in case the binary is not found on the host system. Rely on `busybox --list-full` to provide the path for the applets. That way all applets can be installed. Support getting relative paths (like `bin/busybox`) in addition to absolute paths (like `/bin/busybox`). |
Benjamin Drung <benjamin.drung@canonical.com> | no | upstream, https://github.com/dracut-ng/dracut/commit/250e621fafa43305bcb036bf5301d47718e9f30e | 2026-08-25 | |
| fix-busybox-do-not-rely-on-CONFIG_FEATURE_INSTALLER-y.patch | fix(busybox): do not rely on CONFIG_FEATURE_INSTALLER=y busybox --list-full provides full paths only if busybox was built with CONFIG_FEATURE_INSTALLER=y [1], otherwise the result is only a list of applet names. Using those plain applet names, links will be placed in / in the initramfs, which is not on PATH, causing chaos. If we get plain applet names, try to find their installed paths, and use those if found. Otherwise guess usr/bin. [1] https://github.com/vda-linux/busybox_mirror/blob/15666f3e9a0b54305cec1b01f34bc5b2a1794e74/libbb/appletlib.c#L857-L860 |
Fiona Klute <fiona.klute@gmx.de> | no | upstream, https://github.com/dracut-ng/dracut/commit/98306da0ce9b00a634896d3095aee75eaf0fc06a | 2026-08-27 | |
| test-provide-default-test_setup-hook.patch | test: provide default test_setup hook | Nadzeya Hutsko <nadzeya.hutsko@canonical.com> | no | upstream, https://github.com/dracut-ng/dracut/commit/045c03c352548c283829351d201bea62178da22c | 2026-05-25 | |
| feat-busybox-run-before-80base-so-applets-replace-host-bi.patch | feat(busybox): run before 80base so applets replace host binaries Distros that ship large coreutils binaries (e.g. Ubuntu 26.04 with rust-coreutils) increase the initrd size because 80base copies the host's binaries like cp, ls, mv in full. Rename modules.d/81busybox to modules.d/10busybox so the busybox module runs first. It lays down /usr/bin/busybox and applet symlinks before 80base's inst_multiple calls. The host's util-linux switch_root is still preferred. |
Nadzeya Hutsko <nadzeya.hutsko@canonical.com> | no | upstream, https://github.com/dracut-ng/dracut/commit/04eb6dd18dadaeb324164444fd199fae138c1596 | 2026-07-22 | |
| fix-busybox-do-not-install-blkid-if-udev-rules-need-o.patch | fix(busybox): do not install blkid if udev rules need -o The busybox `blkid` applet does not support the option `-o`. The `13-dm-disk.rules` udev rule might either use the builtin blkid or call `/sbin/blkid -o udev -p $tempnode`. The latter is not supported by busybox. So check the udev rule to call `blkid` with `-o` and do not install this busybox applet in this case. |
Benjamin Drung <benjamin.drung@canonical.com> | no | upstream, https://github.com/dracut-ng/dracut/commit/89e3c00d4c2262abfc1b62e34ec2c8d877ef3087 | 2026-08-31 | |
| fix-busybox-do-not-install-mount-applet.patch | fix(busybox): do not install mount applet The busybox `mount` applet does not resolve "auto" to the actual filesystem and therefore passes `auto` directly to mount(2). If the target partition's filesystem driver (e.g., `ext4`, `xfs`) is compiled as a module and not yet loaded into `/proc/filesystems`, the kernel skips `request_module()` and returns `EINVAL` (Invalid argument). For example `test/test.sh debian:sid 10` fails with, because `ext4` is not loaded: ``` systemd[1]: Mounting sysroot.mount - /sysroot... ``` Instead of adding a quirky workaround to probe the device and load the relevant filesystem driver, do not install the `mount` applet. |
Benjamin Drung <benjamin.drung@canonical.com> | no | upstream, https://github.com/dracut-ng/dracut/commit/9dcc127e2d190ae819110ce82f429a7d1d92c380 | 2026-08-31 | |
| test-BUSYBOX-use-initramfs.testing-as-initrd-name.patch | test(BUSYBOX): use initramfs.testing as initrd name The `test_dracut` will specify `$TESTDIR/initramfs.testing` as initrd name. So use this name in the busybox test case as well. |
Benjamin Drung <benjamin.drung@canonical.com> | no | upstream, https://github.com/dracut-ng/dracut/commit/4c4db47b1986671ff7a9d03ab8376279a74e8474 | 2026-09-01 | |
| test-BUSYBOX-also-test-booting.patch | test(BUSYBOX): also test booting Extend the busybox test case to test that booting the initrd works. |
Benjamin Drung <benjamin.drung@canonical.com> | no | upstream, https://github.com/dracut-ng/dracut/commit/8cc940651096f1a23cd988fe293458c92899c7bd | 2026-09-01 | |
| fix-busybox-do-not-install-mke2fs-applet.patch | fix(busybox): do not install mke2fs applet e2fsprogs provides `mke2fs`. `mkfs.ext2`, `mkfs.ext3`, and `mkfs.ext4` are symlinks to it. Busybox does not provide a `mkfs.ext4` applet and `mkfs.ext*` would point to busybox then. This can be seen when including the busybox module: ``` $ test/test.sh ubuntu:devel 21 [...] CLIENT TEST START: encrypted overlay (new device, random password) [...] [ 7.398868] dracut-pre-pivot[289]: Creating ext4 filesystem on /dev/mapper/overlay-crypt [ 7.400071] dracut-pre-pivot[373]: mkfs.ext4: applet not found ``` So do not install the `mke2fs` busybox applet. |
Benjamin Drung <benjamin.drung@canonical.com> | no | upstream, https://github.com/dracut-ng/dracut/commit/38247fbc11040521aef6f1e1b2fe494538967d50 | 2026-09-01 | |
| fix-busybox-do-not-install-nbd-client-applet.patch | fix(busybox): do not install nbd-client applet The busybox `nbd-client` applet does not support the option `-check` and others. This causes the test 60-NFS to fail with busybox. So not install the `nbd-client` applet. |
Benjamin Drung <benjamin.drung@canonical.com> | no | upstream, https://github.com/dracut-ng/dracut/commit/c051f59e8d8b14c8e7454323ddb742dda382bef1 | 2026-09-01 | |
| fix-busybox-do-not-install-losetup-applet.patch | fix(busybox): do not install losetup applet The busybox `losetup` applet does not support the option `--show`. Part of: https://github.com/dracut-ng/dracut/issues/2437 |
Benjamin Drung <benjamin.drung@canonical.com> | no | upstream, https://github.com/dracut-ng/dracut/commit/cd772fb43a2303adac5714ae53f9d4174db2d4ac | 2026-09-01 | |
| fix-dracut-systemd-use-sbin-sulogin-for-CONFIG_FEATURE_PR.patch | fix(dracut-systemd): use /sbin/sulogin for CONFIG_FEATURE_PREFER_APPLETS The Dracut module dracut-systemd might call `sulogin -e`, but busybox does not support the option `-e`. This missing option is reported upstream at https://github.com/vda-linux/busybox_mirror/issues/36. The Dracut busybox module skips installing the sulogin applet. This has no effect when using busybox-static because busybox-static is built with CONFIG_FEATURE_PREFER_APPLETS enabled. Busybox sh will prefer the incompatible sulogin applet instead of using the real sulogin binary. |
Benjamin Drung <benjamin.drung@canonical.com> | yes | debian | 2026-09-06 | |
| fix-use-sbin-losetup-for-CONFIG_FEATURE_PREFER_APPLETS.patch | fix: use /sbin/losetup for CONFIG_FEATURE_PREFER_APPLETS Several Dracut modules might call `losetup --show`, but busybox does not support the option `--show`. This missing option is reported upstream at https://github.com/vda-linux/busybox_mirror/issues/37. The Dracut busybox module skips intstalling the losetup applet. This has no effect when using busybox-static because busybox-static is built with CONFIG_FEATURE_PREFER_APPLETS enabled. Busybox sh will prefer the incompatible losetup applet instead of using the real losetup binary. |
Benjamin Drung <benjamin.drung@canonical.com> | yes | debian | 2026-09-07 | |
| fix-use-bin-mount-for-CONFIG_FEATURE_PREFER_APPLETS.patch | fix: use /bin/mount for CONFIG_FEATURE_PREFER_APPLETS Several Dracut modules might call `mount -t auto` or `mount` without `-t`. Busybox mount will pass `auto` directly to the kernel. If the target partition's filesystem driver is compiled as a module and not yet loaded, the kernel skips request_module() and returns EINVAL (Invalid argument). This missing feature is reported upstream at https://github.com/vda-linux/busybox_mirror/issues/34 The Dracut busybox module skips intstalling the mount applet. This has no effect when using busybox-static because busybox-static is built with CONFIG_FEATURE_PREFER_APPLETS enabled. Busybox sh will prefer the incompatible mount applet instead of using the real mount binary. So use absolute paths for `mount` where needed. Absolute paths for mount is needed for cases where the type is `auto` or not specified. Some code already determines the type and mounts the relevant kernel module: ```sh fstype=$(det_img_fs "$1") load_fstype "$fstype" mount -r "$1" "$2" ``` |
Benjamin Drung <benjamin.drung@canonical.com> | yes | debian | 2026-09-07 | |
| fix-dracut-export-prefer_dracutmodules-to-be-used-in-drac.patch | fix(dracut): export prefer_dracutmodules to be used in dracut modules In the same way that their `*dracutmodules` siblings are exported. Follow-up for 4b8c11c0590b546e37908968042eaf7c7d669b17 |
Antonio Alvarez Feijoo <antonio.feijoo@suse.com> | no | upstream, https://github.com/dracut-ng/dracut/commit/f2990cbabec2ea464cfb8531e4d38d5f8d138580 | 2026-09-07 | |
| fix-bluetooth-do-not-warn-if-this-module-is-included-via-.patch | fix(bluetooth): do not warn if this module is included via --prefer | Antonio Alvarez Feijoo <antonio.feijoo@suse.com> | no | upstream, https://github.com/dracut-ng/dracut/commit/0a6a30da74d1d4d1978b3af24a19860371770307 | 2026-09-07 | |
| docs-cli-formatting-grammar-fix-for-DRACUT_INSTALL_LOG_-T.patch | docs(cli): formatting & grammar fix for DRACUT_INSTALL_LOG_{TARGET,LEVEL} Correctly end bold formatting of "dracut-install", and simplify sentences with three variations of "run". |
Fiona Klute <fiona.klute@gmx.de> | no | upstream, https://github.com/dracut-ng/dracut/commit/c8ab9b5388072747f3f73848af0dcb651d42abb1 | 2026-08-20 |
All known versions for source package 'dracut'
- 112-6 (sid)
- 112-2 (forky)
- 106-6 (trixie)
- 106-5~bpo12+1 (bookworm-backports)
- 059-4 (bookworm)
