From d0382a14c6c229911c9a840269ad09902a3dc8a1 Mon Sep 17 00:00:00 2001 From: veilor-org Date: Sun, 3 May 2026 07:37:00 +0100 Subject: [PATCH] v0.5.11: mask plymouth services in chroot %post MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 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/ 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. --- overlay/usr/local/bin/veilor-installer | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/overlay/usr/local/bin/veilor-installer b/overlay/usr/local/bin/veilor-installer index 87299b6..f698aff 100644 --- a/overlay/usr/local/bin/veilor-installer +++ b/overlay/usr/local/bin/veilor-installer @@ -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