v0.5.19: dracut --regenerate-all (fix chroot glob expansion bug)

v0.5.18 added crypt + systemd-cryptsetup to dracut.conf.d/99-veilor-
no-plymouth.conf. Boot test still failed: dracut-initqueue stuck
waiting on dev-disk-by-uuid → systemd-cryptsetup never fired.

Diagnosis: %post chroot used bash glob `for kver in /lib/modules/*/`.
In chroot, shell may be dash + nullglob unset → unmatched glob
expands literally to "/lib/modules/*/" → dracut --kver "/lib/modules/*/"
fails silently with `|| true`. Initramfs never regenerated → still
contains the v0.5.14 omit_dracutmodules-only config without crypt.

Fix: dracut --force --regenerate-all (walks /lib/modules internally,
no shell glob needed). One call regens all kernel initramfses with
the new dracut.conf.d in scope.
This commit is contained in:
veilor-org 2026-05-03 18:39:13 +01:00
parent 2be5692c74
commit 15311f56e9

View file

@ -562,11 +562,11 @@ omit_dracutmodules+=" plymouth "
add_dracutmodules+=" crypt systemd-cryptsetup " add_dracutmodules+=" crypt systemd-cryptsetup "
install_items+=" /usr/bin/systemd-tty-ask-password-agent " install_items+=" /usr/bin/systemd-tty-ask-password-agent "
EOF EOF
# Regenerate initramfs for the installed kernel(s). # Regenerate initramfs for ALL installed kernels with our dracut config.
for kver in /lib/modules/*/; do # `--regenerate-all` walks /lib/modules itself; safer than bash glob in
kver=$(basename "$kver") # chroot where shell may be dash + nullglob unset → glob expands literally
dracut --force --kver "$kver" 2>/dev/null || true # → dracut --kver "/lib/modules/*/" fails silently.
done dracut --force --regenerate-all 2>&1 | tail -5 || true
# Layer 2: real-root masks # Layer 2: real-root masks
mkdir -p /etc/systemd/system mkdir -p /etc/systemd/system