kdump-lib: Introduce parse_kver_from_path() to get kernel version from its path name
kdump_get_arch_recommend_crashkernel() expects the kernel version info, while _update_kernel() provides the absolute path, which contains the kernel version info. This patch introduce a dedicated function parse_kver_from_path() to extract the kernel info from the path Credit to Philipp, who contributes the original code. Signed-off-by: Pingfan Liu <piliu@redhat.com> Reviewed-by: Coiby Xu <coxu@redhat.com> Reviewed-by: Philipp Rudo <prudo@redhat.com>
This commit is contained in:
parent
51efbcf83e
commit
d8b961be37
43
kdump-lib.sh
43
kdump-lib.sh
@ -526,6 +526,49 @@ prepare_kdump_kernel()
|
||||
echo "$kdump_kernel"
|
||||
}
|
||||
|
||||
_is_valid_kver()
|
||||
{
|
||||
[[ -f /usr/lib/modules/$1/modules.dep ]]
|
||||
}
|
||||
|
||||
# This function is introduced since 64k variant may be installed on 4k or vice versa
|
||||
# $1 the kernel path name.
|
||||
parse_kver_from_path()
|
||||
{
|
||||
local _img _kver
|
||||
|
||||
[[ -z "$1" ]] && return
|
||||
|
||||
_img=$1
|
||||
BLS_ENTRY_TOKEN=$(</etc/machine-id)
|
||||
|
||||
# Fedora standard installation, i.e. $BOOT/vmlinuz-<version>
|
||||
_kver=${_img##*/vmlinuz-}
|
||||
_kver=${_kver%"$KDUMP_IMG_EXT"}
|
||||
if _is_valid_kver "$_kver"; then
|
||||
echo "$_kver"
|
||||
return
|
||||
fi
|
||||
|
||||
# BLS recommended image names, i.e. $BOOT/<token>/<version>/linux
|
||||
_kver=${_img##*/"$BLS_ENTRY_TOKEN"/}
|
||||
_kver=${_kver%%/*}
|
||||
if _is_valid_kver "$_kver"; then
|
||||
echo "$_kver"
|
||||
return
|
||||
fi
|
||||
|
||||
# Fedora UKI installation, i.e. $BOOT/efi/EFI/Linux/<token>-<version>.efi
|
||||
_kver=${_img##*/"$BLS_ENTRY_TOKEN"-}
|
||||
_kver=${_kver%.efi}
|
||||
if _is_valid_kver "$_kver"; then
|
||||
echo "$_kver"
|
||||
return
|
||||
fi
|
||||
|
||||
ddebug "Could not parse version from $_img"
|
||||
}
|
||||
|
||||
_get_kdump_kernel_version()
|
||||
{
|
||||
local _version _version_nondebug
|
||||
|
Loading…
Reference in New Issue
Block a user