Hi Hari,
On Mon, 21 Nov 2022 17:48:02 +0530 Hari Bathini hbathini@linux.ibm.com wrote:
Kdump service will create fadump initramfs when needed, but it won't clean up the fadump initramfs on kernel uninstall. So create a kernel install hook to do the clean up job.
Signed-off-by: Hari Bathini hbathini@linux.ibm.com
- Could have had 60-kdump.install.ppc64 that takes care of both kdump & fadump cleanup for ppc64 but that needs kdump cleanup code to be maintained in two files. So, preferred to go with a separate install file (60-fadump.install) instead.
Besides the potential name change for the checksum.
Reviewed-by: Philipp Rudo prudo@redhat.com
Changes in v2:
- Added cleanup of kernel version based checksum file.
60-fadump.install | 32 ++++++++++++++++++++++++++++++++ kexec-tools.spec | 3 +++ 2 files changed, 35 insertions(+) create mode 100755 60-fadump.install
diff --git a/60-fadump.install b/60-fadump.install new file mode 100755 index 0000000..c317d9c --- /dev/null +++ b/60-fadump.install @@ -0,0 +1,32 @@ +#!/usr/bin/bash
+COMMAND="$1" +KERNEL_VERSION="$2"
+if ! [[ ${KERNEL_INSTALL_MACHINE_ID-x} ]]; then
- exit 0
+fi
+# Currently, fadump is supported only in environments with +# writable /boot directory. +if [[ ! -w "/boot" ]]; then
- exit 0
+fi
+FADUMP_INITRD_DIR_ABS="/boot" +FADUMP_INITRD=".initramfs-${KERNEL_VERSION}.img.default" +FADUMP_INITRD_CHECKSUM=".fadump_initrd_checksum.${KERNEL_VERSION}"
+ret=0 +case "$COMMAND" in
- add)
# Do nothing, fadump initramfs is strictly host only
# and managed by kdump service
;;
- remove)
rm -f -- "$FADUMP_INITRD_DIR_ABS/$FADUMP_INITRD"
rm -f -- "$FADUMP_INITRD_DIR_ABS/$FADUMP_INITRD_CHECKSUM"
ret=$?
;;
+esac +exit $ret diff --git a/kexec-tools.spec b/kexec-tools.spec index bfa7a5b..d4c3590 100644 --- a/kexec-tools.spec +++ b/kexec-tools.spec @@ -38,6 +38,7 @@ Source33: 92-crashkernel.install Source34: crashkernel-howto.txt Source35: kdump-migrate-action.sh Source36: kdump-restart.sh +Source37: 60-fadump.install
####################################### # These are sources for mkdumpramfs @@ -203,6 +204,7 @@ install -m 644 %{SOURCE13} $RPM_BUILD_ROOT%{_udevrulesdir}/98-kexec.rules %endif %ifarch ppc64 ppc64le install -m 644 %{SOURCE14} $RPM_BUILD_ROOT%{_udevrulesdir}/98-kexec.rules +install -m 755 -D %{SOURCE37} $RPM_BUILD_ROOT%{_prefix}/lib/kernel/install.d/60-fadump.install %endif install -m 644 %{SOURCE15} $RPM_BUILD_ROOT%{_mandir}/man5/kdump.conf.5 install -m 644 %{SOURCE16} $RPM_BUILD_ROOT%{_unitdir}/kdump.service @@ -365,6 +367,7 @@ fi %endif %ifarch ppc64 ppc64le /usr/sbin/mkfadumprd +%{_prefix}/lib/kernel/install.d/60-fadump.install %endif /usr/sbin/mkdumprd /usr/sbin/vmcore-dmesg