diff --git a/TODO b/TODO index 663e4fedd8..f9e86677ab 100644 --- a/TODO +++ b/TODO @@ -688,7 +688,6 @@ Features: * bootctl - verify that the files boot entries point to exist - recognize the case when not booted on EFI - - specify paths for boot entries * maybe do not install getty@tty1.service symlink in /etc but in /usr? diff --git a/src/boot/bootctl.c b/src/boot/bootctl.c index 0595f873f0..3257574100 100644 --- a/src/boot/bootctl.c +++ b/src/boot/bootctl.c @@ -313,18 +313,14 @@ static int status_variables(void) { static int boot_entry_show(const BootEntry *e, bool show_as_default) { assert(e); - printf(" title: %s%s%s%s%s%s\n" - " type: %s\n", - ansi_highlight(), - boot_entry_title(e), - ansi_normal(), - ansi_highlight_green(), - show_as_default ? " (default)" : "", - ansi_normal(), - boot_entry_type_to_string(e->type)); + printf(" title: %s%s%s" "%s%s%s\n", + ansi_highlight(), boot_entry_title(e), ansi_normal(), + ansi_highlight_green(), show_as_default ? " (default)" : "", ansi_normal()); if (e->id) printf(" id: %s\n", e->id); + if (e->path) + printf(" source: %s\n", e->path); if (e->version) printf(" version: %s\n", e->version); if (e->machine_id) diff --git a/src/shared/bootspec.c b/src/shared/bootspec.c index 9a0dc29153..b088b04da0 100644 --- a/src/shared/bootspec.c +++ b/src/shared/bootspec.c @@ -755,7 +755,7 @@ int boot_entries_augment_from_loader(BootConfig *config, bool only_auto) { n_allocated = config->n_entries; STRV_FOREACH(i, found_by_loader) { - _cleanup_free_ char *c = NULL, *t = NULL; + _cleanup_free_ char *c = NULL, *t = NULL, *p = NULL; char **a, **b; if (boot_config_has_entry(config, *i)) @@ -776,6 +776,10 @@ int boot_entries_augment_from_loader(BootConfig *config, bool only_auto) { break; } + p = efi_variable_path(EFI_VENDOR_LOADER, "LoaderEntries"); + if (!p) + return log_oom(); + if (!GREEDY_REALLOC0(config->entries, n_allocated, config->n_entries + 1)) return log_oom(); @@ -783,6 +787,7 @@ int boot_entries_augment_from_loader(BootConfig *config, bool only_auto) { .type = BOOT_ENTRY_LOADER, .id = TAKE_PTR(c), .title = TAKE_PTR(t), + .path = TAKE_PTR(p), }; }