From 22e54dd6de4d0be41ab70e0a94d7bd273e47c60a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= Date: Fri, 15 Jul 2022 20:46:04 +0200 Subject: [PATCH] booctl: do not say uuids differ if one of the uuids is unset We allow ESP autodetection to fail, e.g. if it is not mounted, but then we'd say that the detected one is different than the one reported by the bootloader, which is rather confusing. While at it, if we actually detect a mismatch, print the two uuids. --- src/boot/bootctl.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/src/boot/bootctl.c b/src/boot/bootctl.c index c09c305b3f..4907b3ce3d 100644 --- a/src/boot/bootctl.c +++ b/src/boot/bootctl.c @@ -1784,8 +1784,11 @@ static int verb_status(int argc, char *argv[], void *userdata) { bool have_bootloader_esp_uuid = efi_loader_get_device_part_uuid(&bootloader_esp_uuid) >= 0; print_yes_no_line(false, have_bootloader_esp_uuid, "Boot loader sets ESP information"); - if (have_bootloader_esp_uuid && !sd_id128_equal(esp_uuid, bootloader_esp_uuid)) - printf("WARNING: The boot loader reports a different ESP UUID than detected!\n"); + if (have_bootloader_esp_uuid && !sd_id128_is_null(esp_uuid) && + !sd_id128_equal(esp_uuid, bootloader_esp_uuid)) + printf("WARNING: The boot loader reports a different ESP UUID than detected ("SD_ID128_UUID_FORMAT_STR" vs. "SD_ID128_UUID_FORMAT_STR")!\n", + SD_ID128_FORMAT_VAL(bootloader_esp_uuid), + SD_ID128_FORMAT_VAL(esp_uuid)); if (stub) printf(" Stub: %s\n", stub);