On 08/29/2017 at 09:45 PM, Hari Bathini wrote:
As default initrd is used for booting fadump capture kernel, it must
be
rebuilt with dump capture capability when dump mode is fadump. Check if
default initrd is already fadump capable and rebuild, if necessary.
Signed-off-by: Hari Bathini <hbathini(a)linux.vnet.ibm.com>
---
* Using `lsinitrd -f` over `lsinitrd -m`, to find if kdumpbase module
is included, as it is observed to take only about half the time.
Hi Hari, could you please try the following approach?
---
kdumpctl | 19 +++++++++++++------
1 file changed, 13 insertions(+), 6 deletions(-)
diff --git a/kdumpctl b/kdumpctl
index 12f360a..1a24d29 100755
--- a/kdumpctl
+++ b/kdumpctl
@@ -313,7 +313,7 @@ check_executable()
backup_default_initrd()
{
if [ ! -f "$DEFAULT_INITRD" ]; then
- return
+ return 1
fi
if [ ! -e $DEFAULT_INITRD_BAK ]; then
@@ -324,8 +324,12 @@ backup_default_initrd()
if [ $? -ne 0 ]; then
echo "WARNING: failed to backup $DEFAULT_INITRD."
rm -f $DEFAULT_INITRD_BAK
+ return 1
fi
+ return 0
fi
+
+ return 1
}
restore_default_initrd()
@@ -345,9 +349,12 @@ restore_default_initrd()
echo -n "Restoring original initrd as fadump mode "
echo "is disabled."
sync
+ return 0
fi
fi
fi
+
+ return 1
}
check_config()
@@ -717,9 +724,9 @@ check_rebuild()
system_modified="1"
fi
- handle_mode_switch
-
- if [ $image_time -eq 0 ]; then
+ if handle_mode_switch; then
+ echo -n "Dump mode changed from last boot."; echo
+ elif [ $image_time -eq 0 ]; then
echo -n "No kdump initial ramdisk found."; echo
elif [ "$force_rebuild" != "0" ]; then
echo -n "Force rebuild $TARGET_INITRD"; echo
@@ -886,12 +893,12 @@ handle_mode_switch()
if [ "$DEFAULT_DUMP_MODE" == "fadump" ]; then
# backup initrd for reference before replacing it
# with fadump aware initrd
- backup_default_initrd
+ return backup_default_initrd
else
# check if a backup of default initrd exists. If yes,
# it signifies a switch from fadump mode. So, restore
# the backed up default initrd.
- restore_default_initrd
+ return restore_default_initrd
fi
}
--
1.8.3.1