v0.5.11: mask plymouth services in chroot %post

v0.5.10 added plymouth.enable=0 + rd.plymouth=0 to kernel cmdline,
but `plymouth-start.service` still registered and ran in real-root
boot. LUKS prompt remained invisible — dracut-initqueue stuck
waiting for /dev/disk/by-uuid/<luks> to materialize.

Belt-and-suspenders: mask plymouth-{start,quit,quit-wait,read-write,
switch-root}.service in the generated kickstart's %post chroot so the
units can never start.

Effect: systemd-tty-ask-password-agent handles LUKS prompt directly
on tty1 with text "Please enter passphrase for disk ...:" — sendkey-
friendly + works on real hardware too.
This commit is contained in:
veilor-org 2026-05-03 07:37:00 +01:00
parent deea062120
commit d0382a14c6

View file

@ -501,6 +501,16 @@ bash $REPO/scripts/selinux/build-policy.sh || echo "[WARN] SELinux build failed;
# Apply KDE theme + DuckSans + os-release branding
bash $REPO/scripts/kde-theme-apply.sh
# Mask plymouth services. Plymouth boot splash is unreliable in QEMU
# (race between plymouth-start and systemd-ask-password-plymouth.path
# leaves LUKS prompt invisible → boot hangs in dracut-initqueue).
# Disabled at kernel-cmdline level (plymouth.enable=0 rd.plymouth=0)
# but services still register; mask them to prevent any startup attempt.
# LUKS prompt falls back to systemd-tty-ask-password-agent on tty1.
systemctl mask plymouth-start.service plymouth-quit.service \
plymouth-quit-wait.service plymouth-read-write.service \
plymouth-switch-root.service 2>/dev/null || true
# Symlink display-manager.service → sddm.service. (Anaconda usually
# handles this when sddm is the only DM, but be explicit.)
ln -sf /usr/lib/systemd/system/sddm.service /etc/systemd/system/display-manager.service