Package: dracut / 110-8

Metadata

Package Version Patches format
dracut 110-8 3.0 (quilt)

Patch series

view the series file
Patch File delta Description
fix multipath include Debian specific priority of udev ru.patch | (download)

modules.d/70dmraid/module-setup.sh | 2 2 + 0 - 0 !
modules.d/70multipath/module-setup.sh | 2 2 + 0 - 0 !
2 files changed, 4 insertions(+)

 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).

Bug-Ubuntu: https://launchpad.net/bugs/2137190
fix kernel modules export use return instead of exit in p.patch | (download)

man/dracut.modules.7.adoc | 7 6 + 1 - 0 !
modules.d/70kernel-modules-export/modules-export.sh | 12 6 + 6 - 0 !
2 files changed, 12 insertions(+), 7 deletions(-)

 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.

Co-authored-by: Neal Gompa <neal@gompa.dev>
Fixes: https://github.com/dracut-ng/dracut-ng/issues/2227
fix memdisk use return instead of exit in cmdline hook.patch | (download)

modules.d/70memdisk/memdisk.sh | 6 3 + 3 - 0 !
1 file changed, 3 insertions(+), 3 deletions(-)

 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.

Fixes: https://github.com/dracut-ng/dracut-ng/issues/2227
fix ppcmac use return instead of exit in pre udev hook.patch | (download)

modules.d/70ppcmac/load-thermal.sh | 2 1 + 1 - 0 !
1 file changed, 1 insertion(+), 1 deletion(-)

 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.

Fixes: https://github.com/dracut-ng/dracut-ng/issues/2227
fix syslog use return instead of exit in initqueue online.patch | (download)

modules.d/77syslog/rsyslogd-start.sh | 2 1 + 1 - 0 !
1 file changed, 1 insertion(+), 1 deletion(-)

 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.

Fixes: https://github.com/dracut-ng/dracut-ng/issues/2227
test force cpu to neoverse n1 for arm64 when QEMU_CPU not.patch | (download)

test/run-qemu | 11 10 + 1 - 0 !
1 file changed, 10 insertions(+), 1 deletion(-)

 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.

Co-authored-by: Benjamin Drung <bdrung@ubuntu.com>
test use separate networks for different NICs.patch | (download)

test/TEST-70-ISCSI/test.sh | 14 8 + 6 - 0 !
test/TEST-71-ISCSI-MULTI/test.sh | 14 8 + 6 - 0 !
2 files changed, 16 insertions(+), 12 deletions(-)

 test: use separate networks for different nics

The iSCSI tests 70 and 71 use two network interfaces. The server
test start hostname numbering at 0.patch | (download)

test/TEST-60-NFS/dhcpd.conf | 32 16 + 16 - 0 !
test/TEST-60-NFS/exports | 4 2 + 2 - 0 !
test/TEST-60-NFS/server-init.sh | 8 4 + 4 - 0 !
test/TEST-70-ISCSI/dhcpd.conf | 4 2 + 2 - 0 !
test/TEST-71-ISCSI-MULTI/dhcpd.conf | 4 2 + 2 - 0 !
test/TEST-72-NBD/dhcpd.conf | 12 6 + 6 - 0 !
6 files changed, 32 insertions(+), 32 deletions(-)

 test: start hostname numbering at 0

Start numbering the hostnames at 0 to match the MAC address with the
hostname.

test do not use the same IP for different MAC addresses.patch | (download)

test/TEST-60-NFS/dhcpd.conf | 30 15 + 15 - 0 !
test/TEST-72-NBD/dhcpd.conf | 10 5 + 5 - 0 !
2 files changed, 20 insertions(+), 20 deletions(-)

 test: do not use the same ip for different mac addresses

fix dbus remove After Requires from dbus service socket.patch | (download)

.github/workflows/daily-network.yml | 6 0 + 6 - 0 !
modules.d/16dbus-broker/module-setup.sh | 5 3 + 2 - 0 !
modules.d/16dbus-daemon/module-setup.sh | 10 6 + 4 - 0 !
3 files changed, 9 insertions(+), 12 deletions(-)

 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`.

Fixes: https://github.com/dracut-ng/dracut-ng/issues/1815
Bug-Ubuntu: https://launchpad.net/bugs/2141603
test use different MAC addresses for all NFS client tests.patch | (download)

test/TEST-60-NFS/dhcpd.conf | 128 81 + 47 - 0 !
test/TEST-60-NFS/test.sh | 34 17 + 17 - 0 !
2 files changed, 98 insertions(+), 64 deletions(-)

 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.

test switch QEMU network backend to dgram UDP.patch | (download)

test/TEST-60-NFS/test.sh | 8 4 + 4 - 0 !
test/TEST-70-ISCSI/test.sh | 8 4 + 4 - 0 !
test/TEST-71-ISCSI-MULTI/test.sh | 8 4 + 4 - 0 !
test/TEST-72-NBD/test.sh | 8 4 + 4 - 0 !
4 files changed, 16 insertions(+), 16 deletions(-)

 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

test switch from isc dhcp server to dnsmasq.patch | (download)

test/TEST-60-NFS/dhcpd.conf | 211 0 + 211 - 0 !
test/TEST-60-NFS/dnsmasq.conf | 95 95 + 0 - 0 !
test/TEST-60-NFS/server-init.sh | 9 3 + 6 - 0 !
test/TEST-60-NFS/test.sh | 9 4 + 5 - 0 !
test/TEST-70-ISCSI/dhcpd.conf | 48 0 + 48 - 0 !
test/TEST-70-ISCSI/dnsmasq.conf | 30 30 + 0 - 0 !
test/TEST-70-ISCSI/server-init.sh | 4 1 + 3 - 0 !
test/TEST-70-ISCSI/test.sh | 5 2 + 3 - 0 !
test/TEST-71-ISCSI-MULTI/dhcpd.conf | 48 0 + 48 - 0 !
test/TEST-71-ISCSI-MULTI/dnsmasq.conf | 30 30 + 0 - 0 !
test/TEST-71-ISCSI-MULTI/server-init.sh | 4 1 + 3 - 0 !
test/TEST-71-ISCSI-MULTI/test.sh | 5 2 + 3 - 0 !
test/TEST-72-NBD/dhcpd.conf | 66 0 + 66 - 0 !
test/TEST-72-NBD/dnsmasq.conf | 35 35 + 0 - 0 !
test/TEST-72-NBD/server-init.sh | 6 2 + 4 - 0 !
test/TEST-72-NBD/test.sh | 6 3 + 3 - 0 !
16 files changed, 208 insertions(+), 403 deletions(-)

 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.

Fixes: https://github.com/dracut-ng/dracut-ng/issues/1451
fix crypt honor timeout setting when using UUID LABEL etc.patch | (download)

modules.d/70crypt/parse-crypt.sh | 3 2 + 1 - 0 !
1 file changed, 2 insertions(+), 1 deletion(-)

 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.

fix crypt use d instead of f to check for NEWROOT proc di.patch | (download)

modules.d/70crypt/cryptroot-ask.sh | 2 1 + 1 - 0 !
1 file changed, 1 insertion(+), 1 deletion(-)

 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.

Fixes: d0d1ea3 ("prompt the crypto disk, when asking for a password")
Signed-off-by: Sidharth Sankar <sidstuffhere@gmail.com>
feat overlayfs support tmpfs size parameter in rd.overlay.patch | (download)

man/dracut.cmdline.7.adoc | 23 23 + 0 - 0 !
modules.d/70overlayfs/prepare-overlayfs.sh | 29 29 + 0 - 0 !
test/TEST-21-OVERLAYFS/assertion.sh | 12 12 + 0 - 0 !
test/TEST-21-OVERLAYFS/test.sh | 2 2 + 0 - 0 !
4 files changed, 66 insertions(+)

 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.

test SYSTEMD INITRD increase device timeout to infinity.patch | (download)

test/TEST-42-SYSTEMD-INITRD/test.sh | 2 1 + 1 - 0 !
1 file changed, 1 insertion(+), 1 deletion(-)

 test(systemd-initrd): increase device timeout to infinity
MIME-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: 8bit

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-ddevice - /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-parsepoints 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.

fix systemd networkd create run systemd network if missin.patch | (download)

modules.d/11systemd-networkd/networkd-config.sh | 1 1 + 0 - 0 !
1 file changed, 1 insertion(+)

 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.

fix base move initrd.target.wants symlink creation to wai.patch | (download)

modules.d/80base/dracut-dev-lib.sh | 22 16 + 6 - 0 !
1 file changed, 16 insertions(+), 6 deletions(-)

 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`.

Fixes: 4d9d767da2e5 ("crypt/parse-crypt.sh: hide encrypted devices from systemd timeout warnings.")
fix crypt use systemd generator for setting the timeout.patch | (download)

modules.d/70crypt/crypt-generator.sh | 39 39 + 0 - 0 !
modules.d/70crypt/module-setup.sh | 4 3 + 1 - 0 !
modules.d/70crypt/parse-crypt.sh | 7 0 + 7 - 0 !
3 files changed, 42 insertions(+), 8 deletions(-)

 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.

Fixes: https://github.com/dracut-ng/dracut-ng/issues/2307
Bug-Ubuntu: https://launchpad.net/bugs/2143264
fix kernel modules install mmc drivers on all architectur.patch | (download)

modules.d/70kernel-modules/module-setup.sh | 4 2 + 2 - 0 !
1 file changed, 2 insertions(+), 2 deletions(-)

 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
fix zipl repair parsing of rd.zipl LABEL UUID.patch | (download)

modules.d/73zipl/parse-zipl.sh | 8 4 + 4 - 0 !
1 file changed, 4 insertions(+), 4 deletions(-)

 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.:

Warning: 200c78bc-7099-3c44-f3b5-6adf477ffd15 does not exist

test run qemu double QEMU timeout to 20 min on ARM.patch | (download)

test/run-qemu | 11 9 + 2 - 0 !
1 file changed, 9 insertions(+), 2 deletions(-)

 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.

fix dracut enable hostonly_cmdline in hostonly mode again.patch | (download)

dracut.sh | 2 1 + 1 - 0 !
1 file changed, 1 insertion(+), 1 deletion(-)

 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.

Bug-Ubuntu: https://launchpad.net/bugs/2144948
Fixes: 24fb4c28538b ("feat(dracut): make hostonly the default")
fix dracut properly detect kernel version with sysroot.patch | (download)

dracut.sh | 5 3 + 2 - 0 !
1 file changed, 3 insertions(+), 2 deletions(-)

 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
realpath: /srv/tw/lib/modules/6.19.6-1-default: No such file or directory
$ 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

test FULL SYSTEMD increase device timeout to infinity.patch | (download)

test/TEST-41-FULL-SYSTEMD/test.sh | 2 1 + 1 - 0 !
1 file changed, 1 insertion(+), 1 deletion(-)

 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")