From e90d6ef6628fdbceecd204d4457cb3f8dcc039de Mon Sep 17 00:00:00 2001 From: veilor-org Date: Sun, 3 May 2026 09:08:36 +0100 Subject: [PATCH] v0.5.12: mask plymouth via /dev/null symlinks (systemctl mask N/A in chroot) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit v0.5.11 used `systemctl mask plymouth-*.service` in generated kickstart %post chroot block. systemctl needs systemd running, which it isn't in anaconda chroot — calls failed silently (|| true). Boot test confirmed: post-reboot showed both: Started plymouth-start.service - Show Plymouth Boot Screen Started systemd-ask-password-plymouth.path - Forward Password Requests Fix: write /dev/null symlinks directly (`ln -sf /dev/null /etc/systemd/system/`). Achieves what mask does without needing systemd. Also adds the path-activated unit (systemd-ask-password-plymouth.path) which actually pulls plymouth in during dracut-initqueue. --- overlay/usr/local/bin/veilor-installer | 23 +++++++++++++++++------ 1 file changed, 17 insertions(+), 6 deletions(-) diff --git a/overlay/usr/local/bin/veilor-installer b/overlay/usr/local/bin/veilor-installer index f698aff..e1b6acc 100644 --- a/overlay/usr/local/bin/veilor-installer +++ b/overlay/usr/local/bin/veilor-installer @@ -504,12 +504,23 @@ 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 +# `systemctl mask` requires systemd running, which isn't true in +# anaconda chroot %post — write the /dev/null symlinks directly instead. +# Targets the path-activated ask-password unit too (the .path is what +# plymouth-start gets pulled in by). systemd-tty-ask-password-agent +# handles LUKS prompt as fallback on tty1. +mkdir -p /etc/systemd/system +for unit in \ + plymouth-start.service \ + plymouth-quit.service \ + plymouth-quit-wait.service \ + plymouth-read-write.service \ + plymouth-switch-root.service \ + systemd-ask-password-plymouth.path \ + systemd-ask-password-plymouth.service \ + ; do + ln -sf /dev/null /etc/systemd/system/$unit +done # Symlink display-manager.service → sddm.service. (Anaconda usually # handles this when sddm is the only DM, but be explicit.)