archinstall/archinstall/lib/disk
Softer e7d38d0e82
Fix Limine install with ESP mounted outside /boot (#4442)
* Fix Limine install with ESP mounted outside /boot

Place limine.conf next to the EFI binary on the ESP so it is found
regardless of ESP mountpoint, and block unbootable layouts (non-UKI
Limine with ESP not at /boot and no separate /boot partition) in
GlobalMenu validation, guided.main() and _add_limine_bootloader().

Fixes #4333

* Extract bootloader layout validation into lib/bootloader/utils

* Consolidate Limine layout validation in bootloader utils

Move the boot-partition FAT check from GlobalMenu into
validate_bootloader_layout so all three call sites (GlobalMenu,
guided.py, Installer._add_limine_bootloader) share one function.

Return a BootloaderValidationFailure dataclass (kind + description)
instead of str | None, so callers can match on the failure kind and
the description is built where partition context is in scope.

* Encapsulate FAT filesystem detection in FilesystemType.is_fat()
2026-04-22 21:32:41 +10:00
..
__init__.py Integrate new arguments data structure (#3167) 2025-02-20 07:35:59 +11:00
device_handler.py Fix Limine install with ESP mounted outside /boot (#4442) 2026-04-22 21:32:41 +10:00
disk_menu.py Refactor EncryptionType (#4438) 2026-04-17 10:08:23 +10:00
encryption_menu.py Refactor EncryptionType (#4438) 2026-04-17 10:08:23 +10:00
fido.py Convert imports to absolute imports (#4196) 2026-02-26 20:17:48 +11:00
filesystem.py Refactor EncryptionType (#4438) 2026-04-17 10:08:23 +10:00
luks.py Don't write encryption keyfiles to an unencrypted root partition (#4349) 2026-04-01 15:35:33 +11:00
lvm.py Move all LVM helpers to dedicated module (#4283) 2026-03-05 09:13:04 +11:00
partitioning_menu.py Refactor PartitionType (#4432) 2026-04-16 14:05:08 +10:00
subvolume_menu.py Async menu (#4308) 2026-03-16 10:39:36 +11:00
utils.py Move udev_sync() to disk.utils (#4281) 2026-03-04 12:43:47 +11:00