Dear Maintainer,
I'm trying Dracut as an initramfs and uki generator and noticed a few issues in
the scripts /usr/sbin/update-initramfs and /etc/kernel/postinst.d/dracut:
Issues:
1. UEFI Configuration Ignored
Both scripts ignore the uefi=yes option in /etc/dracut.conf and are hardcoded
to generate the initramfs at /boot/initrd.img-*. As a result, a Unified Kernel
Image (UKI) is not generated, even though this is explicitly requested in the
Dracut configuration.
2. Duplicate Functionality
The scripts re-implement logic that Dracut already handles internally, such as:
- Creating an initrd.img-*.new file and renaming it upon success
- Invoking bootloader hooks
3. Conflict with kernel-install and UKI layout
When used in combination with systemd's kernel-install mechanism, and with
/etc/kernel/install.conf configured as:
layout=uki
initrd_generator=dracut
uki_generator=dracut
The script /usr/lib/kernel/install.d/90-uki-copy.install fails. This happens
because it expects either:
- A uki.efi file in the staging area, or
- An image filename with an .efi suffix
Related to #1095646
Kind regards,
Michael
Below is a minimal recipe to reproduce this issue (or a very similar issue).
With uefi=yes in dracut.conf, no EFI is generated *and* no error is
reported to dpkg.
Installing a kernel after dracut (in a separate apt run) doesn't help.
Calling dracut by hand *does* generate an EFI.
I think the postinst/trigger is wrong somehow.
Is this intentional?
If so, why, and where is it documented?
How am I *supposed* to get a UKI on Debian 14?
bash5$ mmdebstrap forky /dev/null --include=linux-image-cloud-amd64,dracut,systemd-boot-efi,binutils --essential-hook='mkdir -p $1/etc/dracut.conf.d && echo uefi=yes >$1/etc/dracut.conf.d/50-foo.conf' --customize-hook='set -x; chroot $1 find boot -ls; chroot $1 apt-get install linux-image-generic -qq -yy; chroot $1 find boot -ls; chroot $1 dracut --force; chroot $1 find boot -ls' --quiet
+ chroot /tmp/mmdebstrap.xDYzBHn0s4 find boot -ls
2378907 0 drwxr-xr-x 2 root root 120 Mar 12 04:40 boot
2396625 35380 -rwx------ 1 root root 36225536 Mar 12 04:40 boot/initrd.img-6.18.15+deb14-cloud-amd64
2389383 13344 -rw-r--r-- 1 root root 13661824 Feb 27 21:53 boot/vmlinuz-6.18.15+deb14-cloud-amd64
2389382 132 -rw-r--r-- 1 root root 132303 Feb 27 21:53 boot/config-6.18.15+deb14-cloud-amd64
2389381 4 -rw-r--r-- 1 root root 99 Feb 27 21:53 boot/System.map-6.18.15+deb14-cloud-amd64
+ chroot /tmp/mmdebstrap.xDYzBHn0s4 apt-get install linux-image-generic -qq -yy
Selecting previously unselected package linux-base-6.18.15+deb14-amd64.
(Reading database ... 10088 files and directories currently installed.)
Preparing to unpack .../linux-base-6.18.15+deb14-amd64_6.18.15-1_amd64.deb ...
Unpacking linux-base-6.18.15+deb14-amd64 (6.18.15-1) ...
Selecting previously unselected package linux-image-6.18.15+deb14-amd64.
Preparing to unpack .../linux-image-6.18.15+deb14-amd64_6.18.15-1_amd64.deb ...
Unpacking linux-image-6.18.15+deb14-amd64 (6.18.15-1) ...
Selecting previously unselected package linux-base-amd64.
Preparing to unpack .../linux-base-amd64_6.18.15-1_amd64.deb ...
Unpacking linux-base-amd64 (6.18.15-1) ...
Selecting previously unselected package linux-image-amd64.
Preparing to unpack .../linux-image-amd64_6.18.15-1_amd64.deb ...
Unpacking linux-image-amd64 (6.18.15-1) ...
Setting up linux-base-6.18.15+deb14-amd64 (6.18.15-1) ...
Setting up linux-base-amd64 (6.18.15-1) ...
Setting up linux-image-6.18.15+deb14-amd64 (6.18.15-1) ...
I: /vmlinuz is now a symlink to boot/vmlinuz-6.18.15+deb14-amd64
I: /initrd.img is now a symlink to boot/initrd.img-6.18.15+deb14-amd64
/etc/kernel/postinst.d/dracut:
dracut: Generating /boot/initrd.img-6.18.15+deb14-amd64
dracut[W]: Turning off host-only mode: /dev is not mounted!
dracut-install: WARNING: could not locate dlopen dependency for gcrypt feature requested by '/usr/lib/x86_64-linux-gnu/systemd/libsystemd-shared-260.so'
Setting up linux-image-amd64 (6.18.15-1) ...
+ chroot /tmp/mmdebstrap.xDYzBHn0s4 find boot -ls
2378907 0 drwxr-xr-x 2 root root 200 Mar 12 04:41 boot
2403681 50984 -rwx------ 1 root root 52204544 Mar 12 04:41 boot/initrd.img-6.18.15+deb14-amd64
2396690 13836 -rw-r--r-- 1 root root 14165632 Feb 27 21:53 boot/vmlinuz-6.18.15+deb14-amd64
2396689 288 -rw-r--r-- 1 root root 293944 Feb 27 21:53 boot/config-6.18.15+deb14-amd64
2396688 4 -rw-r--r-- 1 root root 93 Feb 27 21:53 boot/System.map-6.18.15+deb14-amd64
2396625 35380 -rwx------ 1 root root 36225536 Mar 12 04:40 boot/initrd.img-6.18.15+deb14-cloud-amd64
2389383 13344 -rw-r--r-- 1 root root 13661824 Feb 27 21:53 boot/vmlinuz-6.18.15+deb14-cloud-amd64
2389382 132 -rw-r--r-- 1 root root 132303 Feb 27 21:53 boot/config-6.18.15+deb14-cloud-amd64
2389381 4 -rw-r--r-- 1 root root 99 Feb 27 21:53 boot/System.map-6.18.15+deb14-cloud-amd64
+ chroot /tmp/mmdebstrap.xDYzBHn0s4 dracut --force
dracut[W]: Turning off host-only mode: /dev is not mounted!
dracut-install: WARNING: could not locate dlopen dependency for gcrypt feature requested by '/usr/lib/x86_64-linux-gnu/systemd/libsystemd-shared-260.so'
+ chroot /tmp/mmdebstrap.xDYzBHn0s4 find boot -ls
2378907 0 drwxr-xr-x 3 root root 220 Mar 12 04:41 boot
2403691 0 drwxr-xr-x 3 root root 60 Mar 12 04:41 boot/EFI
2403692 0 drwxr-xr-x 2 root root 60 Mar 12 04:42 boot/EFI/Linux
2404738 35380 -rwx------ 1 root root 36225536 Mar 12 04:42 boot/EFI/Linux/linux-6.18.15+deb14-cloud-amd64-d1602968b4814973a79578ce111e1353.efi
2403681 50984 -rwx------ 1 root root 52204544 Mar 12 04:41 boot/initrd.img-6.18.15+deb14-amd64
2396690 13836 -rw-r--r-- 1 root root 14165632 Feb 27 21:53 boot/vmlinuz-6.18.15+deb14-amd64
2396689 288 -rw-r--r-- 1 root root 293944 Feb 27 21:53 boot/config-6.18.15+deb14-amd64
2396688 4 -rw-r--r-- 1 root root 93 Feb 27 21:53 boot/System.map-6.18.15+deb14-amd64
2396625 35380 -rwx------ 1 root root 36225536 Mar 12 04:40 boot/initrd.img-6.18.15+deb14-cloud-amd64
2389383 13344 -rw-r--r-- 1 root root 13661824 Feb 27 21:53 boot/vmlinuz-6.18.15+deb14-cloud-amd64
2389382 132 -rw-r--r-- 1 root root 132303 Feb 27 21:53 boot/config-6.18.15+deb14-cloud-amd64
2389381 4 -rw-r--r-- 1 root root 99 Feb 27 21:53 boot/System.map-6.18.15+deb14-cloud-amd64