kdump-lib.sh: introduce get_kdump_targets()
Resolves: bz1451717 https://bugzilla.redhat.com/1451717 We need to know all the kdump targets including the dump target and root in case of "dump_to_rootfs". This is useful for us to do some extra work related to the type of different targets. Signed-off-by: Xunlei Pang <xlpang@redhat.com> Acked-by: Dave Young <dyoung@redhat.com>
This commit is contained in:
parent
1bc78e025f
commit
3ee00cd384
51
kdump-lib.sh
51
kdump-lib.sh
@ -135,6 +135,57 @@ get_block_dump_target()
|
|||||||
[ -b "$_target" ] && echo $(to_dev_name $_target)
|
[ -b "$_target" ] && echo $(to_dev_name $_target)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
is_dump_to_rootfs()
|
||||||
|
{
|
||||||
|
grep "^default[[:space:]]dump_to_rootfs" /etc/kdump.conf >/dev/null
|
||||||
|
}
|
||||||
|
|
||||||
|
get_default_action_target()
|
||||||
|
{
|
||||||
|
local _target
|
||||||
|
|
||||||
|
if is_dump_to_rootfs; then
|
||||||
|
# Get rootfs device name
|
||||||
|
_target=$(get_root_fs_device)
|
||||||
|
[ -b "$_target" ] && echo $(to_dev_name $_target) && return
|
||||||
|
# Then, must be nfs root
|
||||||
|
echo "nfs"
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
# Get kdump targets(including root in case of dump_to_rootfs).
|
||||||
|
get_kdump_targets()
|
||||||
|
{
|
||||||
|
local _target _root
|
||||||
|
local kdump_targets
|
||||||
|
|
||||||
|
_target=$(get_block_dump_target)
|
||||||
|
if [ -n "$_target" ]; then
|
||||||
|
kdump_targets=$_target
|
||||||
|
elif is_ssh_dump_target; then
|
||||||
|
kdump_targets="ssh"
|
||||||
|
else
|
||||||
|
kdump_targets="nfs"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Add the root device if dump_to_rootfs is specified.
|
||||||
|
_root=$(get_default_action_target)
|
||||||
|
if [ -n "$_root" -a "$kdump_targets" != "$_root" ]; then
|
||||||
|
kdump_targets="$kdump_targets $_root"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# NOTE:
|
||||||
|
# dracut parses devices from "/etc/fstab" with the "x-initrd.mount" option,
|
||||||
|
# which will be added as host_devs, it also includes usually simple devices
|
||||||
|
# (say mounted to /boot, /boot/efi/, etc) plus the root device. Then kdump
|
||||||
|
# must wait for these devices if initramfs is built with "--hostonly-cmdline".
|
||||||
|
#
|
||||||
|
# We don't pass "--hostonly-cmdline" to dracut, so there's no problem.
|
||||||
|
|
||||||
|
echo "$kdump_targets"
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
# findmnt uses the option "-v, --nofsroot" to exclusive the [/dir]
|
# findmnt uses the option "-v, --nofsroot" to exclusive the [/dir]
|
||||||
# in the SOURCE column for bind-mounts, then if $_mntpoint equals to
|
# in the SOURCE column for bind-mounts, then if $_mntpoint equals to
|
||||||
# $_mntpoint_nofsroot, the mountpoint is not bind mounted directory.
|
# $_mntpoint_nofsroot, the mountpoint is not bind mounted directory.
|
||||||
|
5
kdumpctl
5
kdumpctl
@ -175,11 +175,6 @@ check_kdump_cpus()
|
|||||||
echo " try nr_cpus=$nr_min or larger instead"
|
echo " try nr_cpus=$nr_min or larger instead"
|
||||||
}
|
}
|
||||||
|
|
||||||
is_dump_to_rootfs()
|
|
||||||
{
|
|
||||||
grep "^default[[:space:]]dump_to_rootfs" /etc/kdump.conf >/dev/null
|
|
||||||
}
|
|
||||||
|
|
||||||
# This function performs a series of edits on the command line.
|
# This function performs a series of edits on the command line.
|
||||||
# Store the final result in global $KDUMP_COMMANDLINE.
|
# Store the final result in global $KDUMP_COMMANDLINE.
|
||||||
prepare_cmdline()
|
prepare_cmdline()
|
||||||
|
12
mkdumprd
12
mkdumprd
@ -278,18 +278,6 @@ handle_default_dump_target()
|
|||||||
check_size fs $_target
|
check_size fs $_target
|
||||||
}
|
}
|
||||||
|
|
||||||
get_default_action_target()
|
|
||||||
{
|
|
||||||
local _target
|
|
||||||
local _action=$(grep "^default" /etc/kdump.conf 2>/dev/null | awk '{print $2}')
|
|
||||||
if [ -n "$_action" ] && [ "$_action" = "dump_to_rootfs" ]; then
|
|
||||||
#get rootfs device name
|
|
||||||
_target=$(findmnt -k -f -n -o SOURCE /)
|
|
||||||
[ -b "$_target" ] && echo $(to_dev_name $_target)
|
|
||||||
fi
|
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
get_override_resettable()
|
get_override_resettable()
|
||||||
{
|
{
|
||||||
local override_resettable
|
local override_resettable
|
||||||
|
Loading…
Reference in New Issue
Block a user