]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
systemctl: enhance message about kexec missing kernel
authorZbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl>
Tue, 3 Dec 2019 11:54:52 +0000 (11:54 +0000)
committerZbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl>
Tue, 3 Dec 2019 16:15:44 +0000 (17:15 +0100)
Fixes #7730.

src/systemctl/systemctl.c

index 619969c3da032be0646342c752fd1a418f762fbb..fe6595dcf3293740d64108d03586e1f629d07d69 100644 (file)
@@ -32,6 +32,7 @@
 #include "cpu-set-util.h"
 #include "dirent-util.h"
 #include "dropin.h"
+#include "efi-loader.h"
 #include "efivars.h"
 #include "env-util.h"
 #include "escape.h"
@@ -3514,8 +3515,13 @@ static int load_kexec_kernel(void) {
                 return log_error_errno(errno, KEXEC" is not available: %m");
 
         r = boot_entries_load_config_auto(NULL, NULL, &config);
-        if (r == -ENOKEY) /* The call doesn't log about ENOKEY, let's do so here. */
-                return log_error_errno(r, "Cannot find the ESP partition mount point.");
+        if (r == -ENOKEY)
+                /* The call doesn't log about ENOKEY, let's do so here. */
+                return log_error_errno(r,
+                                       "No kexec kernel loaded and autodetection failed.\n%s",
+                                       is_efi_boot()
+                                       ? "Cannot automatically load kernel: ESP partition mount point not found."
+                                       : "Automatic loading works only on systems booted with EFI.");
         if (r < 0)
                 return r;