2016-07-06 05:02:08 +00:00
|
|
|
# This file contains a series of commands to perform (in order) in the kdump
|
|
|
|
# kernel after a kernel crash in the crash kernel(1st kernel) has happened.
|
|
|
|
#
|
|
|
|
# Directives in this file are only applicable to the kdump initramfs, and have
|
|
|
|
# no effect once the root filesystem is mounted and the normal init scripts are
|
|
|
|
# processed.
|
|
|
|
#
|
|
|
|
# Currently, only one dump target and path can be specified. If the dumping to
|
|
|
|
# the configured target fails, the default action which can be configured via
|
|
|
|
# the "default" directive will be performed.
|
|
|
|
#
|
|
|
|
# Supported options:
|
|
|
|
#
|
|
|
|
# raw <partition>
|
|
|
|
# - Will dd /proc/vmcore into <partition>.
|
|
|
|
# Use persistent device names for partition devices,
|
|
|
|
# such as /dev/vg/<devname>.
|
|
|
|
#
|
|
|
|
# nfs <nfs mount>
|
|
|
|
# - Will mount nfs to <mnt>, and copy /proc/vmcore to
|
|
|
|
# <mnt>/<path>/%HOST-%DATE/, supports DNS.
|
|
|
|
#
|
|
|
|
# ssh <user@server>
|
|
|
|
# - Will scp /proc/vmcore to <user@server>:<path>/%HOST-%DATE/,
|
|
|
|
# supports DNS.
|
|
|
|
# NOTE: make sure the user has write permissions on the server.
|
|
|
|
#
|
|
|
|
# sshkey <path>
|
|
|
|
# - Will use the sshkey to do ssh dump.
|
|
|
|
# Specify the path of the ssh key to use when dumping
|
|
|
|
# via ssh. The default value is /root/.ssh/kdump_id_rsa.
|
|
|
|
#
|
|
|
|
# <fs type> <partition>
|
|
|
|
# - Will mount -t <fs type> <partition> <mnt>, and copy
|
2018-11-04 22:04:59 +00:00
|
|
|
# /proc/vmcore to <mnt>/<path>/%HOST_IP-%DATE/.
|
2016-07-06 05:02:08 +00:00
|
|
|
# NOTE: <partition> can be a device node, label or uuid.
|
|
|
|
# It's recommended to use persistent device names
|
|
|
|
# such as /dev/vg/<devname>.
|
|
|
|
# Otherwise it's suggested to use label or uuid.
|
|
|
|
#
|
|
|
|
# path <path>
|
|
|
|
# - "path" represents the file system path in which vmcore
|
|
|
|
# will be saved. If a dump target is specified in
|
|
|
|
# kdump.conf, then "path" is relative to the specified
|
|
|
|
# dump target.
|
|
|
|
#
|
|
|
|
# Interpretation of "path" changes a bit if the user didn't
|
|
|
|
# specify any dump target explicitly in kdump.conf. In this
|
|
|
|
# case, "path" represents the absolute path from root. The
|
|
|
|
# dump target and adjusted path are arrived at automatically
|
|
|
|
# depending on what's mounted in the current system.
|
|
|
|
#
|
|
|
|
# Ignored for raw device dumps. If unset, will use the default
|
|
|
|
# "/var/crash".
|
2006-12-15 21:05:01 +00:00
|
|
|
#
|
2012-06-08 03:38:01 +00:00
|
|
|
# core_collector <command> <options>
|
2016-07-06 05:02:08 +00:00
|
|
|
# - This allows you to specify the command to copy
|
|
|
|
# the vmcore. The default is makedumpfile, which on
|
|
|
|
# some architectures can drastically reduce vmcore size.
|
|
|
|
# See /sbin/makedumpfile --help for a list of options.
|
|
|
|
# Note that the -i and -g options are not needed here,
|
|
|
|
# as the initrd will automatically be populated with a
|
|
|
|
# config file appropriate for the running kernel.
|
|
|
|
# The default core_collector for raw/ssh dump is:
|
|
|
|
# "makedumpfile -F -l --message-level 1 -d 31".
|
|
|
|
# The default core_collector for other targets is:
|
|
|
|
# "makedumpfile -l --message-level 1 -d 31".
|
|
|
|
#
|
|
|
|
# "makedumpfile -F" will create a flattened vmcore.
|
|
|
|
# You need to use "makedumpfile -R" to rearrange the dump data to
|
|
|
|
# a normal dumpfile readable with analysis tools. For example:
|
|
|
|
# "makedumpfile -R vmcore < vmcore.flat".
|
|
|
|
#
|
|
|
|
# For core_collector format details, you can refer to
|
|
|
|
# kexec-kdump-howto.txt or kdump.conf manpage.
|
2006-12-15 21:05:01 +00:00
|
|
|
#
|
2012-06-14 01:57:30 +00:00
|
|
|
# kdump_post <binary | script>
|
2016-07-06 05:02:08 +00:00
|
|
|
# - This directive allows you to run a executable binary
|
|
|
|
# or script after the vmcore dump process terminates.
|
|
|
|
# The exit status of the current dump process is fed to
|
|
|
|
# the executable binary or script as its first argument.
|
2012-06-14 01:57:30 +00:00
|
|
|
#
|
|
|
|
# kdump_pre <binary | script>
|
2016-07-06 05:02:08 +00:00
|
|
|
# - Works like the "kdump_post" directive, but instead of running
|
|
|
|
# after the dump process, runs immediately before it.
|
|
|
|
# Exit status of this binary is interpreted as follows:
|
|
|
|
# 0 - continue with dump process as usual
|
|
|
|
# non 0 - reboot the system
|
2012-06-14 01:57:30 +00:00
|
|
|
#
|
2008-06-05 15:18:53 +00:00
|
|
|
# extra_bins <binaries | shell scripts>
|
2016-07-06 05:02:08 +00:00
|
|
|
# - This directive allows you to specify additional binaries or
|
|
|
|
# shell scripts to be included in the kdump initrd.
|
|
|
|
# Generally they are useful in conjunction with a kdump_post
|
|
|
|
# or kdump_pre binary or script which depends on these extra_bins.
|
2008-06-05 15:18:53 +00:00
|
|
|
#
|
|
|
|
# extra_modules <module(s)>
|
2016-07-06 05:02:08 +00:00
|
|
|
# - This directive allows you to specify extra kernel modules
|
|
|
|
# that you want to be loaded in the kdump initrd.
|
|
|
|
# Multiple modules can be listed, separated by spaces, and any
|
|
|
|
# dependent modules will automatically be included.
|
2008-06-05 15:18:53 +00:00
|
|
|
#
|
Change dump_to_rootfs to be a default option and reboot to be default action
Firstly rename dump_rootfs to dump_to_rootfs to remove the ambiguity
about dump_rootfs. Then add it as one of default options. That means
user can specify dump_to_rootfs to be default action manually, then
it will take action when specified target dump failed.
Secondly, in rhel7 and fedora, when default action is not specified,
the default 'default' is dump_to_rootfs. Namely when specified target
dump failed, the kdump initrd will mount root and save kdump from
initramfs context. However in rhel6, the default 'default' is 'reboot'.
That means when specified target dump failed, the kdump initrd will
reboot systems. For being consistent with rhel6, change the default
'default' back to 'reboot'. And this can also keep logic simple, easier
to understand. Primarily, Our default dump target is root filesystem.
So keeping "default" as "dump_to_rootfs" and trying to dump to root
filesystem again when first attempt fails does not make much sense.
Meanwhile add the relevant description into kdump.conf,kdump.conf.5
and kexec-kdump-howto.txt.
Signed-off-by: Baoquan He <bhe@redhat.com>
Acked-by: Dave Young <dyoung@redhat.com>
Acked-by: Vivek Goyal <vgoyal@redhat.com>
2013-03-01 07:14:19 +00:00
|
|
|
# default <reboot | halt | poweroff | shell | dump_to_rootfs>
|
2016-07-06 05:02:08 +00:00
|
|
|
# - Action to perform in case dumping fails.
|
|
|
|
# reboot: Reboot the system.
|
|
|
|
# halt: Halt the system.
|
|
|
|
# poweroff: Power down the system.
|
|
|
|
# shell: Drop to a bash shell.
|
|
|
|
# Exiting the shell reboots the system.
|
|
|
|
# dump_to_rootfs: Dump vmcore to rootfs from initramfs context and
|
|
|
|
# reboot. Useful when non-root dump target is specified.
|
|
|
|
# The default option is "reboot".
|
2012-08-06 14:01:29 +00:00
|
|
|
#
|
|
|
|
# force_rebuild <0 | 1>
|
2016-11-15 09:07:59 +00:00
|
|
|
# - By default, kdump initrd will only be rebuilt when necessary.
|
2016-07-06 05:02:08 +00:00
|
|
|
# Specify 1 to force rebuilding kdump initrd every time when kdump
|
|
|
|
# service starts.
|
Check if block device as dump target is resettable
Some Smart Array (hpsa/cciss) adapters don't support reset, we need
to disable kdump on those devices, like rhel6 did.
In this patch, the dump target is checked according to below
criteria if it's a block device.
If it's cciss disk but is resettbale, can be used as dump target.
If it's cciss disk but is not resettable, can not be used as dump
target.
If it's cciss disk and not resettable, but user set OVERRIDE_RESETTABLE
to 1 in /etc/sysconfig/kdump, can be taken as dump target. Because
user know the situation and want to have a try.
In this patch, added codes include 4 parts:
1)Add an option "override_resettable <0 | 1>" into kdump.conf, and
add related section into kdump.conf man page. In mkdumprd, will check
whether user has set a value, get that value if yes. By default, the
value is 0.
2)port utility functions from dracut-functions.sh.
3)The check_resettable function checks if dump target is a resettable
block device. This includes the case where default action dump_to_rootfs
is set.
Signed-off-by: Baoquan He <bhe@redhat.com>
Acked-by: Vivek Goyal <vgoyal@redhat.com>
2013-03-29 07:32:31 +00:00
|
|
|
#
|
2017-04-12 05:44:18 +00:00
|
|
|
# force_no_rebuild <0 | 1>
|
|
|
|
# - By default, kdump initrd will be rebuilt when necessary.
|
|
|
|
# Specify 1 to bypass rebuilding of kdump initrd.
|
|
|
|
#
|
|
|
|
# force_no_rebuild and force_rebuild options are mutually
|
|
|
|
# exclusive and they should not be set to 1 simultaneously.
|
|
|
|
#
|
2016-07-06 05:02:08 +00:00
|
|
|
# override_resettable <0 | 1>
|
|
|
|
# - Usually an unresettable block device can't be a dump target.
|
|
|
|
# Specifying 1 when you want to dump even though the block
|
|
|
|
# target is unresettable
|
|
|
|
# By default, it is 0, which will not try dumping destined to fail.
|
add dracut_args option to kdump.conf
mkdumprd call dracut to rebuilding kdump initrd, sometimes passing extra
dracut args is helpful. For example user can enable debug output with
--debug, --printsize to print roughly increased initramfs size by each module,
--omit-drivers to omit kernel modules, etc.
This patch enables dracut_args option for passing extra args to dracut.
Also it modifies add_dracut_arg() to treat a string with-in quote as single
string because for dracut options which has its own args, the args need to be
quoted and space seperated.
If add_dracut_arg() gets an string read from kdump.conf and if that string
contains double quotes, then while converting to positional parameters
those double quotes are not interpreted. Hence if /etc/kdump.conf contains
following.
dracut_args --add-drivers "driver1 driver2"
then add_dracut_args() sees following positional parameters
$1= --add-drivers
$2= "driver1
$3= driver2"
Notice, double quotes have been ignored and parameters have been broken
based on white space.
Modify add_dracut_arg() to look for parameters starting with " and
if one is found, it tries to merge all the next parameters till one
is found with ending double quote. Hence effectively simulating
following behavior.
$1= --add-drivers
$2= "driver1 driver2"
[v1->v2]: address quoted substring in dracut_args, also handle the leading
and ending spaces in substring.
[v2->v3]: fix dracut arguments seperator in kdump.conf.
[v3->v4]: improve changelog, thanks vivek.
[v4->v5]: make the manpage more verbose [vivek].
Tested with below dracut_args test cases:
1. dracut_args --add-drivers "pcspkr virtio_net" --omit-drivers "sdhci-pci hid-logitech-dj e1000"
2. dracut_args --add-drivers " pcspkr virtio_net " --omit-drivers "sdhci-pci hid-logitech-dj e1000"
Signed-off-by: Dave Young <dyoung@redhat.com>
Acked-by: Vivek Goyal <vgoyal@redhat.com>
2013-04-15 02:12:05 +00:00
|
|
|
#
|
|
|
|
# dracut_args <arg(s)>
|
2016-07-06 05:02:08 +00:00
|
|
|
# - Pass extra dracut options when rebuilding kdump initrd.
|
2014-04-02 08:33:47 +00:00
|
|
|
#
|
|
|
|
# fence_kdump_args <arg(s)>
|
2016-07-06 05:02:08 +00:00
|
|
|
# - Command line arguments for fence_kdump_send (it can contain
|
|
|
|
# all valid arguments except hosts to send notification to).
|
2014-04-02 08:33:47 +00:00
|
|
|
#
|
|
|
|
# fence_kdump_nodes <node(s)>
|
2017-05-17 03:16:22 +00:00
|
|
|
# - List of cluster node(s) except localhost, separated by spaces,
|
|
|
|
# to send fence_kdump notifications to.
|
|
|
|
# (this option is mandatory to enable fence_kdump).
|
2014-04-02 08:33:47 +00:00
|
|
|
#
|
2006-07-20 03:36:18 +00:00
|
|
|
|
2012-10-10 07:09:15 +00:00
|
|
|
#raw /dev/vg/lv_kdump
|
|
|
|
#ext4 /dev/vg/lv_kdump
|
2010-06-13 19:20:48 +00:00
|
|
|
#ext4 LABEL=/boot
|
|
|
|
#ext4 UUID=03138356-5e61-4ab3-b58e-27507ac41937
|
2012-07-23 07:31:28 +00:00
|
|
|
#nfs my.server.com:/export/tmp
|
|
|
|
#ssh user@my.server.com
|
2012-02-22 03:16:09 +00:00
|
|
|
#sshkey /root/.ssh/kdump_id_rsa
|
2012-06-06 08:24:10 +00:00
|
|
|
path /var/crash
|
2014-01-02 15:30:58 +00:00
|
|
|
core_collector makedumpfile -l --message-level 1 -d 31
|
2012-06-14 01:56:10 +00:00
|
|
|
#core_collector scp
|
2012-06-14 01:57:30 +00:00
|
|
|
#kdump_post /var/crash/scripts/kdump-post.sh
|
|
|
|
#kdump_pre /var/crash/scripts/kdump-pre.sh
|
2008-06-05 15:18:53 +00:00
|
|
|
#extra_bins /usr/bin/lftp
|
|
|
|
#extra_modules gfs2
|
2006-12-15 21:05:01 +00:00
|
|
|
#default shell
|
2012-08-06 14:01:29 +00:00
|
|
|
#force_rebuild 1
|
2017-04-12 05:44:18 +00:00
|
|
|
#force_no_rebuild 1
|
add dracut_args option to kdump.conf
mkdumprd call dracut to rebuilding kdump initrd, sometimes passing extra
dracut args is helpful. For example user can enable debug output with
--debug, --printsize to print roughly increased initramfs size by each module,
--omit-drivers to omit kernel modules, etc.
This patch enables dracut_args option for passing extra args to dracut.
Also it modifies add_dracut_arg() to treat a string with-in quote as single
string because for dracut options which has its own args, the args need to be
quoted and space seperated.
If add_dracut_arg() gets an string read from kdump.conf and if that string
contains double quotes, then while converting to positional parameters
those double quotes are not interpreted. Hence if /etc/kdump.conf contains
following.
dracut_args --add-drivers "driver1 driver2"
then add_dracut_args() sees following positional parameters
$1= --add-drivers
$2= "driver1
$3= driver2"
Notice, double quotes have been ignored and parameters have been broken
based on white space.
Modify add_dracut_arg() to look for parameters starting with " and
if one is found, it tries to merge all the next parameters till one
is found with ending double quote. Hence effectively simulating
following behavior.
$1= --add-drivers
$2= "driver1 driver2"
[v1->v2]: address quoted substring in dracut_args, also handle the leading
and ending spaces in substring.
[v2->v3]: fix dracut arguments seperator in kdump.conf.
[v3->v4]: improve changelog, thanks vivek.
[v4->v5]: make the manpage more verbose [vivek].
Tested with below dracut_args test cases:
1. dracut_args --add-drivers "pcspkr virtio_net" --omit-drivers "sdhci-pci hid-logitech-dj e1000"
2. dracut_args --add-drivers " pcspkr virtio_net " --omit-drivers "sdhci-pci hid-logitech-dj e1000"
Signed-off-by: Dave Young <dyoung@redhat.com>
Acked-by: Vivek Goyal <vgoyal@redhat.com>
2013-04-15 02:12:05 +00:00
|
|
|
#dracut_args --omit-drivers "cfg80211 snd" --add-drivers "ext2 ext3"
|
2014-04-02 08:33:47 +00:00
|
|
|
#fence_kdump_args -p 7410 -f auto -c 0 -i 10
|
|
|
|
#fence_kdump_nodes node1 node2
|