diff --git a/etc/limine-entry-tool.d/omarchy-defaults.conf b/etc/limine-entry-tool.d/omarchy-defaults.conf index 798d0360..49c6204b 100644 --- a/etc/limine-entry-tool.d/omarchy-defaults.conf +++ b/etc/limine-entry-tool.d/omarchy-defaults.conf @@ -2,6 +2,13 @@ TARGET_OS_NAME="Omarchy" KERNEL_CMDLINE[default]+=" quiet splash loglevel=0 systemd.show_status=false rd.udev.log_level=0 vt.global_cursor_default=0" +# Kernel 7.1 unpacks the initramfs asynchronously, which races /init: the +# early /proc, /sys, /dev, and /run mounts fail while unpacking settles, so +# plymouthd exits when it can't read /proc/cmdline and encrypted boots fall +# back to an unthemed text LUKS prompt. Unpack synchronously until the race +# is fixed upstream. +KERNEL_CMDLINE[default]+=" initramfs_async=0" + CUSTOM_UKI_NAME="omarchy" ENABLE_LIMINE_FALLBACK=yes diff --git a/migrations/1784917531.sh b/migrations/1784917531.sh new file mode 100644 index 00000000..f32a3b7d --- /dev/null +++ b/migrations/1784917531.sh @@ -0,0 +1,17 @@ +echo "Unpack the initramfs synchronously so Plymouth survives early boot" + +# Kernel 7.1 unpacks the initramfs asynchronously, which races /init: the +# early /proc, /sys, /dev, and /run mounts fail while unpacking settles, so +# plymouthd exits when it can't read /proc/cmdline and encrypted boots fall +# back to an unthemed text LUKS prompt. Force synchronous unpacking until the +# race is fixed upstream. The packaged omarchy-defaults.conf now carries the +# same parameter for fresh installs. + +if omarchy-cmd-present limine-mkinitcpio && + [[ -f /etc/limine-entry-tool.d/omarchy-defaults.conf ]] && + ! grep -rqs "initramfs_async" /etc/limine-entry-tool.d/ /etc/default/limine; then + echo 'KERNEL_CMDLINE[default]+=" initramfs_async=0"' | + sudo tee -a /etc/limine-entry-tool.d/omarchy-defaults.conf >/dev/null + + sudo limine-mkinitcpio +fi