systemctl: enhance message about kexec missing kernel

Fixes #7730.
This commit is contained in:
Zbigniew Jędrzejewski-Szmek 2019-12-03 11:54:52 +00:00
parent 6a2dc6a040
commit 2fec5854ba

View 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;