From d45da38dca884ce0fb9ed6f69664c32747b7e189 Mon Sep 17 00:00:00 2001 From: Kairui Song Date: Thu, 10 Jan 2019 14:44:15 +0800 Subject: [PATCH] earlykdump: add more sanity check when generating initramfs Currently when earlykdump failed to install required kernel image or initramfs, it will still install the earlykdump hook and other utils. But it won't work due to the absent of kernel image or kdump initramfs, so the hook and installed utils is meanless. We can't simply fail dracut building, as if earlykdump is included by dracut config file, this may fail kernel update, where kernel image is installed but initramfs failed to generate, and then it will fail booting. So this patch let it skip earlydkump install if anything is missing and give a clean error message to let the user better ware of the situation. Signed-off-by: Kairui Song Acked-by: Dave Young --- dracut-early-kdump-module-setup.sh | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/dracut-early-kdump-module-setup.sh b/dracut-early-kdump-module-setup.sh index 44edc06..886b7b2 100755 --- a/dracut-early-kdump-module-setup.sh +++ b/dracut-early-kdump-module-setup.sh @@ -32,13 +32,25 @@ prepare_kernel_initrd() { } install() { + prepare_kernel_initrd + if [ ! -f "$KDUMP_KERNEL" ]; then + derror "Could not find required kernel for earlykdump," \ + "earlykdump will not work!" + return 1 + fi + if [ ! -f "$KDUMP_INITRD" ]; then + derror "Could not find required kdump initramfs for earlykdump," \ + "please ensure kdump initramfs is generated first," \ + "earlykdump will not work!" + return 1 + fi + inst_multiple tail find cut dirname hexdump inst_simple "/etc/sysconfig/kdump" inst_binary "/usr/sbin/kexec" inst_binary "/usr/bin/gawk" "/usr/bin/awk" inst_script "/lib/kdump/kdump-lib.sh" "/lib/kdump-lib.sh" inst_hook cmdline 00 "$moddir/early-kdump.sh" - prepare_kernel_initrd inst_binary "$KDUMP_KERNEL" inst_binary "$KDUMP_INITRD"