kdump-lib.sh: reformat with shfmt
upstream: fedora
resolves: bz2003832
conflict:
Regenerated with shfmt command because of
too much hunk patches. When comparing with the original
patch, only patch "kdumpctl: enable secure boot on ppc64le LPARs"
related hunks are different.
commit 4cdce1f489
Author: Kairui Song <kasong@redhat.com>
Date: Tue Sep 14 03:09:30 2021 +0800
kdump-lib.sh: reformat with shfmt
This is a batch update done with:
shfmt -s -w kdump-lib.sh
Clean up code style and reduce code base size, no behaviour change.
Signed-off-by: Kairui Song <kasong@redhat.com>
Acked-by: Philipp Rudo <prudo@redhat.com>
Signed-off-by: Tao Liu <ltao@redhat.com>
This commit is contained in:
parent
040a2e259f
commit
d53e0655f1
144
kdump-lib.sh
144
kdump-lib.sh
@ -20,9 +20,10 @@ is_fadump_capable()
|
|||||||
return 1
|
return 1
|
||||||
}
|
}
|
||||||
|
|
||||||
is_squash_available() {
|
is_squash_available()
|
||||||
|
{
|
||||||
for kmodule in squashfs overlay loop; do
|
for kmodule in squashfs overlay loop; do
|
||||||
if [[ -z "$KDUMP_KERNELVER" ]]; then
|
if [[ -z $KDUMP_KERNELVER ]]; then
|
||||||
modprobe --dry-run $kmodule &> /dev/null || return 1
|
modprobe --dry-run $kmodule &> /dev/null || return 1
|
||||||
else
|
else
|
||||||
modprobe -S "$KDUMP_KERNELVER" --dry-run $kmodule &> /dev/null || return 1
|
modprobe -S "$KDUMP_KERNELVER" --dry-run $kmodule &> /dev/null || return 1
|
||||||
@ -30,7 +31,8 @@ is_squash_available() {
|
|||||||
done
|
done
|
||||||
}
|
}
|
||||||
|
|
||||||
perror_exit() {
|
perror_exit()
|
||||||
|
{
|
||||||
derror "$@"
|
derror "$@"
|
||||||
exit 1
|
exit 1
|
||||||
}
|
}
|
||||||
@ -54,7 +56,8 @@ is_generic_fence_kdump()
|
|||||||
[[ $(kdump_get_conf_val fence_kdump_nodes) ]]
|
[[ $(kdump_get_conf_val fence_kdump_nodes) ]]
|
||||||
}
|
}
|
||||||
|
|
||||||
to_dev_name() {
|
to_dev_name()
|
||||||
|
{
|
||||||
local dev="${1//\"/}"
|
local dev="${1//\"/}"
|
||||||
|
|
||||||
case "$dev" in
|
case "$dev" in
|
||||||
@ -66,6 +69,7 @@ to_dev_name() {
|
|||||||
;;
|
;;
|
||||||
*)
|
*)
|
||||||
echo "$dev"
|
echo "$dev"
|
||||||
|
;;
|
||||||
esac
|
esac
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -79,10 +83,10 @@ get_user_configured_dump_disk()
|
|||||||
local _target
|
local _target
|
||||||
|
|
||||||
_target=$(kdump_get_conf_val "ext[234]\|xfs\|btrfs\|minix\|raw")
|
_target=$(kdump_get_conf_val "ext[234]\|xfs\|btrfs\|minix\|raw")
|
||||||
[[ -n "$_target" ]] && echo "$_target" && return
|
[[ -n $_target ]] && echo "$_target" && return
|
||||||
|
|
||||||
_target=$(get_dracut_args_target "$(kdump_get_conf_val "dracut_args")")
|
_target=$(get_dracut_args_target "$(kdump_get_conf_val "dracut_args")")
|
||||||
[[ -b "$_target" ]] && echo "$_target"
|
[[ -b $_target ]] && echo "$_target"
|
||||||
}
|
}
|
||||||
|
|
||||||
get_block_dump_target()
|
get_block_dump_target()
|
||||||
@ -94,12 +98,12 @@ get_block_dump_target()
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
_target=$(get_user_configured_dump_disk)
|
_target=$(get_user_configured_dump_disk)
|
||||||
[[ -n "$_target" ]] && to_dev_name "$_target" && return
|
[[ -n $_target ]] && to_dev_name "$_target" && return
|
||||||
|
|
||||||
# Get block device name from local save path
|
# Get block device name from local save path
|
||||||
_path=$(get_save_path)
|
_path=$(get_save_path)
|
||||||
_target=$(get_target_from_path "$_path")
|
_target=$(get_target_from_path "$_path")
|
||||||
[[ -b "$_target" ]] && to_dev_name "$_target"
|
[[ -b $_target ]] && to_dev_name "$_target"
|
||||||
}
|
}
|
||||||
|
|
||||||
is_dump_to_rootfs()
|
is_dump_to_rootfs()
|
||||||
@ -114,7 +118,7 @@ get_failure_action_target()
|
|||||||
if is_dump_to_rootfs; then
|
if is_dump_to_rootfs; then
|
||||||
# Get rootfs device name
|
# Get rootfs device name
|
||||||
_target=$(get_root_fs_device)
|
_target=$(get_root_fs_device)
|
||||||
[[ -b "$_target" ]] && to_dev_name "$_target" && return
|
[[ -b $_target ]] && to_dev_name "$_target" && return
|
||||||
# Then, must be nfs root
|
# Then, must be nfs root
|
||||||
echo "nfs"
|
echo "nfs"
|
||||||
fi
|
fi
|
||||||
@ -127,7 +131,7 @@ get_kdump_targets()
|
|||||||
local kdump_targets
|
local kdump_targets
|
||||||
|
|
||||||
_target=$(get_block_dump_target)
|
_target=$(get_block_dump_target)
|
||||||
if [[ -n "$_target" ]]; then
|
if [[ -n $_target ]]; then
|
||||||
kdump_targets=$_target
|
kdump_targets=$_target
|
||||||
elif is_ssh_dump_target; then
|
elif is_ssh_dump_target; then
|
||||||
kdump_targets="ssh"
|
kdump_targets="ssh"
|
||||||
@ -137,7 +141,7 @@ get_kdump_targets()
|
|||||||
|
|
||||||
# Add the root device if dump_to_rootfs is specified.
|
# Add the root device if dump_to_rootfs is specified.
|
||||||
_root=$(get_failure_action_target)
|
_root=$(get_failure_action_target)
|
||||||
if [[ -n "$_root" ]] && [[ "$kdump_targets" != "$_root" ]]; then
|
if [[ -n $_root ]] && [[ $kdump_targets != "$_root" ]]; then
|
||||||
kdump_targets="$kdump_targets $_root"
|
kdump_targets="$kdump_targets $_root"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
@ -169,13 +173,13 @@ get_bind_mount_source()
|
|||||||
_fstype=$(get_mount_info FSTYPE target "$_mnt" -f)
|
_fstype=$(get_mount_info FSTYPE target "$_mnt" -f)
|
||||||
|
|
||||||
# bind mount in fstab
|
# bind mount in fstab
|
||||||
if [[ -d "$_src" ]] && [[ "$_fstype" = none ]] && (echo "$_opt" | grep -q "\bbind\b"); then
|
if [[ -d $_src ]] && [[ $_fstype == none ]] && (echo "$_opt" | grep -q "\bbind\b"); then
|
||||||
echo "$_src$_path" && return
|
echo "$_src$_path" && return
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# direct mount
|
# direct mount
|
||||||
_src_nofsroot=$(get_mount_info SOURCE target "$_mnt" -v -f)
|
_src_nofsroot=$(get_mount_info SOURCE target "$_mnt" -v -f)
|
||||||
if [[ $_src_nofsroot = "$_src" ]]; then
|
if [[ $_src_nofsroot == "$_src" ]]; then
|
||||||
echo "$_mnt$_path" && return
|
echo "$_mnt$_path" && return
|
||||||
fi
|
fi
|
||||||
|
|
||||||
@ -184,7 +188,7 @@ get_bind_mount_source()
|
|||||||
_mnt=$(get_mount_info TARGET source "$_src_nofsroot" -f)
|
_mnt=$(get_mount_info TARGET source "$_src_nofsroot" -f)
|
||||||
|
|
||||||
# for btrfs, _fsroot will also contain the subvol value as well, strip it
|
# for btrfs, _fsroot will also contain the subvol value as well, strip it
|
||||||
if [[ "$_fstype" = btrfs ]]; then
|
if [[ $_fstype == btrfs ]]; then
|
||||||
local _subvol
|
local _subvol
|
||||||
_subvol=${_opt#*subvol=}
|
_subvol=${_opt#*subvol=}
|
||||||
_subvol=${_subvol%,*}
|
_subvol=${_subvol%,*}
|
||||||
@ -209,10 +213,10 @@ get_kdump_mntpoint_from_target()
|
|||||||
# mount under /kdumproot if dump target is not mounted in first kernel
|
# mount under /kdumproot if dump target is not mounted in first kernel
|
||||||
# mount under /kdumproot/$_mntpoint in other cases in 2nd kernel.
|
# mount under /kdumproot/$_mntpoint in other cases in 2nd kernel.
|
||||||
# systemd will be in charge to umount it.
|
# systemd will be in charge to umount it.
|
||||||
if [[ -z "$_mntpoint" ]];then
|
if [[ -z $_mntpoint ]]; then
|
||||||
_mntpoint="/kdumproot"
|
_mntpoint="/kdumproot"
|
||||||
else
|
else
|
||||||
if [[ "$_mntpoint" = "/" ]];then
|
if [[ $_mntpoint == "/" ]]; then
|
||||||
_mntpoint="/sysroot"
|
_mntpoint="/sysroot"
|
||||||
else
|
else
|
||||||
_mntpoint="/kdumproot/$_mntpoint"
|
_mntpoint="/kdumproot/$_mntpoint"
|
||||||
@ -223,7 +227,8 @@ get_kdump_mntpoint_from_target()
|
|||||||
echo $_mntpoint | tr -s "/"
|
echo $_mntpoint | tr -s "/"
|
||||||
}
|
}
|
||||||
|
|
||||||
kdump_get_persistent_dev() {
|
kdump_get_persistent_dev()
|
||||||
|
{
|
||||||
local dev="${1//\"/}"
|
local dev="${1//\"/}"
|
||||||
|
|
||||||
case "$dev" in
|
case "$dev" in
|
||||||
@ -261,7 +266,7 @@ is_hostname()
|
|||||||
local _hostname
|
local _hostname
|
||||||
|
|
||||||
_hostname=$(echo "$1" | grep ":")
|
_hostname=$(echo "$1" | grep ":")
|
||||||
if [[ -n "$_hostname" ]]; then
|
if [[ -n $_hostname ]]; then
|
||||||
return 1
|
return 1
|
||||||
fi
|
fi
|
||||||
echo "$1" | grep -q "[a-zA-Z]"
|
echo "$1" | grep -q "[a-zA-Z]"
|
||||||
@ -273,13 +278,12 @@ get_hwaddr()
|
|||||||
if [[ -f "/sys/class/net/$1/address" ]]; then
|
if [[ -f "/sys/class/net/$1/address" ]]; then
|
||||||
awk '{ print toupper($0) }' < "/sys/class/net/$1/address"
|
awk '{ print toupper($0) }' < "/sys/class/net/$1/address"
|
||||||
elif [[ -d "/sys/class/net/$1" ]]; then
|
elif [[ -d "/sys/class/net/$1" ]]; then
|
||||||
LC_ALL="" LANG="" ip -o link show "$1" 2>/dev/null | \
|
LC_ALL="" LANG="" ip -o link show "$1" 2> /dev/null |
|
||||||
awk '{ print toupper(gensub(/.*link\/[^ ]* ([[:alnum:]:]*).*/,
|
awk '{ print toupper(gensub(/.*link\/[^ ]* ([[:alnum:]:]*).*/,
|
||||||
"\\1", 1)); }'
|
"\\1", 1)); }'
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
# Get value by a field using "nmcli -g"
|
# Get value by a field using "nmcli -g"
|
||||||
# Usage: get_nmcli_value_by_field <field> <nmcli command>
|
# Usage: get_nmcli_value_by_field <field> <nmcli command>
|
||||||
#
|
#
|
||||||
@ -341,13 +345,13 @@ get_ifcfg_by_name()
|
|||||||
|
|
||||||
is_nm_running()
|
is_nm_running()
|
||||||
{
|
{
|
||||||
[[ "$(LANG=C nmcli -t --fields running general status 2>/dev/null)" = "running" ]]
|
[[ "$(LANG=C nmcli -t --fields running general status 2> /dev/null)" == "running" ]]
|
||||||
}
|
}
|
||||||
|
|
||||||
is_nm_handling()
|
is_nm_handling()
|
||||||
{
|
{
|
||||||
LANG=C nmcli -t --fields device,state dev status 2>/dev/null \
|
LANG=C nmcli -t --fields device,state dev status 2> /dev/null |
|
||||||
| grep -q "^\(${1}:connected\)\|\(${1}:connecting.*\)$"
|
grep -q "^\(${1}:connected\)\|\(${1}:connecting.*\)$"
|
||||||
}
|
}
|
||||||
|
|
||||||
# $1: netdev name
|
# $1: netdev name
|
||||||
@ -360,12 +364,12 @@ get_ifcfg_nmcli()
|
|||||||
if is_nm_running && is_nm_handling "${1}"; then
|
if is_nm_running && is_nm_handling "${1}"; then
|
||||||
# The configuration "uuid" and "name" generated by nm is wrote to
|
# The configuration "uuid" and "name" generated by nm is wrote to
|
||||||
# the ifcfg file as "UUID=<nm_uuid>" and "NAME=<nm_name>".
|
# the ifcfg file as "UUID=<nm_uuid>" and "NAME=<nm_name>".
|
||||||
nm_uuid=$(LANG=C nmcli -t --fields uuid,device c show --active 2>/dev/null \
|
nm_uuid=$(LANG=C nmcli -t --fields uuid,device c show --active 2> /dev/null |
|
||||||
| grep "${1}" | head -1 | cut -d':' -f1)
|
grep "${1}" | head -1 | cut -d':' -f1)
|
||||||
nm_name=$(LANG=C nmcli -t --fields name,device c show --active 2>/dev/null \
|
nm_name=$(LANG=C nmcli -t --fields name,device c show --active 2> /dev/null |
|
||||||
| grep "${1}" | head -1 | cut -d':' -f1)
|
grep "${1}" | head -1 | cut -d':' -f1)
|
||||||
ifcfg_file=$(get_ifcfg_by_uuid "${nm_uuid}")
|
ifcfg_file=$(get_ifcfg_by_uuid "${nm_uuid}")
|
||||||
[[ -z "${ifcfg_file}" ]] && ifcfg_file=$(get_ifcfg_by_name "${nm_name}")
|
[[ -z ${ifcfg_file} ]] && ifcfg_file=$(get_ifcfg_by_name "${nm_name}")
|
||||||
fi
|
fi
|
||||||
|
|
||||||
echo -n "${ifcfg_file}"
|
echo -n "${ifcfg_file}"
|
||||||
@ -377,15 +381,15 @@ get_ifcfg_legacy()
|
|||||||
local ifcfg_file hwaddr
|
local ifcfg_file hwaddr
|
||||||
|
|
||||||
ifcfg_file="/etc/sysconfig/network-scripts/ifcfg-${1}"
|
ifcfg_file="/etc/sysconfig/network-scripts/ifcfg-${1}"
|
||||||
[[ -f "${ifcfg_file}" ]] && echo -n "${ifcfg_file}" && return
|
[[ -f ${ifcfg_file} ]] && echo -n "${ifcfg_file}" && return
|
||||||
|
|
||||||
ifcfg_file=$(get_ifcfg_by_name "${1}")
|
ifcfg_file=$(get_ifcfg_by_name "${1}")
|
||||||
[[ -f "${ifcfg_file}" ]] && echo -n "${ifcfg_file}" && return
|
[[ -f ${ifcfg_file} ]] && echo -n "${ifcfg_file}" && return
|
||||||
|
|
||||||
hwaddr=$(get_hwaddr "${1}")
|
hwaddr=$(get_hwaddr "${1}")
|
||||||
if [[ -n "$hwaddr" ]]; then
|
if [[ -n $hwaddr ]]; then
|
||||||
ifcfg_file=$(get_ifcfg_by_hwaddr "${hwaddr}")
|
ifcfg_file=$(get_ifcfg_by_hwaddr "${hwaddr}")
|
||||||
[[ -f "${ifcfg_file}" ]] && echo -n "${ifcfg_file}" && return
|
[[ -f ${ifcfg_file} ]] && echo -n "${ifcfg_file}" && return
|
||||||
fi
|
fi
|
||||||
|
|
||||||
ifcfg_file=$(get_ifcfg_by_device "${1}")
|
ifcfg_file=$(get_ifcfg_by_device "${1}")
|
||||||
@ -395,11 +399,12 @@ get_ifcfg_legacy()
|
|||||||
|
|
||||||
# $1: netdev name
|
# $1: netdev name
|
||||||
# Return the ifcfg file whole name(including the path) of $1 if any.
|
# Return the ifcfg file whole name(including the path) of $1 if any.
|
||||||
get_ifcfg_filename() {
|
get_ifcfg_filename()
|
||||||
|
{
|
||||||
local ifcfg_file
|
local ifcfg_file
|
||||||
|
|
||||||
ifcfg_file=$(get_ifcfg_nmcli "${1}")
|
ifcfg_file=$(get_ifcfg_nmcli "${1}")
|
||||||
if [[ -z "${ifcfg_file}" ]]; then
|
if [[ -z ${ifcfg_file} ]]; then
|
||||||
ifcfg_file=$(get_ifcfg_legacy "${1}")
|
ifcfg_file=$(get_ifcfg_legacy "${1}")
|
||||||
fi
|
fi
|
||||||
|
|
||||||
@ -408,7 +413,8 @@ get_ifcfg_filename() {
|
|||||||
|
|
||||||
# returns 0 when omission of a module is desired in dracut_args
|
# returns 0 when omission of a module is desired in dracut_args
|
||||||
# returns 1 otherwise
|
# returns 1 otherwise
|
||||||
is_dracut_mod_omitted() {
|
is_dracut_mod_omitted()
|
||||||
|
{
|
||||||
local dracut_args dracut_mod=$1
|
local dracut_args dracut_mod=$1
|
||||||
|
|
||||||
set -- $(kdump_get_conf_val dracut_args)
|
set -- $(kdump_get_conf_val dracut_args)
|
||||||
@ -416,6 +422,7 @@ is_dracut_mod_omitted() {
|
|||||||
case $1 in
|
case $1 in
|
||||||
-o | --omit)
|
-o | --omit)
|
||||||
[[ " ${2//[^[:alnum:]]/ } " == *" $dracut_mod "* ]] && return 0
|
[[ " ${2//[^[:alnum:]]/ } " == *" $dracut_mod "* ]] && return 0
|
||||||
|
;;
|
||||||
esac
|
esac
|
||||||
shift
|
shift
|
||||||
done
|
done
|
||||||
@ -423,14 +430,15 @@ is_dracut_mod_omitted() {
|
|||||||
return 1
|
return 1
|
||||||
}
|
}
|
||||||
|
|
||||||
is_wdt_active() {
|
is_wdt_active()
|
||||||
|
{
|
||||||
local active
|
local active
|
||||||
|
|
||||||
[[ -d /sys/class/watchdog ]] || return 1
|
[[ -d /sys/class/watchdog ]] || return 1
|
||||||
for dir in /sys/class/watchdog/*; do
|
for dir in /sys/class/watchdog/*; do
|
||||||
[[ -f "$dir/state" ]] || continue
|
[[ -f "$dir/state" ]] || continue
|
||||||
active=$(< "$dir/state")
|
active=$(< "$dir/state")
|
||||||
[[ "$active" = "active" ]] && return 0
|
[[ $active == "active" ]] && return 0
|
||||||
done
|
done
|
||||||
return 1
|
return 1
|
||||||
}
|
}
|
||||||
@ -490,7 +498,7 @@ remove_cmdline_param()
|
|||||||
shift
|
shift
|
||||||
|
|
||||||
for arg in "$@"; do
|
for arg in "$@"; do
|
||||||
cmdline=$(echo "$cmdline" | \
|
cmdline=$(echo "$cmdline" |
|
||||||
sed -e "s/\b$arg=[^ ]*//g" \
|
sed -e "s/\b$arg=[^ ]*//g" \
|
||||||
-e "s/^$arg\b//g" \
|
-e "s/^$arg\b//g" \
|
||||||
-e "s/[[:space:]]$arg\b//g" \
|
-e "s/[[:space:]]$arg\b//g" \
|
||||||
@ -523,7 +531,7 @@ append_cmdline()
|
|||||||
local newstr=${cmdline/$2/""}
|
local newstr=${cmdline/$2/""}
|
||||||
|
|
||||||
# unchanged str implies argument wasn't there
|
# unchanged str implies argument wasn't there
|
||||||
if [[ "$cmdline" == "$newstr" ]]; then
|
if [[ $cmdline == "$newstr" ]]; then
|
||||||
cmdline="${cmdline} ${2}=${3}"
|
cmdline="${cmdline} ${2}=${3}"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
@ -562,11 +570,11 @@ is_secure_boot_enforced()
|
|||||||
secure_boot_file=$(find /sys/firmware/efi/efivars -name "SecureBoot-*" 2> /dev/null)
|
secure_boot_file=$(find /sys/firmware/efi/efivars -name "SecureBoot-*" 2> /dev/null)
|
||||||
setup_mode_file=$(find /sys/firmware/efi/efivars -name "SetupMode-*" 2> /dev/null)
|
setup_mode_file=$(find /sys/firmware/efi/efivars -name "SetupMode-*" 2> /dev/null)
|
||||||
|
|
||||||
if [[ -f "$secure_boot_file" ]] && [[ -f "$setup_mode_file" ]]; then
|
if [[ -f $secure_boot_file ]] && [[ -f $setup_mode_file ]]; then
|
||||||
secure_boot_byte=$(hexdump -v -e '/1 "%d\ "' "$secure_boot_file" | cut -d' ' -f 5)
|
secure_boot_byte=$(hexdump -v -e '/1 "%d\ "' "$secure_boot_file" | cut -d' ' -f 5)
|
||||||
setup_mode_byte=$(hexdump -v -e '/1 "%d\ "' "$setup_mode_file" | cut -d' ' -f 5)
|
setup_mode_byte=$(hexdump -v -e '/1 "%d\ "' "$setup_mode_file" | cut -d' ' -f 5)
|
||||||
|
|
||||||
if [[ "$secure_boot_byte" = "1" ]] && [[ "$setup_mode_byte" = "0" ]]; then
|
if [[ $secure_boot_byte == "1" ]] && [[ $setup_mode_byte == "0" ]]; then
|
||||||
return 0
|
return 0
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
@ -589,22 +597,18 @@ prepare_kexec_args()
|
|||||||
local found_elf_args
|
local found_elf_args
|
||||||
|
|
||||||
ARCH=$(uname -m)
|
ARCH=$(uname -m)
|
||||||
if [[ "$ARCH" == "i686" ]] || [[ "$ARCH" == "i386" ]]
|
if [[ $ARCH == "i686" ]] || [[ $ARCH == "i386" ]]; then
|
||||||
then
|
|
||||||
need_64bit_headers
|
need_64bit_headers
|
||||||
if [[ $? == 1 ]]
|
if [[ $? == 1 ]]; then
|
||||||
then
|
|
||||||
found_elf_args=$(echo "$kexec_args" | grep elf32-core-headers)
|
found_elf_args=$(echo "$kexec_args" | grep elf32-core-headers)
|
||||||
if [[ -n "$found_elf_args" ]]
|
if [[ -n $found_elf_args ]]; then
|
||||||
then
|
|
||||||
dwarn "Warning: elf32-core-headers overrides correct elf64 setting"
|
dwarn "Warning: elf32-core-headers overrides correct elf64 setting"
|
||||||
else
|
else
|
||||||
kexec_args="$kexec_args --elf64-core-headers"
|
kexec_args="$kexec_args --elf64-core-headers"
|
||||||
fi
|
fi
|
||||||
else
|
else
|
||||||
found_elf_args=$(echo "$kexec_args" | grep elf64-core-headers)
|
found_elf_args=$(echo "$kexec_args" | grep elf64-core-headers)
|
||||||
if [[ -z "$found_elf_args" ]]
|
if [[ -z $found_elf_args ]]; then
|
||||||
then
|
|
||||||
kexec_args="$kexec_args --elf32-core-headers"
|
kexec_args="$kexec_args --elf32-core-headers"
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
@ -624,7 +628,7 @@ prepare_kdump_bootinfo()
|
|||||||
local boot_img boot_imglist boot_dirlist boot_initrdlist
|
local boot_img boot_imglist boot_dirlist boot_initrdlist
|
||||||
local machine_id
|
local machine_id
|
||||||
|
|
||||||
if [[ -z "$KDUMP_KERNELVER" ]]; then
|
if [[ -z $KDUMP_KERNELVER ]]; then
|
||||||
KDUMP_KERNELVER="$(uname -r)"
|
KDUMP_KERNELVER="$(uname -r)"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
@ -634,7 +638,7 @@ prepare_kdump_bootinfo()
|
|||||||
|
|
||||||
# Use BOOT_IMAGE as reference if possible, strip the GRUB root device prefix in (hd0,gpt1) format
|
# Use BOOT_IMAGE as reference if possible, strip the GRUB root device prefix in (hd0,gpt1) format
|
||||||
boot_img="$(sed "s/^BOOT_IMAGE=\((\S*)\)\?\(\S*\) .*/\2/" /proc/cmdline)"
|
boot_img="$(sed "s/^BOOT_IMAGE=\((\S*)\)\?\(\S*\) .*/\2/" /proc/cmdline)"
|
||||||
if [[ -n "$boot_img" ]]; then
|
if [[ -n $boot_img ]]; then
|
||||||
boot_imglist="$boot_img $boot_imglist"
|
boot_imglist="$boot_img $boot_imglist"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
@ -647,7 +651,7 @@ prepare_kdump_bootinfo()
|
|||||||
done
|
done
|
||||||
done
|
done
|
||||||
|
|
||||||
if ! [[ -e "$KDUMP_KERNEL" ]]; then
|
if ! [[ -e $KDUMP_KERNEL ]]; then
|
||||||
derror "Failed to detect kdump kernel location"
|
derror "Failed to detect kdump kernel location"
|
||||||
return 1
|
return 1
|
||||||
fi
|
fi
|
||||||
@ -668,7 +672,7 @@ prepare_kdump_bootinfo()
|
|||||||
# Create kdump initrd basename from default initrd basename
|
# Create kdump initrd basename from default initrd basename
|
||||||
# initramfs-5.7.9-200.fc32.x86_64.img => initramfs-5.7.9-200.fc32.x86_64kdump.img
|
# initramfs-5.7.9-200.fc32.x86_64.img => initramfs-5.7.9-200.fc32.x86_64kdump.img
|
||||||
# initrd => initrdkdump
|
# initrd => initrdkdump
|
||||||
if [[ -z "$defaut_initrd_base" ]]; then
|
if [[ -z $defaut_initrd_base ]]; then
|
||||||
kdump_initrd_base=initramfs-${KDUMP_KERNELVER}kdump.img
|
kdump_initrd_base=initramfs-${KDUMP_KERNELVER}kdump.img
|
||||||
elif [[ $defaut_initrd_base == *.* ]]; then
|
elif [[ $defaut_initrd_base == *.* ]]; then
|
||||||
kdump_initrd_base=${defaut_initrd_base%.*}kdump.${DEFAULT_INITRD##*.}
|
kdump_initrd_base=${defaut_initrd_base%.*}kdump.${DEFAULT_INITRD##*.}
|
||||||
@ -677,7 +681,7 @@ prepare_kdump_bootinfo()
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
# Place kdump initrd in $(/var/lib/kdump) if $(KDUMP_BOOTDIR) not writable
|
# Place kdump initrd in $(/var/lib/kdump) if $(KDUMP_BOOTDIR) not writable
|
||||||
if [[ ! -w "$KDUMP_BOOTDIR" ]];then
|
if [[ ! -w $KDUMP_BOOTDIR ]]; then
|
||||||
var_target_initrd_dir="/var/lib/kdump"
|
var_target_initrd_dir="/var/lib/kdump"
|
||||||
mkdir -p "$var_target_initrd_dir"
|
mkdir -p "$var_target_initrd_dir"
|
||||||
KDUMP_INITRD="$var_target_initrd_dir/$kdump_initrd_base"
|
KDUMP_INITRD="$var_target_initrd_dir/$kdump_initrd_base"
|
||||||
@ -713,7 +717,7 @@ prepare_cmdline()
|
|||||||
{
|
{
|
||||||
local cmdline id arg
|
local cmdline id arg
|
||||||
|
|
||||||
if [[ -z "$1" ]]; then
|
if [[ -z $1 ]]; then
|
||||||
cmdline=$(< /proc/cmdline)
|
cmdline=$(< /proc/cmdline)
|
||||||
else
|
else
|
||||||
cmdline="$1"
|
cmdline="$1"
|
||||||
@ -778,7 +782,7 @@ get_system_size()
|
|||||||
result="+$result"
|
result="+$result"
|
||||||
# replace '-' with '+0x' and '+' with '-0x'
|
# replace '-' with '+0x' and '+' with '-0x'
|
||||||
sum=$(echo "$result" | sed -e 's/-/K0x/g' -e 's/+/-0x/g' -e 's/K/+/g')
|
sum=$(echo "$result" | sed -e 's/-/K0x/g' -e 's/+/-0x/g' -e 's/K/+/g')
|
||||||
size=$(printf "%d\n" $(($sum)))
|
size=$(printf "%d\n" $((sum)))
|
||||||
size=$((size / 1024 / 1024 / 1024))
|
size=$((size / 1024 / 1024 / 1024))
|
||||||
|
|
||||||
echo "$size"
|
echo "$size"
|
||||||
@ -824,18 +828,18 @@ kdump_get_arch_recommend_size()
|
|||||||
return 1
|
return 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
[[ -z "$kernel" ]] && kernel=$(uname -r)
|
[[ -z $kernel ]] && kernel=$(uname -r)
|
||||||
ck_cmdline=$(cat "/usr/lib/modules/$kernel/crashkernel.default" 2> /dev/null)
|
ck_cmdline=$(cat "/usr/lib/modules/$kernel/crashkernel.default" 2> /dev/null)
|
||||||
|
|
||||||
if [[ -n "$ck_cmdline" ]]; then
|
if [[ -n $ck_cmdline ]]; then
|
||||||
ck_cmdline=${ck_cmdline#crashkernel=}
|
ck_cmdline=${ck_cmdline#crashkernel=}
|
||||||
else
|
else
|
||||||
arch=$(lscpu | grep Architecture | awk -F ":" '{ print $2 }' | tr '[:lower:]' '[:upper:]')
|
arch=$(lscpu | grep Architecture | awk -F ":" '{ print $2 }' | tr '[:lower:]' '[:upper:]')
|
||||||
if [[ "$arch" = "X86_64" ]] || [[ "$arch" = "S390X" ]]; then
|
if [[ $arch == "X86_64" ]] || [[ $arch == "S390X" ]]; then
|
||||||
ck_cmdline="1G-4G:160M,4G-64G:192M,64G-1T:256M,1T-:512M"
|
ck_cmdline="1G-4G:160M,4G-64G:192M,64G-1T:256M,1T-:512M"
|
||||||
elif [[ "$arch" = "AARCH64" ]]; then
|
elif [[ $arch == "AARCH64" ]]; then
|
||||||
ck_cmdline="2G-:448M"
|
ck_cmdline="2G-:448M"
|
||||||
elif [[ "$arch" = "PPC64LE" ]]; then
|
elif [[ $arch == "PPC64LE" ]]; then
|
||||||
if is_fadump_capable; then
|
if is_fadump_capable; then
|
||||||
ck_cmdline="4G-16G:768M,16G-64G:1G,64G-128G:2G,128G-1T:4G,1T-2T:6G,2T-4T:12G,4T-8T:20G,8T-16T:36G,16T-32T:64G,32T-64T:128G,64T-:180G"
|
ck_cmdline="4G-16G:768M,16G-64G:1G,64G-128G:2G,128G-1T:4G,1T-2T:6G,2T-4T:12G,4T-8T:20G,8T-16T:36G,16T-32T:64G,32T-64T:128G,64T-:180G"
|
||||||
else
|
else
|
||||||
@ -874,7 +878,8 @@ get_luks_crypt_dev()
|
|||||||
# Example:
|
# Example:
|
||||||
# $ get_maj_min /dev/sda2
|
# $ get_maj_min /dev/sda2
|
||||||
# 8:2
|
# 8:2
|
||||||
kdump_get_maj_min() {
|
kdump_get_maj_min()
|
||||||
|
{
|
||||||
local _majmin
|
local _majmin
|
||||||
_majmin="$(stat -L -c '%t:%T' "$1" 2> /dev/null)"
|
_majmin="$(stat -L -c '%t:%T' "$1" 2> /dev/null)"
|
||||||
printf "%s" "$((0x${_majmin%:*})):$((0x${_majmin#*:}))"
|
printf "%s" "$((0x${_majmin%:*})):$((0x${_majmin#*:}))"
|
||||||
@ -912,8 +917,7 @@ try_decompress()
|
|||||||
# "grep" that report the byte offset of the line instead of the pattern.
|
# "grep" that report the byte offset of the line instead of the pattern.
|
||||||
|
|
||||||
# Try to find the header ($1) and decompress from here
|
# Try to find the header ($1) and decompress from here
|
||||||
for pos in $(tr "$1\n$2" "\n$2=" < "$4" | grep -abo "^$2")
|
for pos in $(tr "$1\n$2" "\n$2=" < "$4" | grep -abo "^$2"); do
|
||||||
do
|
|
||||||
if ! type -P "$3" > /dev/null; then
|
if ! type -P "$3" > /dev/null; then
|
||||||
ddebug "Signiature detected but '$3' is missing, skip this decompressor"
|
ddebug "Signiature detected but '$3' is missing, skip this decompressor"
|
||||||
break
|
break
|
||||||
@ -943,12 +947,12 @@ get_kernel_size()
|
|||||||
check_vmlinux "$img" && get_vmlinux_size "$img" && return 0
|
check_vmlinux "$img" && get_vmlinux_size "$img" && return 0
|
||||||
|
|
||||||
# That didn't work, so retry after decompression.
|
# That didn't work, so retry after decompression.
|
||||||
try_decompress '\037\213\010' xy gunzip "$img" "$tmp" || \
|
try_decompress '\037\213\010' xy gunzip "$img" "$tmp" ||
|
||||||
try_decompress '\3757zXZ\000' abcde unxz "$img" "$tmp" || \
|
try_decompress '\3757zXZ\000' abcde unxz "$img" "$tmp" ||
|
||||||
try_decompress 'BZh' xy bunzip2 "$img" "$tmp" || \
|
try_decompress 'BZh' xy bunzip2 "$img" "$tmp" ||
|
||||||
try_decompress '\135\0\0\0' xxx unlzma "$img" "$tmp" || \
|
try_decompress '\135\0\0\0' xxx unlzma "$img" "$tmp" ||
|
||||||
try_decompress '\211\114\132' xy 'lzop -d' "$img" "$tmp" || \
|
try_decompress '\211\114\132' xy 'lzop -d' "$img" "$tmp" ||
|
||||||
try_decompress '\002!L\030' xxx 'lz4 -d' "$img" "$tmp" || \
|
try_decompress '\002!L\030' xxx 'lz4 -d' "$img" "$tmp" ||
|
||||||
try_decompress '(\265/\375' xxx unzstd "$img" "$tmp"
|
try_decompress '(\265/\375' xxx unzstd "$img" "$tmp"
|
||||||
|
|
||||||
# Finally check for uncompressed images or objects:
|
# Finally check for uncompressed images or objects:
|
||||||
|
Loading…
Reference in New Issue
Block a user