893e0b
Early Kdump HOWTO
893e0b
893e0b
Introduction
603de6
------------
893e0b
893e0b
Kdump service starts too late, so early crashes will have no chance to get
893e0b
kdump kernel booting, this will cause crash information to be lost. It is
893e0b
necessary to add a dracut module in order to load crash kernel and initramfs
893e0b
as early as possible. You can provide "rd.earlykdump" in grub commandline
893e0b
to enable, then the early kdump will load those files like the normal kdump,
893e0b
which is disabled by default.
893e0b
893e0b
For the normal kdump service, it can check whether the early kdump has loaded
893e0b
the crash kernel and initramfs. It has no conflict with the early kdump.
893e0b
603de6
How to configure early kdump
603de6
----------------------------
893e0b
893e0b
We assume if you're reading this document, you should already have kexec-tools
893e0b
installed.
893e0b
893e0b
You can rebuild the initramfs with earlykdump support with below steps:
893e0b
1. start kdump service to make sure kdump initramfs is created.
893e0b
    # systemctl start kdump
893e0b
603de6
    NOTE: If a crash occurs during boot process, early kdump captures a vmcore
603de6
    and reboot the system by default, so the system might go into crash loop.
603de6
    You can avoid such a crash loop by adding the following settings, which
603de6
    power off the system after dump capturing, to kdump.conf in advance:
603de6
603de6
        final_action poweroff
603de6
        failure_action poweroff
603de6
603de6
    For the failure_action, you can choose anything other than "reboot".
603de6
893e0b
2. rebuild system initramfs with earlykdump support.
893e0b
    # dracut --add earlykdump
893e0b
893e0b
3. add rd.earlykdump in grub kernel command line.
893e0b
603de6
Note:
603de6
[1]. Early kdump initramfs size will be large because it includes vmlinuz and
893e0b
kdump initramfs. And for step 2 if you are sure to overwrite system initramfs
893e0b
you can backup the original initramfs and use "--force" option.
893e0b
603de6
[2]. Early kdump inherits the settings of normal kdump, so any changes that
603de6
caused normal kdump rebuilding also require rebuilding the system initramfs
603de6
to make sure that the changes take effect for early kdump. Therefore, after
603de6
the rebuilding of kdump initramfs is completed, provide a prompt message to
603de6
tell the fact.
603de6
893e0b
After making said changes, reboot your system to take effect. Of course, if you
893e0b
want to disable early kdump, you can simply remove "rd.earlykdump" from kernel
893e0b
boot parameters in grub, and reboot system like above.
893e0b
893e0b
Once the boot is completed, you can check the status of the early kdump support
893e0b
on the command prompt:
893e0b
893e0b
    # journalctl -x|grep early-kdump
893e0b
893e0b
Then, you will see some useful logs, for exapmle:
893e0b
893e0b
1. if early kdump is successful.
893e0b
Mar 09 09:57:56 localhost.localdomain dracut-cmdline[190]: early-kdump is enabled.
893e0b
Mar 09 09:57:56 localhost.localdomain dracut-cmdline[190]: kexec: loaded early-
893e0b
kdump kernel
893e0b
893e0b
2. if early kdump is disabled.
893e0b
Mar 09 10:02:47 localhost.localdomain dracut-cmdline[189]: early-kdump is disabled.
893e0b
893e0b
Limitation
603de6
----------
893e0b
893e0b
At present, early kdump doesn't support fadump.