From c2ed0bcbd11c252352967ea365d6155a8684170a Mon Sep 17 00:00:00 2001 From: mintsuki Date: Thu, 22 Sep 2022 15:12:11 +0200 Subject: [PATCH] config: On UEFI, scan the volume containing the EFI executable first. Addresses #219 --- CONFIG.md | 3 ++- common/menu.c | 6 ++++++ 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/CONFIG.md b/CONFIG.md index 0c61536e..66e135a2 100644 --- a/CONFIG.md +++ b/CONFIG.md @@ -3,7 +3,8 @@ ## Location of the config file Limine scans for a config file on *the boot drive*. Every partition on the boot drive -is scanned sequentially (first partition first, last partition last) for the presence +is scanned sequentially - first partition first (or, on UEFI, the partition containing the +EFI executable of the booted Limine is scanned first), last partition last - for the presence of either a `/limine.cfg`, `/boot/limine.cfg`, or a `/EFI/BOOT/limine.cfg` file, in that order. Once the file is located, Limine will use it as its config file. Other possible diff --git a/common/menu.c b/common/menu.c index 762b67e4..afe0fc33 100644 --- a/common/menu.c +++ b/common/menu.c @@ -603,12 +603,18 @@ noreturn void _menu(bool first_run) { } if (bad_config == false) { +#if defined (UEFI) + if (init_config_disk(boot_volume)) { +#endif volume_iterate_parts(boot_volume, if (!init_config_disk(_PART)) { boot_volume = _PART; break; } ); +#if defined (UEFI) + } +#endif } char *quiet_str = config_get_value(NULL, 0, "QUIET");