From: Daan De Meyer Date: Thu, 6 Apr 2023 10:17:18 +0000 (+0200) Subject: bootctl: Gracefully handle missing bootloader directory X-Git-Tag: v254-rc1~789 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=05f70527326d0f6c61362ea93462d37dc701c98b;p=thirdparty%2Fsystemd.git bootctl: Gracefully handle missing bootloader directory When --graceful is specified, let's gracefully deal with a missing bootloader directory. --- diff --git a/src/boot/bootctl-install.c b/src/boot/bootctl-install.c index dc8596fa05a..2dd50360ecd 100644 --- a/src/boot/bootctl-install.c +++ b/src/boot/bootctl-install.c @@ -391,6 +391,10 @@ static int install_binaries(const char *esp_path, const char *arch, bool force) /* If we had a root directory to try, we didn't find it and we are in auto mode, retry on the host */ if (r == -ENOENT && root && arg_install_source == ARG_INSTALL_SOURCE_AUTO) r = chase_and_opendir(BOOTLIBDIR, NULL, CHASE_PREFIX_ROOT|CHASE_PROHIBIT_SYMLINKS, &path, &d); + if (r == -ENOENT && arg_graceful) { + log_debug("Source directory does not exist, ignoring."); + return 0; + } if (r < 0) return log_error_errno(r, "Failed to open boot loader directory %s%s: %m", strempty(root), BOOTLIBDIR);