Debian Patches
Status for dracut/110-12
| 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-kernel-modules-export-use-return-instead-of-exit-in-p.patch | fix(kernel-modules-export): use return instead of exit in pre-pivot hook The `modules-export.sh` pre-pivot hook calls `exit 0`. This causes the sourcing script (`dracut-pre-pivot.sh` on systemd or `init.sh` from the base Dracut module) to exit. The subsequent hooks are not executed. Use `return` instead of `exit` in kernel-modules-export pre-pivot hook. |
Benjamin Drung <benjamin.drung@canonical.com> | yes | 2026-02-11 | ||
| fix-memdisk-use-return-instead-of-exit-in-cmdline-hook.patch | fix(memdisk): use return instead of exit in cmdline hook The `memdisk.sh` cmdline hook calls `exit 0`. This causes the sourcing script (`dracut-cmdline.sh` on systemd or `init.sh` from the base Dracut module) to exit. The subsequent hooks are not executed. Use `return` instead of `exit` in the memdisk cmdline hook. |
Benjamin Drung <benjamin.drung@canonical.com> | yes | 2026-02-11 | ||
| fix-ppcmac-use-return-instead-of-exit-in-pre-udev-hook.patch | fix(ppcmac): use return instead of exit in pre-udev hook The `load-thermal.sh` pre-udev hook calls `exit 0`. This causes the sourcing script (`dracut-pre-udev.sh` on systemd or `init.sh` from the base Dracut module) to exit. The subsequent hooks are not executed. Use `return` instead of `exit` in the ppcmac pre-udev hook. |
Benjamin Drung <benjamin.drung@canonical.com> | yes | 2026-02-11 | ||
| fix-syslog-use-return-instead-of-exit-in-initqueue-online.patch | fix(syslog): use return instead of exit in initqueue/online hook The `rsyslogd-start.sh` initqueue/online hook calls `exit 0`. This causes the sourcing script to exit. The subsequent code is not executed. Use `return` instead of `exit` in the syslog initqueue/online hook. |
Benjamin Drung <benjamin.drung@canonical.com> | yes | 2026-02-11 | ||
| test-force-cpu-to-neoverse-n1-for-arm64-when-QEMU_CPU-not.patch | test: force cpu to neoverse-n1 for arm64 when QEMU_CPU not set using cpu=max might expose new unstable features with qemu/edk2 upgrades, this unstability might cause test failures to happen , we are experiencing that in Debian/Ubuntu with edk2 latest version that enables LPA2 that is still unstable. since using cpu=max is not required for dracut tests, using a named model will offer a better stability for the tests for future qemu/edk2 upgrades. the chosen cpu model for arm64 is neoverse-n1 since it is one of the most stable and proven CPU model from a virtualization standpoint. |
Hector Cao <hector.cao@canonical.com> | yes | debian | 2026-02-25 | |
| test-use-separate-networks-for-different-NICs.patch | test: use separate networks for different NICs The iSCSI tests 70 and 71 use two network interfaces. The server launches a DHCP server on both network interfaces providing different IP addresses for both. This setup works for ISC dhcpd, but will cause problems when switching to dnsmasq: dnsmasq would offer IP from both IP ranges to the client. As preparation for switching to dnsmasq use separate networks for the two different network interfaces. |
Benjamin Drung <benjamin.drung@canonical.com> | yes | 2026-03-02 | ||
| test-start-hostname-numbering-at-0.patch | test: start hostname numbering at 0 Start numbering the hostnames at 0 to match the MAC address with the hostname. |
Benjamin Drung <benjamin.drung@canonical.com> | yes | 2026-03-02 | ||
| test-do-not-use-the-same-IP-for-different-MAC-addresses.patch | test: do not use the same IP for different MAC addresses dnsmasq will complain when different MAC addresses are mapped to the same IP address. |
Benjamin Drung <benjamin.drung@canonical.com> | yes | 2026-03-02 | ||
| fix-dbus-remove-After-Requires-from-dbus-service-socket.patch | fix(dbus): remove After/Requires from dbus service/socket Following dependencies are added to sockets unless `DefaultDependencies=no` is set (according to systemd.socket man page): ``` Before=sockets.target shutdown.target After=sysinit.target Requires=sysinit.target Conflicts=shutdown.target ``` Following dependencies are added to units unless `DefaultDependencies=no` is set (according to systemd.service man page): ``` Requires=sysinit.target After=sysinit.target basic.target Conflicts=shutdown.target Before=shutdown.target ``` The dbus-broker and dbus-daemon Dracut modules want to remove `After=sysinit.target` and `Requires=sysinit.target` from `dbus.service` and `dbus.socket`. This is done by setting `DefaultDependencies=no` and specifying the remaining default dependencies. The relevant code has been there since the introduction (see commit e1845955ff3d). The Ubuntu package of dbus already removes some of the default dependencies from the `dbus.service` and `dbus.socket` (see https://launchpad.net/bugs/1438612): ``` DefaultDependencies=no Wants=sysinit.target After=sysinit.target basic.target ``` This results in not removing the `sysinit.target` dependency on Ubuntu and causes the dbus service to start too late. Since NetworkManager depends on dbus, it will start too late as well. That causes the NBD test cases to fail. So remove the `After` and `Requires` entries from the `dbus.service` and `dbus.socket` before setting `DefaultDependencies=no`. Also restore `Before=sockets.target` in `dbus.socket`. |
Benjamin Drung <benjamin.drung@canonical.com> | yes | 2026-03-03 | ||
| test-use-different-MAC-addresses-for-all-NFS-client-tests.patch | test: use different MAC addresses for all NFS client tests Having two separate client tests use the same MAC address might not work with dnsmasq. To ease debugging use a separate MAC address for each client test. Update the DHCP config to reflect the test case name and make the numbering consecutive. |
Benjamin Drung <benjamin.drung@canonical.com> | yes | 2026-03-04 | ||
| test-switch-QEMU-network-backend-to-dgram-UDP.patch | test: switch QEMU network backend to dgram (UDP) When replacing isc-dhcp-server by dnsmasq, test 60 starts to fail on some distributions. The second client test hangs for several seconds on shutdown and the third client test fails to get an IP address. The client sends a DHCP discover packet, but that never reaches dnsmasq. Adding tcpdump to `server-init.sh` let the tests succeed: ``` tcpdump -v -Z root -i enx525400123456 -n port 67 or port 68 & ``` Running the client tests individually let them succeed as well. The assumption is that the host kernel keeps the QEMU netdev TCP socket in a TIME_WAIT or FIN_WAIT_2 state following a client shutdown which leads to a socket deadlock: the next client may successfully connect to the host socket, but the server QEMU process fails to re-initialize the virtual link correctly. Switch to `-netdev dgram` (UDP) to eliminate the connection state management entirely. See also https://github.com/dracut-ng/dracut-ng/pull/2271#issuecomment-3997945175 |
Benjamin Drung <benjamin.drung@canonical.com> | yes | 2026-03-04 | ||
| test-switch-from-isc-dhcp-server-to-dnsmasq.patch | test: switch from isc-dhcp-server to dnsmasq isc-dhcp-server is no longer activly maintained and has been removed from Debian testing. Use dnsmasq as DHCP server instead. |
Benjamin Drung <benjamin.drung@canonical.com> | yes | 2026-03-05 | ||
| fix-crypt-honor-timeout-setting-when-using-UUID-LABEL-etc.patch | fix(crypt): honor timeout setting when using UUID, LABEL, etc Test 20 fails on slow architectures, because it runs into a timeout: ``` [ TIME ] Timed out waiting for device dev-disk-by\x2duuid-1dc514cd\x2d8268\x2d4a33\x2d873f\x2d84f8eb02d3e0.device - /dev/disk/by-uuid/1dc514cd-8268-4a33-873f-84f8eb02d3e0. [DEPEND] Dependency failed for systemd-cryptsetup@testluks.service - Cryptography Setup for testluks. [DEPEND] Dependency failed for cryptsetup.target - Local Encrypted Volumes. [ 118.452336] systemd[1]: dev-disk-by\x2duuid-1dc514cd\x2d8268\x2d4a33\x2d873f\x2d84f8eb02d3e0.device: Job dev-disk-by\x2duuid-1dc514cd\x2d8268\x2d4a33\x2d873f\x2d84f8eb02d3e0.device/start timed out. [ 118.465917] systemd[1]: Timed out waiting for device dev-disk-by\x2duuid-1dc514cd\x2d8268\x2d4a33\x2d873f\x2d84f8eb02d3e0.device - /dev/disk/by-uuid/1dc514cd-8268-4a33-873f-84f8eb02d3e0. [ 118.483854] systemd[1]: Dependency failed for systemd-cryptsetup@testluks.service - Cryptography Setup for testluks. [ 118.500894] systemd[1]: Dependency failed for cryptsetup.target - Local Encrypted Volumes. [ 118.519552] systemd[1]: cryptsetup.target: Job cryptsetup.target/start failed with result 'dependency'. [ 118.535383] systemd[1]: systemd-cryptsetup@testluks.service: Job systemd-cryptsetup@testluks.service/start failed with result 'dependency'. [ 118.549404] systemd[1]: dev-disk-by\x2duuid-1dc514cd\x2d8268\x2d4a33\x2d873f\x2d84f8eb02d3e0.device: Job dev-disk-by\x2duuid-1dc514cd\x2d8268\x2d4a33\x2d873f\x2d84f8eb02d3e0.device/start failed with result 'timeout'. ``` `parse-crypt.sh` is supposed to set the timeout for this device (defaulting to `infinity`), but it uses the wrong unit name in case the source device in `/etc/crypttab` uses `UUID`, `PARTLABEL`, `LABEL`, or `PARTUUID`. For example: it converts `UUID=1dc514cd-8268-4a33-873f-84f8eb02d3e0` to `UUID\x3d1dc514cd\x2d8268\x2d4a33\x2d873f\x2d84f8eb02d3e0.device` instead of `dev-disk-by\x2duuid-1dc514cd\x2d8268\x2d4a33\x2d873f\x2d84f8eb02d3e0.device`. Use `label_uuid_to_dev` to map the source device from `/etc/crypttab` to a device path. |
Benjamin Drung <benjamin.drung@canonical.com> | yes | 2026-03-13 | ||
| fix-crypt-use-d-instead-of-f-to-check-for-NEWROOT-proc-di.patch | fix(crypt): use -d instead of -f to check for $NEWROOT/proc directory All other instances of checks for the existence of $NEWROOT/proc use -d or at least -e, but incorrectly using -f to check for the existence of just a file at that path would fail to exit as it should if the directory exists. |
Sidharth Sankar <sidstuffhere@gmail.com> | yes | 2026-03-11 | ||
| feat-overlayfs-support-tmpfs-size-parameter-in-rd.overlay.patch | feat(overlayfs): support tmpfs size parameter in rd.overlay When rd.overlay=tmpfs:size=<size> is passed on the kernel command line, mount a dedicated tmpfs at /run/initramfs/overlay with the specified options for the OverlayFS upper directory, instead of using the default /run tmpfs. Supported options (comma-separated after tmpfs:) are size=, nr_blocks= and nr_inodes=. If mounting fails, the script falls back gracefully to the default /run tmpfs overlay. |
Nadzeya Hutsko <nadzeya.hutsko@canonical.com> | yes | 2026-02-24 | ||
| test-SYSTEMD-INITRD-increase-device-timeout-to-infinity.patch | test(SYSTEMD-INITRD): increase device timeout to infinity Test 42 fails to boot on very slow systems like an emulated nested VM with riscv64. `dev-disk-by\x2dlabel-dracut.device` runs into the 90 seconds timeout: ``` [ TIME ] Timed out waiting for device dev-d…device - /dev/disk/by-label/dracut. [DEPEND] Dependency failed for sysroot.mount - /sysroot. [ 343.011821] systemd[1]: dev-disk-by\x2dlabel-dracut.device: Job dev-disk-by\x2dlabel-dracut.device/start timed out. [DEPEND] Dependency failed for initrd-root-fs.target - Initrd Root File System. [DEPEND] Dependency failed for initrd-parse…points Configured in the Real Root. [ 345.255798] systemd[1]: Timed out waiting for device dev-disk-by\x2dlabel-dracut.device - /dev/disk/by-label/dracut. [ 346.279436] systemd[1]: Dependency failed for sysroot.mount - /sysroot. [ 349.048942] systemd[1]: Dependency failed for initrd-root-fs.target - Initrd Root File System. [DEPEND] Dependency failed for initrd-root-device.target - Initrd Root Device. [ 350.551967] systemd[1]: Dependency failed for initrd-parse-etc.service - Mountpoints Configured in the Real Root. [ 352.855207] systemd[1]: initrd-parse-etc.service: Job initrd-parse-etc.service/start failed with result 'dependency'. [ 354.805576] systemd[1]: initrd-parse-etc.service: Triggering OnFailure= dependencies. [ 356.883912] systemd[1]: initrd-parse-etc.service: Failed to enqueue OnFailure=emergency.target job, ignoring: Unit emergency.service not found. [ 359.654920] systemd[1]: initrd-root-fs.target: Job initrd-root-fs.target/start failed with result 'dependency'. [ 363.225631] systemd[1]: initrd-root-fs.target: Triggering OnFailure= dependencies. [ 365.516207] systemd[1]: initrd-root-fs.target: Failed to enqueue OnFailure=emergency.target job, ignoring: Unit emergency.service not found. [ 367.211266] systemd[1]: sysroot.mount: Job sysroot.mount/start failed with result 'dependency'. [ 369.327748] systemd[1]: Dependency failed for initrd-root-device.target - Initrd Root Device. [ 371.703782] systemd[1]: initrd-root-device.target: Job initrd-root-device.target/start failed with result 'dependency'. ``` Full log: https://ci.debian.net/packages/d/dracut/testing/riscv64/69536717/#L19714 So increase the device timeout to infinity to make the test succeed on slow systems. |
Benjamin Drung <benjamin.drung@canonical.com> | yes | 2026-03-17 | ||
| fix-systemd-networkd-create-run-systemd-network-if-missin.patch | fix(systemd-networkd): create /run/systemd/network if missing During testing this error could be found in the logs: ``` [FAILED] Failed to start systemd-network-generator.service - Generate Network Units from Kernel Command Line. [...] [ 3.034981] dracut-cmdline[198]: + cp -a /usr/lib/dracut/dracut-default.network /run/systemd/network/zzzz-dracut-default.network [ 3.038326] dracut-cmdline[301]: cp: cannot create regular file '/run/systemd/network/zzzz-dracut-default.network': No such file or directory ``` `systemd-network-generator` creates `/run/systemd/network` in `context_save` by calling `mkdir_p(p, 0755)`. In case `systemd-network-generator.service` fails this directory might not have been created. So create `/run/systemd/network` if missing. |
Benjamin Drung <benjamin.drung@canonical.com> | yes | 2026-03-18 | ||
| fix-base-move-initrd.target.wants-symlink-creation-to-wai.patch | fix(base): move initrd.target.wants symlink creation to wait_for_dev Commit 4d9d767da2e5 ("crypt/parse-crypt.sh: hide encrypted devices from systemd timeout warnings.") split parts of `wait_for_dev` into `set_systemd_timeout_for_dev` to allow setting the systemd timeout separately. `parse-crypt.sh` is the only direct caller of `set_systemd_timeout_for_dev`. |
Benjamin Drung <benjamin.drung@canonical.com> | yes | 2026-03-20 | ||
| fix-crypt-use-systemd-generator-for-setting-the-timeout.patch | fix(crypt): use systemd generator for setting the timeout Test 72 "NBD root=LABEL=dracut netroot=nbd:IP:port" can fail on slow architectures. ``` 603s [ 36.841605] dracut-cmdline[178]: + set_systemd_timeout_for_dev /dev/nbd0 [...] 603s [ 37.015613] dracut-cmdline[178]: + mkdir -p /etc/systemd/system/dev-nbd0.device.d 603s [ 37.020616] dracut-cmdline[178]: + echo [Unit] 603s [ 37.025872] dracut-cmdline[178]: + echo JobTimeoutSec=infinity 603s [ 37.031417] dracut-cmdline[178]: + echo JobRunningTimeoutSec=infinity 603s [ 37.036838] dracut-cmdline[178]: + type mark_hostonly 603s [ 37.043508] dracut-cmdline[178]: + _needreload=1 603s [ 37.047966] dracut-cmdline[178]: + [ -z ] 603s [ 37.055568] dracut-cmdline[178]: + [ 1 = 1 ] 603s [ 37.060790] dracut-cmdline[178]: + [ -z ] 603s [ 37.065785] dracut-cmdline[178]: + /sbin/initqueue --onetime --unique --name daemon-reload systemctl daemon-reload [...] [ TIME ] Timed out waiting for device dev-nbd0.device - /dev/nbd0. 679s [DEPEND] Dependency failed for systemd-cryp...0e2d54-ab3c-44b1-b289-7e1921480385. 679s [DEPEND] Dependency failed for cryptsetup.target - Local Encrypted Volumes. 679s [ 113.311607] systemd[1]: dev-nbd0.device: Job dev-nbd0.device/start timed out. 679s [ 113.332671] systemd[1]: Timed out waiting for device dev-nbd0.device - /dev/nbd0. [...] 751s Starting dracut-initqueue.service - dracut initqueue hook... [...] 822s [ 255.665608] dracut-initqueue[495]: + /usr/bin/systemctl daemon-reload [...] 835s [ 269.333700] systemd[1]: Reload requested from client PID 593 ('systemctl') (unit dracut-initqueue.service)... 835s [ 269.378921] systemd[1]: Reloading... 894s [ 328.119996] systemd[1]: Reloading finished in 67715 ms. ``` `parse-crypt.sh` calls `set_systemd_timeout_for_dev /dev/nbd0` which correctly creates the `timeout.conf` config. But for this configuration to take action, the systemd daemon needs to be reloaded. This call is added to the initqueue. Because the system is slow, `dev-nbd0.device` times out before the systemd daemon is reloaded. Move the systemd config generating code into a systemd generator. Then calling `systemctl daemon-reload` is not needed. |
Benjamin Drung <benjamin.drung@canonical.com> | yes | 2026-03-19 | ||
| fix-kernel-modules-install-mmc-drivers-on-all-architectur.patch | fix(kernel-modules): install mmc drivers on all architectures Some systems with Intel Atom CPUs (like Amston Lake, Alder Lake-N, Twin Lake) have onboard eMMC as a default storage. These eMMC drivers are missing in the initrd. On Ubuntu 26.04 "resolute" with linux 7.0.0-7.7 on amd64 the generic images increases by 0.5 MB (increase from 30.8 MB to 31.3 MB): ``` $ dracut --force -H $ 3cpio -t /boot/initrd.img > before $ 3cpio -e /boot/initrd.img Start End Size Compr. Extracted 0 B 92.0 kB 92.0 kB cpio 91.1 kB 92.0 kB 30.8 MB 30.7 MB zstd 58.4 MB $ # apply patch $ dracut --force -H $ 3cpio -t /boot/initrd.img > after $ 3cpio -e /boot/initrd.img Start End Size Compr. Extracted 0 B 92.0 kB 92.0 kB cpio 91.1 kB 92.0 kB 31.3 MB 31.2 MB zstd 59.0 MB $ diff -u before after | grep '^[-+]usr' +usr/lib/modules/7.0.0-7-generic/kernel/drivers/misc/cardreader +usr/lib/modules/7.0.0-7-generic/kernel/drivers/misc/cardreader/alcor_pci.ko.zst +usr/lib/modules/7.0.0-7-generic/kernel/drivers/misc/cardreader/rtsx_pci.ko.zst +usr/lib/modules/7.0.0-7-generic/kernel/drivers/misc/cardreader/rtsx_usb.ko.zst +usr/lib/modules/7.0.0-7-generic/kernel/drivers/misc/cb710 +usr/lib/modules/7.0.0-7-generic/kernel/drivers/misc/cb710/cb710.ko.zst +usr/lib/modules/7.0.0-7-generic/kernel/drivers/misc/tifm_core.ko.zst +usr/lib/modules/7.0.0-7-generic/kernel/drivers/mmc +usr/lib/modules/7.0.0-7-generic/kernel/drivers/mmc/core +usr/lib/modules/7.0.0-7-generic/kernel/drivers/mmc/core/mmc_block.ko.zst +usr/lib/modules/7.0.0-7-generic/kernel/drivers/mmc/core/sdio_uart.ko.zst +usr/lib/modules/7.0.0-7-generic/kernel/drivers/mmc/host +usr/lib/modules/7.0.0-7-generic/kernel/drivers/mmc/host/alcor.ko.zst +usr/lib/modules/7.0.0-7-generic/kernel/drivers/mmc/host/cb710-mmc.ko.zst +usr/lib/modules/7.0.0-7-generic/kernel/drivers/mmc/host/cqhci.ko.zst +usr/lib/modules/7.0.0-7-generic/kernel/drivers/mmc/host/mmc_hsq.ko.zst +usr/lib/modules/7.0.0-7-generic/kernel/drivers/mmc/host/mmc_spi.ko.zst +usr/lib/modules/7.0.0-7-generic/kernel/drivers/mmc/host/mtk-sd.ko.zst +usr/lib/modules/7.0.0-7-generic/kernel/drivers/mmc/host/of_mmc_spi.ko.zst +usr/lib/modules/7.0.0-7-generic/kernel/drivers/mmc/host/rtsx_pci_sdmmc.ko.zst +usr/lib/modules/7.0.0-7-generic/kernel/drivers/mmc/host/rtsx_usb_sdmmc.ko.zst +usr/lib/modules/7.0.0-7-generic/kernel/drivers/mmc/host/sdhci-acpi.ko.zst +usr/lib/modules/7.0.0-7-generic/kernel/drivers/mmc/host/sdhci-pci.ko.zst +usr/lib/modules/7.0.0-7-generic/kernel/drivers/mmc/host/sdhci-pltfm.ko.zst +usr/lib/modules/7.0.0-7-generic/kernel/drivers/mmc/host/sdhci-uhs2.ko.zst +usr/lib/modules/7.0.0-7-generic/kernel/drivers/mmc/host/sdhci-xenon-driver.ko.zst +usr/lib/modules/7.0.0-7-generic/kernel/drivers/mmc/host/sdhci.ko.zst +usr/lib/modules/7.0.0-7-generic/kernel/drivers/mmc/host/sdhci_f_sdh30.ko.zst +usr/lib/modules/7.0.0-7-generic/kernel/drivers/mmc/host/sdricoh_cs.ko.zst +usr/lib/modules/7.0.0-7-generic/kernel/drivers/mmc/host/tifm_sd.ko.zst +usr/lib/modules/7.0.0-7-generic/kernel/drivers/mmc/host/toshsd.ko.zst +usr/lib/modules/7.0.0-7-generic/kernel/drivers/mmc/host/usdhi6rol0.ko.zst +usr/lib/modules/7.0.0-7-generic/kernel/drivers/mmc/host/ushc.ko.zst +usr/lib/modules/7.0.0-7-generic/kernel/drivers/mmc/host/via-sdmmc.ko.zst +usr/lib/modules/7.0.0-7-generic/kernel/drivers/mmc/host/vub300.ko.zst +usr/lib/modules/7.0.0-7-generic/kernel/drivers/mmc/host/wbsd.ko.zst +usr/lib/modules/7.0.0-7-generic/kernel/lib/crc/crc7.ko.zst ``` |
Benjamin Drung <benjamin.drung@canonical.com> | yes | 2026-03-19 | ||
| fix-zipl-repair-parsing-of-rd.zipl-LABEL-UUID.patch | fix(zipl): repair parsing of rd.zipl=LABEL|UUID|...= label_uuid_to_dev needs the LABEL=|UUID=|... prefix as well to determine the full path. Without this fix it hangs waiting for just the UUID/LABEL/... without the /dev path, breaking boot, e.g.: |
Fabian Vogt <fvogt@suse.de> | yes | 2026-03-24 | ||
| test-run-qemu-double-QEMU-timeout-to-20-min-on-ARM.patch | test(run-qemu): double QEMU timeout to 20 min on ARM Test 72 might fail on ubuntu:devel and ubuntu:rolling on arm, because `qemu-system-aarch64` runs into the 10 minute timeout. So double the QEMU timeout to 20 min on ARM. |
Benjamin Drung <benjamin.drung@canonical.com> | yes | 2026-03-26 | ||
| fix-dracut-enable-hostonly_cmdline-in-hostonly-mode-again.patch | fix(dracut): enable hostonly_cmdline in hostonly mode again A fresh Ubuntu 26.04 installation with a RAID 1 fails to boot due to not assembling the RAID, because it neither sets `rd.auto` nor includes the cmdline (with `rd.md.uuid` set). The documentation for `hostonly_cmdline` says: > If **hostonly="yes"** and this option is not configured, it's > automatically set to "yes". When `hostonly=yes` was made the default, `hostonly_cmdline` was not set to `yes` any more in the default case. |
Benjamin Drung <benjamin.drung@canonical.com> | yes | 2026-03-27 | ||
| fix-dracut-properly-detect-kernel-version-with-sysroot.patch | fix(dracut): properly detect kernel version with --sysroot Both `uname -r` and `cd /lib/modules` do not give the proper kernel version of the sysroot directory. E.g. of the wrong behavior: ``` $ dracut -f --sysroot /srv/tw --no-kernel test.img $ uname -r 6.19.6-1-default $ ls -l /srv/tw/usr/lib/modules total 0 drwxr-xr-x. 1 root root 630 Mar 25 16:30 6.19.8-1-default ``` Follow-up for 2b2debd7947b7d5a357c1a89691a75dfd3565747 |
Antonio Alvarez Feijoo <antonio.feijoo@suse.com> | yes | 2026-03-25 | ||
| test-FULL-SYSTEMD-increase-device-timeout-to-infinity.patch | test(FULL-SYSTEMD): increase device timeout to infinity Test 41 fails to boot on arm64 on Debian in the autopkgtest because the service waiting for `/dev/disk/by-label/dracutusr` times out after 90 seconds. This is just caused by the arm64 runner being slow. So increase the device timeout to infinity to make the test succeed on slow systems. See also: d62de66d35d ("test(SYSTEMD-INITRD): increase device timeout to infinity") |
Benjamin Drung <benjamin.drung@canonical.com> | yes | 2026-03-27 | ||
| fix-SYSTEMD-IMPORT-remount-sysroot-with-dev-and-suid-flag.patch | fix(SYSTEMD-IMPORT): remount /sysroot with dev and suid flags When using `systemd-import` combined with a tarball, the resulting root filesystem retains the `nosuid` mount flag. This breaks any `setuid` binaries in the booted OS, causing critical utilities like sudo to fail with: ``` ``` Apply a workaround to remount `/sysroot` with the `dev` and `suid` flags. This workaround can be dropped when systemd is fixed or made conditional to only the affected systemd versions. Workaround for: https://github.com/systemd/systemd/issues/41352 |
Benjamin Drung <benjamin.drung@canonical.com> | yes | 2026-03-25 | ||
| fix-dracut-determine-hostonly_cmdline-after-hostonly-sett.patch | fix(dracut): determine hostonly_cmdline after hostonly setting Commit 04af3c097797 enabled `hostonly_cmdline` in host-only mode again, but determining that was done too early. In case `/dev` is not mounted, the host-only mode is turned off. At that point `hostonly_cmdline` has already be enabled. So determine the default for `hostonly_cmdline` after the final check for `hostonly`. |
Benjamin Drung <benjamin.drung@canonical.com> | yes | debian | 2026-04-07 | |
| fix-set-DRACUT_TMPDIR-before-using-it-in-dlog_init.patch | fix: set DRACUT_TMPDIR before using it in dlog_init() Otherwise, dracut is performing mkfifo /systemd-cat on the host. |
Jo Zzsi <jozzsicsataban@gmail.com> | no | upstream, https://github.com/dracut-ng/dracut-ng/pull/2359 | 2026-04-08 | |
| docs-mention-order-of-precedence.patch | docs: mention order of precedence Document the order of precedence (from low to high): * configuration files * environment variables * command-line options |
Benjamin Drung <benjamin.drung@canonical.com> | yes | 2026-04-10 | ||
| test-run-all-tests-with-no-hostonly-cmdline.patch | test: run all tests with --no-hostonly-cmdline Several tests fail in a Ubuntu VM after commit 04af3c097797 enabled `hostonly_cmdline` in hostonly mode again, because the host disks leak into the `cmdline` config stored in the initrd. See 8c70c5bf99ea ("test(sysroot): run with --no-hostonly-cmdline") for a more detailed explanation. So run all tests with `--no-hostonly-cmdline`. |
Benjamin Drung <benjamin.drung@canonical.com> | yes | 2026-04-10 | ||
| fix-dracut-remove-leading-space-from-recorded-arguments.patch | fix(dracut): remove leading space from recorded arguments `/lib/dracut/build-parameter.txt` records the dracut arguments, but contains a leading space. Remove the leading space when recording the arguments. |
Benjamin Drung <benjamin.drung@canonical.com> | yes | 2026-04-10 | ||
| fix-dracut-do-not-record-parameters-that-do-not-change-th.patch | fix(dracut): do not record parameters that do not change the initrd `dracut --reproducible` encodes the command line in the output. This is a bit of a hindrance to reproducibility, because it can encode a random strings. Of all the things, the `--tmpdir` should matter the least for the generated image(s). So do not record parameters that do not change the initrd. These parameters are: * `--tmpdir` * `-L`, `--stdlog` * `-f`, `--force` * `--debug` * `--logfile` * `-v`, `--verbose` * `-q`, `--quiet` * `--regenerate-all` * `-p`, `--parallel` * `--printsize` * `--printconfig` |
Benjamin Drung <benjamin.drung@canonical.com> | yes | 2026-04-10 | ||
| refactor-70crypt-extract-luks_open_interactive-into-crypt.patch | refactor(70crypt): extract luks_open_interactive into crypt-lib Move the interactive LUKS open logic into a shared luks_open_interactive function, allowing overlayfs-crypt to reuse it. |
Nadzeya Hutsko <nadzeya.hutsko@canonical.com> | yes | 2026-04-10 | ||
| feat-overlayfs-crypt-add-new-encrypted-persistent-overlay.patch | feat(overlayfs-crypt): add new encrypted persistent overlay support Add a new overlayfs-crypt dracut module that supports LUKS-encrypted persistent overlay devices via the rd.overlay.crypt kernel parameter, similar to the overlayroot=crypt in cloud-initramfs-tools. If the device already contains a LUKS volume, the user is prompted for the passphrase interactively (via Plymouth if available, otherwise TTY). Otherwise, the device is wiped, formatted with LUKS using a randomly generated passphrase, and a new filesystem is created on it. The overlayfs-crypt module depends on the overlayfs module and signals mount-overlayfs.sh to proceed via a shared marker file (/run/overlayfs-crypt-ready). |
Nadzeya Hutsko <nadzeya.hutsko@canonical.com> | yes | 2026-04-10 | ||
| feat-dracut-add-a-DRACUT_EXTRA_ARGS-environment-variable.patch | feat(dracut): add a DRACUT_EXTRA_ARGS environment variable Some build tools (e.g. autopkgtest-build-qemu) invoke dracut indirectly through update-initramfs via dpkg triggers, making it impossible to pass extra flags directly on the command line. Add a DRACUT_EXTRA_ARGS environment variable whose contents are word-split and prepended to the dracut argument list before option parsing. This allows callers to inject arbitrary flags without modifying the configuration on disk: DRACUT_EXTRA_ARGS=--no-hostonly autopkgtest-build-qemu ... The variable is intentionally word-split (like MAKEFLAGS), so arguments that themselves contain spaces must be shell-quoted within the value: DRACUT_EXTRA_ARGS='--add "mod1 mod2"' dracut Changed test 13 to provide test coverage for DRACUT_EXTRA_ARGS variable. |
Jo Zzsi <jozzsicsataban@gmail.com> | no | upstream, https://github.com/dracut-ng/dracut-ng/pull/2369 | 2026-04-10 | |
| refactor-overlayfs-exit-early-in-case-LiveOS_rootfs-is-mo.patch | refactor(overlayfs): exit early in case LiveOS_rootfs is mounted Increase the code readability by exiting early in case LiveOS_rootfs is already mounted. |
Benjamin Drung <benjamin.drung@canonical.com> | yes | 2026-04-13 | ||
| fix-overlayfs-unmount-NEWROOT-before-mounting-overlay.patch | fix(overlayfs): unmount NEWROOT before mounting overlay When using `rd.overlay` the mount point `/run/rootfsbase` is not accessible any more, because `LiveOS_rootfs` is mounted over it. This is `/proc/mounts` from the `tmpfs overlay (rd.overlay)` test case: ``` tmpfs /run tmpfs rw,nosuid,nodev,size=194628k,nr_inodes=819200,mode=755,inode64 0 0 /dev/sda /run/rootfsbase ext4 ro,relatime 0 0 LiveOS_rootfs / overlay rw,relatime,lowerdir=/run/rootfsbase,upperdir=/run/overlayfs,workdir=/run/ovlwork,uuid=on,nouserxattr 0 0 LiveOS_rootfs /run/rootfsbase overlay rw,relatime,lowerdir=/run/rootfsbase,upperdir=/run/overlayfs,workdir=/run/ovlwork,uuid=on,nouserxattr 0 0 devtmpfs /dev devtmpfs rw,nosuid,size=159436k,nr_inodes=39859,mode=755,inode64 0 0 tmpfs /dev/shm tmpfs rw,nosuid,nodev,inode64,usrquota 0 0 devpts /dev/pts devpts rw,nosuid,noexec,relatime,gid=5,mode=600,ptmxmode=000 0 0 sysfs /sys sysfs rw,nosuid,nodev,noexec,relatime 0 0 securityfs /sys/kernel/security securityfs rw,nosuid,nodev,noexec,relatime 0 0 cgroup2 /sys/fs/cgroup cgroup2 rw,nosuid,nodev,noexec,relatime,nsdelegate,memory_recursiveprot,memory_hugetlb_accounting 0 0 none /sys/fs/pstore pstore rw,nosuid,nodev,noexec,relatime 0 0 efivarfs /sys/firmware/efi/efivars efivarfs rw,nosuid,nodev,noexec,relatime 0 0 bpf /sys/fs/bpf bpf rw,nosuid,nodev,noexec,relatime,mode=700 0 0 configfs /sys/kernel/config configfs rw,nosuid,nodev,noexec,relatime 0 0 proc /proc proc rw,nosuid,nodev,noexec,relatime 0 0 ``` This breaks use cases where the underlying needs to be accessed. |
Benjamin Drung <benjamin.drung@canonical.com> | yes | 2026-04-13 | ||
| feat-dracut-add-module-to-add-fw-files-from-DT-firmware-n.patch | feat(dracut): add module to add fw files from DT firmware-name properties Devicetree based platforms may need board / model specific firmwares in the initrd. E.g. on Qualcomm Snapdragon X1e Windows (WoA) laptops the qcom_q6v5_pas ADSP driver gets added to the initrd because dracut includes all pinctrl drivers in the initrd and the 6e80000.pinctrl lpass-lpi-pinctrl device has a supplier:platform:6800000.remoteproc symlink, dragging the ADSP driver into the initrd. The ADSP driver tries to load model-specific firmware files with the filenames to use specified in a devicetree firmware-name properties. This module adds support for retrieving the firmware-names from these devicetree properties and adding the firmware files to the initrd. The ADSP driver, being a remoteproc driver does bind even without the firmware files, operating in a degraded mode. This means e.g. no battery readings and no working audio, since both depend on the ADSP. These firmware files need to be in the initrd to avoid this degraded mode. The ADSP driver getting brought into the initrd is actually a good thing, since the ADSP also controls the Type-C PD-controller(s) and when the firmware is present and loaded this results in a reset of all Type-C USB ports, so this needs to happen early on, to e.g. avoid USB-storage devices getting disconnected and filesystems on top getting in a broken state. |
Hans de Goede <johannes.goede@oss.qualcomm.com> | no | upstream, https://github.com/dracut-ng/dracut-ng/pull/2266 | 2026-03-01 | |
| fix-avoid-arguments-for-dot-commands.patch | fix: avoid arguments for dot commands Dot commands don't support arguments in Dash/ posix shell, this is SC2240. Use 'set' instead. |
Vitaly Kuznetsov <vkuznets@redhat.com> | no | upstream, https://github.com/dracut-ng/dracut-ng/pull/2384 | 2026-04-13 | |
| test-ISCSI-wait-for-tgtd-startup.patch | test(ISCSI): wait for tgtd startup Test 71 (ISCSI-MULTI) sometimes fails when starting the server: ``` + tgtd + tgtadm --lld iscsi --mode target --op new --tid 1 --targetname iqn.2009-06.dracut:target0 + _poweroff + local exit_code=107 + set +x Powering down. ``` The tgtadm command is called before tgtd finished starting up. So add waiting for tgtd service to be ready. |
Benjamin Drung <benjamin.drung@canonical.com> | yes | 2026-04-13 | ||
| fix-iscsi-handle-empty-URI-in-firmware-boot-mode.patch | fix(iscsi): handle empty URI in firmware boot mode When rd.iscsi.firmware=1 is set, netroot is either 'iscsi' or 'iscsi:' with no real URI. parse_iscsi_root() was called with these values causing 'shift count out of range' errors as shift was called on empty positional parameters. Add two guards in parse_iscsi_root() to return early when there are no parameters left to parse, and skip handle_netroot() in iscsiroot.sh when netroot has no real target. |
gomid4497 <rakeshw728@gmail.com> | no | upstream, https://github.com/dracut-ng/dracut-ng/pull/2382 | 2026-04-13 |
All known versions for source package 'dracut'
- 110-12 (sid)
- 110-8 (forky)
- 106-6 (trixie)
- 106-5~bpo12+1 (bookworm-backports)
- 059-4 (bookworm)
