From 39113a2d2ba817dae780000ed4d7239ccdda5971 Mon Sep 17 00:00:00 2001 From: Ryan Hughes Date: Thu, 21 May 2026 20:56:58 -0400 Subject: [PATCH] orchestrator: probe multiple paths for limine.conf after add_bootloader archinstall 4.3 writes limine.conf to //EFI/arch-limine/ limine.conf for UEFI non-removable installs (lib/installer.py:1487), not to /mnt/boot/limine.conf as our code assumed. Older archinstall versions used different paths. Probe the 4.3 paths (arch-limine, BOOT, limine subdir) and the legacy /boot/limine.conf in order; pick whichever exists. Error message now lists everywhere it looked so future drift is easy to diagnose. --- .../omarchy-iso/orchestrator/phases_impl.py | 20 ++++++++++++++++--- 1 file changed, 17 insertions(+), 3 deletions(-) diff --git a/configs/airootfs/usr/share/omarchy-iso/orchestrator/phases_impl.py b/configs/airootfs/usr/share/omarchy-iso/orchestrator/phases_impl.py index 9be7d6a..270689d 100644 --- a/configs/airootfs/usr/share/omarchy-iso/orchestrator/phases_impl.py +++ b/configs/airootfs/usr/share/omarchy-iso/orchestrator/phases_impl.py @@ -183,9 +183,23 @@ def _write_limine_defaults(ctx: InstallContext) -> None: if not arch.is_limine(ctx.state["arch_config_handler"].config): return - limine_conf = ctx.target / "boot" / "limine.conf" - if not limine_conf.exists(): - raise RuntimeError(f"{limine_conf} not found after add_bootloader") + # archinstall 4.3 writes limine.conf to one of: + # //EFI/arch-limine/limine.conf (UEFI, non-removable) + # //EFI/BOOT/limine.conf (UEFI, removable) + # /boot/limine/limine.conf (BIOS or fallback) + # Probe in that order and use whichever exists. + candidates = [ + ctx.target / "boot" / "EFI" / "arch-limine" / "limine.conf", + ctx.target / "boot" / "EFI" / "BOOT" / "limine.conf", + ctx.target / "boot" / "limine" / "limine.conf", + ctx.target / "boot" / "limine.conf", # very-old archinstall path + ] + limine_conf = next((p for p in candidates if p.exists()), None) + if limine_conf is None: + searched = "\n ".join(str(p) for p in candidates) + raise RuntimeError( + "limine.conf not found after add_bootloader. Searched:\n " + searched + ) cmdline = _extract_cmdline(limine_conf) if not cmdline.strip():