Kdump service starts too late, so early crashes will have no chance to get kdump kernel booting, this will cause crash information to be lost. It is necessary to add a dracut module in order to load crash kernel and initramfs as early as possible. You can provide "rd.early kdump" in grub commandline to enable, then the early kdump will load those files like the normal kdump, which is disabled by default.
For the normal kdump service, it can check whether the early kdump has loaded the crash kernel and initramfs. It has no conflict with the early kdump.
If you rebuild the new initramfs for early kdump, the new initramfs size will become large, because it will put the vmlinuz and kdump initramfs into the new initramfs.
In addition, early kdump doesn't support fadump.
Finally, we move some common functions from kdumpctl to kdump-lib.sh, the functions could be used in other modules, such as early kdump. It has no bad effect.
Some changes based the patch v3&v4&v5: 1.dracut-early-kdump-module-setup.sh -Introduce some variables to parse parameters for kernel commandline and initrd. -It will use "dracut --add earlykdump --force" to rebuild the new initramfs for the early kdump. -install some commands, such as tail, find, dirname, hexdump, cut. (*) -modify code style. (*) 2.early-kdump-howto.txt -update the usage about the early kdump. 3.kdump-lib.sh -add comment for some functions. -modify check_boot_dir() function. -modify code style. (*) 4.dracut-early-kdump.sh -modify prepare_parameters() function and handle the case with a "KDUMP_KERNELVER" setting.
Lianbo Jiang (2): move some common functions from kdumpctl to kdump-lib.sh Add early kdump support in initramfs.
dracut-early-kdump-module-setup.sh | 44 ++++++++ dracut-early-kdump.sh | 84 ++++++++++++++ early-kdump-howto.txt | 50 +++++++++ kdump-lib.sh | 217 +++++++++++++++++++++++++++++++++++++ kdumpctl | 206 +---------------------------------- kexec-tools.spec | 11 ++ 6 files changed, 409 insertions(+), 203 deletions(-) create mode 100755 dracut-early-kdump-module-setup.sh create mode 100755 dracut-early-kdump.sh create mode 100644 early-kdump-howto.txt