de80c6
.TH KDUMP.CONF 5 "07/23/2008" "kexec-tools"
de80c6
de80c6
.SH NAME
de80c6
kdump.conf \- configuration file for kdump kernel.
de80c6
de80c6
.SH DESCRIPTION 
de80c6
de80c6
kdump.conf is a configuration file for the kdump kernel crash
de80c6
collection service.
de80c6
de80c6
kdump.conf provides post-kexec instructions to the kdump kernel. It is
de80c6
stored in the initrd file managed by the kdump service. If you change
de80c6
this file and do not want to restart before it takes effect, restart
de80c6
the kdump service to rebuild to initrd.
de80c6
de80c6
For most configurations, you can simply review the examples provided
de80c6
in the stock /etc/kdump.conf.
de80c6
de80c6
.B NOTE: 
de80c6
For filesystem dump the dump target must be mounted before building
de80c6
kdump initramfs.
de80c6
de80c6
kdump.conf only affects the behavior of the initramfs.  Please read the
de80c6
kdump operational flow section of kexec-kdump-howto.txt in the docs to better
de80c6
understand how this configuration file affects the behavior of kdump.
de80c6
de80c6
.SH OPTIONS
de80c6
de80c6
.B raw <partition>
de80c6
.RS
de80c6
Will dd /proc/vmcore into <partition>.  Use persistent device names for
de80c6
partition devices, such as /dev/vg/<devname>.
de80c6
.RE
de80c6
de80c6
.B nfs <nfs mount>
de80c6
.RS
de80c6
Will mount fs and copy /proc/vmcore to <mnt>/var/crash/%HOST-%DATE/,
de80c6
supports DNS. Note that a fqdn should be used as the server name in the 
de80c6
mount point
de80c6
.RE
de80c6
de80c6
.B ssh <user@server>
de80c6
.RS
de80c6
Will scp /proc/vmcore to <user@server>:/var/crash/%HOST-%DATE/,
de80c6
supports DNS. NOTE: make sure user has necessary write permissions on
de80c6
server and that a fqdn is used as the server name
de80c6
.RE
de80c6
de80c6
.B sshkey <path>
de80c6
.RS
de80c6
Specifies the path of the ssh key you want to use when do ssh dump,
de80c6
the default value is /root/.ssh/kdump_id_rsa.
de80c6
.RE
de80c6
de80c6
.B <fs type> <partition>
de80c6
.RS
de80c6
Will mount -t <fs type> <partition> /mnt and copy /proc/vmcore to
de80c6
/mnt/var/crash/%DATE/.  NOTE: <partition> can be a device node, label
de80c6
or uuid.  It's recommended to use persistent device names such as
de80c6
/dev/vg/<devname>. Otherwise it's suggested to use label or uuid.
de80c6
.RE
de80c6
de80c6
.B path <path>
de80c6
.RS
de80c6
"path" represents the file system path in which vmcore will be saved.
de80c6
If a dump target is specified in kdump.conf, then "path" is relative to the
de80c6
specified dump target.
de80c6
.PP
de80c6
Interpretation of path changes a bit if user has not specified a dump
de80c6
target explicitly in kdump.conf. In this case, "path" represents the
de80c6
absolute path from root. And dump target and adjusted path are arrived
de80c6
at automatically depending on what's mounted in the current system.
de80c6
.PP
de80c6
Ignored for raw device dumps.  If unset, will default to /var/crash.
de80c6
.RE
de80c6
de80c6
.B core_collector <command> <options>
de80c6
.RS
de80c6
This allows you to specify the command to copy the vmcore.
de80c6
You could use the dump filtering program makedumpfile, the default one,
de80c6
to retrieve your core, which on some arches can drastically reduce
de80c6
core file size.  See /sbin/makedumpfile --help for a list of options.
de80c6
Note that the -i and -g options are not needed here, as the initrd
de80c6
will automatically be populated with a config file appropriate
de80c6
for the running kernel.
de80c6
.PP
de80c6
Note 1: About default core collector:
de80c6
Default core_collector for raw/ssh dump is:
de80c6
"makedumpfile -F -l --message-level 1 -d 31".
de80c6
Default core_collector for other targets is:
de80c6
"makedumpfile -l --message-level 1 -d 31".
de80c6
Even if core_collector option is commented out in kdump.conf, makedumpfile
de80c6
is default core collector and kdump uses it internally.
de80c6
If one does not want makedumpfile as default core_collector, then they
de80c6
need to specify one using core_collector option to change the behavior.
de80c6
.PP
de80c6
Note 2: If "makedumpfile -F" is used then you will get a flattened format
de80c6
vmcore.flat, you will need to use "makedumpfile -R" to rearrange the
de80c6
dump data from stdard input to a normal dumpfile (readable with analysis
de80c6
tools).
de80c6
ie. "makedumpfile -R vmcore < vmcore.flat"
de80c6
de80c6
.RE
de80c6
de80c6
.B kdump_post <binary | script>
de80c6
.RS
de80c6
This directive allows you to run a specified
de80c6
executable just after the memory dump process
de80c6
terminates. The exit status from the dump process
de80c6
is fed to the kdump_post executable, which can be
de80c6
used to trigger different actions for success or
de80c6
failure.
de80c6
.PP
de80c6
Note that scripts written for use with this
de80c6
directive must use the /bin/bash interpreter
de80c6
.RE
de80c6
de80c6
.B kdump_pre <binary | script>
de80c6
.RS
de80c6
Works just like the kdump_post directive, but instead
de80c6
of running after the dump process, runs immediately
de80c6
before.  Exit status of this binary is interpreted
de80c6
as follows:
de80c6
.PP
de80c6
0 - continue with dump process as usual
de80c6
.PP
de80c6
non 0 - reboot the system
de80c6
.PP
de80c6
Note that scripts written for this directive must use
de80c6
the /bin/bash interpreter
de80c6
.RE
de80c6
de80c6
.B extra_bins <binaries | shell scripts>
de80c6
.RS
de80c6
This directive allows you to specify additional
de80c6
binaries or shell scripts you'd like to include in
de80c6
your kdump initrd. Generally only useful in
de80c6
conjunction with a kdump_post binary or script that
de80c6
relies on other binaries or scripts.
de80c6
.RE
de80c6
de80c6
.B extra_modules <module(s)>
de80c6
.RS
de80c6
This directive allows you to specify extra kernel
de80c6
modules that you want to be loaded in the kdump
de80c6
initrd, typically used to set up access to
de80c6
non-boot-path dump targets that might otherwise
de80c6
not be accessible in the kdump environment. Multiple
de80c6
modules can be listed, separated by a space, and any
de80c6
dependent modules will automatically be included.
de80c6
.RE
de80c6
de80c6
.B default <reboot | halt | poweroff | shell | dump_to_rootfs>
de80c6
.RS
de80c6
Action to preform in case dumping to intended target fails. If no default
de80c6
action is specified, "reboot" is assumed default.
de80c6
reboot: If the default action is reboot simply reboot the system (this is what
de80c6
most people will want, as it returns the system to a nominal state).  shell: If the default
de80c6
action is shell, then drop to an shell session inside the initramfs from
de80c6
where you can manually preform additional recovery actions.  Exiting this shell
de80c6
reboots the system.  halt: bring the system to a halt, requiring manual reset
de80c6
poweroff: The system will be powered down. dump_to_rootfs:If the default action
de80c6
is dump_to_rootfs, specified root will be mounted and dump will be saved in "path"
de80c6
directory.
de80c6
Note: kdump uses bash as the default shell.
de80c6
.RE
de80c6
de80c6
.B force_rebuild <0 | 1>
de80c6
.RS
de80c6
By default, kdump initrd only will be rebuilt when necessary.
de80c6
Specify 1 to force rebuilding kdump initrd every time when kdump service starts.
de80c6
.RE
de80c6
de80c6
.B override_resettable <0 | 1>
de80c6
.RS
de80c6
Usually a unresettable block device can't be dump target. Specifying 1 means
de80c6
though block target is unresettable, user understand this situation and want
de80c6
to try dumping. By default, it's set to 0, means not to try a destined failure.
de80c6
.RE
de80c6
de80c6
de80c6
.B dracut_args <arg(s)>
de80c6
.RS
de80c6
Kdump uses dracut to generate initramfs for second kernel. This option
de80c6
allows a user to pass arguments to dracut directly.
de80c6
.RE
de80c6
de80c6
de80c6
.B fence_kdump_args <arg(s)>
de80c6
.RS
de80c6
Command line arguments for fence_kdump_send (it can contain all valid
de80c6
arguments except hosts to send notification to).
de80c6
.RE
de80c6
de80c6
de80c6
.B fence_kdump_nodes <node(s)>
de80c6
.RS
de80c6
List of cluster node(s) separated by space to send fence_kdump notification
de80c6
to (this option is mandatory to enable fence_kdump).
de80c6
.RE
de80c6
de80c6
de80c6
.SH DEPRECATED OPTIONS
de80c6
de80c6
.B net <nfs mount>|<user@server>
de80c6
.RS
de80c6
net option is replaced by nfs and ssh options. Use nfs or ssh options
de80c6
directly.
de80c6
.RE
de80c6
de80c6
.B options <module> <option list>
de80c6
.RS
de80c6
Use KDUMP_COMMANDLINE_APPEND in /etc/sysconfig/kdump to add proper
de80c6
module option as kernel command line params. Such as append loop.max_loop=1
de80c6
to limit maximum loop devices to 1.
de80c6
.RE
de80c6
de80c6
.B link_delay <seconds>
de80c6
.RS
de80c6
link_delay was used to wait a network device to initialize before using it.
de80c6
Now dracut network module take care of this issue automaticlly.
de80c6
.RE
de80c6
de80c6
.B disk_timeout <seconds>
de80c6
.RS
de80c6
Similar to link_delay, dracut ensures disks being ready before kdump uses them.
de80c6
.RE
de80c6
de80c6
.B debug_mem_level <0-3>
de80c6
.RS
de80c6
This was used to turns on debug/verbose output of kdump scripts regarding
de80c6
free/used memory at various points of execution.  This feature has been
de80c6
moved to dracut now.
de80c6
Use KDUMP_COMMANDLINE_APPEND in /etc/sysconfig/kdump and
de80c6
append dracut cmdline param rd.memdebug=[0-3] to enable the debug output.
de80c6
de80c6
Higher level means more debugging output.
de80c6
.PP
de80c6
0 - no output
de80c6
.PP
de80c6
1 - partial /proc/meminfo
de80c6
.PP
de80c6
2 - /proc/meminfo
de80c6
.PP
de80c6
3 - /proc/meminfo + /proc/slabinfo
de80c6
.RE
de80c6
de80c6
.B blacklist <list of kernel modules>
de80c6
.RS
de80c6
blacklist option was recently being used to prevent loading modules in
de80c6
initramfs. General terminology for blacklist has been that module is
de80c6
present in initramfs but it is not actually loaded in kernel. Hence
de80c6
retaining blacklist option creates more confusing behavior. It has been
de80c6
deprecated.
de80c6
.PP
de80c6
Instead use rd.driver.blacklist option on second kernel to blacklist
de80c6
a certain module. One can edit /etc/sysconfig/kdump.conf and edit
de80c6
KDUMP_COMMANDLINE_APPEND to pass kernel command line options. Refer
de80c6
to dracut.cmdline man page for more details on module blacklist option.
de80c6
.RE
de80c6
de80c6
.RE
de80c6
de80c6
.SH EXAMPLES
de80c6
Here is some examples for core_collector option:
de80c6
.PP
de80c6
Core collector command format depends on dump target type. Typically for
de80c6
filesystem (local/remote), core_collector should accept two arguments.
de80c6
First one is source file and second one is target file. For ex.
de80c6
.TP
de80c6
ex1.
de80c6
core_collector "cp --sparse=always"
de80c6
de80c6
Above will effectively be translated to:
de80c6
de80c6
cp --sparse=always /proc/vmcore <dest-path>/vmcore
de80c6
.TP
de80c6
ex2.
de80c6
core_collector "makedumpfile -l --message-level 1 -d 31"
de80c6
de80c6
Above will effectively be translated to:
de80c6
de80c6
makedumpfile -l --message-level 1 -d 31 /proc/vmcore <dest-path>/vmcore
de80c6
.PP
de80c6
For dump targets like raw and ssh, in general, core collector should expect
de80c6
one argument (source file) and should output the processed core on standard
de80c6
output (There is one exception of "scp", discussed later). This standard
de80c6
output will be saved to destination using appropriate commands.
de80c6
de80c6
raw dumps examples:
de80c6
.TP
de80c6
ex3.
de80c6
core_collector "cat"
de80c6
de80c6
Above will effectively be translated to.
de80c6
de80c6
cat /proc/vmcore | dd of=<target-device>
de80c6
.TP
de80c6
ex4.
de80c6
core_collector "makedumpfile -F -l --message-level 1 -d 31"
de80c6
de80c6
Above will effectively be translated to.
de80c6
de80c6
makedumpfile -F -l --message-level 1 -d 31 | dd of=<target-device>
de80c6
.PP
de80c6
ssh dumps examples
de80c6
.TP
de80c6
ex5.
de80c6
core_collector "cat"
de80c6
de80c6
Above will effectively be translated to.
de80c6
de80c6
cat /proc/vmcore | ssh <options> <remote-location> "dd of=path/vmcore"
de80c6
.TP
de80c6
ex6.
de80c6
core_collector "makedumpfile -F -l --message-level 1 -d 31"
de80c6
de80c6
Above will effectively be translated to.
de80c6
de80c6
makedumpfile -F -l --message-level 1 -d 31 | ssh <options> <remote-location> "dd of=path/vmcore"
de80c6
de80c6
There is one exception to standard output rule for ssh dumps. And that is
de80c6
scp. As scp can handle ssh destinations for file transfers, one can
de80c6
specify "scp" as core collector for ssh targets (no output on stdout).
de80c6
.TP
de80c6
ex7.
de80c6
core_collector "scp"
de80c6
de80c6
Above will effectively be translated to.
de80c6
de80c6
scp /proc/vmcore <user@host>:path/vmcore
de80c6
de80c6
.PP
de80c6
examples for other options please see
de80c6
.I /etc/kdump.conf
de80c6
de80c6
.SH SEE ALSO
de80c6
de80c6
kexec(8) mkdumprd(8) dracut.cmdline(7)