From: Lennart Poettering Date: Fri, 18 Nov 2022 17:05:53 +0000 (+0100) Subject: bootctl: rework how we handle referenced but absent EFI boot entries X-Git-Tag: v253-rc1~494 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=af1bed8e83c3d380d1eb0b9147684b76d1ee4df0;p=thirdparty%2Fsystemd.git bootctl: rework how we handle referenced but absent EFI boot entries Follow-up for #25368. Let's consider ENOENT an expected error, and just debug log about it (though, let's suffix it with `, ignoring.`). All other errors will log loudly, as they are unexpected errors. --- diff --git a/src/boot/bootctl.c b/src/boot/bootctl.c index afda914d529..2565f54586e 100644 --- a/src/boot/bootctl.c +++ b/src/boot/bootctl.c @@ -585,8 +585,12 @@ static int print_efi_option(uint16_t id, int *n_printed, bool in_order) { assert(n_printed); r = efi_get_boot_option(id, &title, &partition, &path, &active); + if (r == -ENOENT) { + log_debug_errno(r, "Boot option 0x%04X referenced but missing, ignoring: %m", id); + return 0; + } if (r < 0) - return log_debug_errno(r, "Failed to read boot option 0x%04X: %m", id); + return log_error_errno(r, "Failed to read boot option 0x%04X: %m", id); /* print only configured entries with partition information */ if (!path || sd_id128_is_null(partition)) {