mkdumprd: omit crypt when there is no crypt kdump target
Resolves: bz1451717 https://bugzilla.redhat.com/1451717 When there is no crypt related kdump target, we can safely omit "crypt" dracut module, this can avoid the pop asking disk password during kdump boot in some cases. This patch introduces omit_dracut_modules() before calling dracut, we can omit more modules to reduce initrd size in the future. We don't want to omit any module for fadump, thus we move is_fadump_capable() into kdump-lib.sh as a helper to use. Signed-off-by: Xunlei Pang <xlpang@redhat.com> Acked-by: Dave Young <dyoung@redhat.com>
This commit is contained in:
parent
cb38b32dfc
commit
54a5bcc4ee
12
kdump-lib.sh
12
kdump-lib.sh
@ -6,6 +6,7 @@
|
||||
DEFAULT_PATH="/var/crash/"
|
||||
FENCE_KDUMP_CONFIG_FILE="/etc/sysconfig/fence_kdump"
|
||||
FENCE_KDUMP_SEND="/usr/libexec/fence_kdump_send"
|
||||
FADUMP_ENABLED_SYS_NODE="/sys/kernel/fadump_enabled"
|
||||
|
||||
perror_exit() {
|
||||
echo $@ >&2
|
||||
@ -481,3 +482,14 @@ get_dracut_args_target()
|
||||
{
|
||||
echo $1 | grep "\-\-mount" | sed "s/.*--mount .\(.*\)/\1/" | cut -d' ' -f1
|
||||
}
|
||||
|
||||
is_fadump_capable()
|
||||
{
|
||||
# Check if firmware-assisted dump is enabled
|
||||
# if no, fallback to kdump check
|
||||
if [ -f $FADUMP_ENABLED_SYS_NODE ]; then
|
||||
rc=`cat $FADUMP_ENABLED_SYS_NODE`
|
||||
[ $rc -eq 1 ] && return 0
|
||||
fi
|
||||
return 1
|
||||
}
|
||||
|
12
kdumpctl
12
kdumpctl
@ -13,7 +13,6 @@ DUMP_TARGET=""
|
||||
DEFAULT_INITRD=""
|
||||
DEFAULT_INITRD_BAK=""
|
||||
TARGET_INITRD=""
|
||||
FADUMP_ENABLED_SYS_NODE="/sys/kernel/fadump_enabled"
|
||||
FADUMP_REGISTER_SYS_NODE="/sys/kernel/fadump_registered"
|
||||
#kdump shall be the default dump mode
|
||||
DEFAULT_DUMP_MODE="kdump"
|
||||
@ -936,17 +935,6 @@ handle_mode_switch()
|
||||
fi
|
||||
}
|
||||
|
||||
is_fadump_capable()
|
||||
{
|
||||
# Check if firmware-assisted dump is enabled
|
||||
# if no, fallback to kdump check
|
||||
if [ -f $FADUMP_ENABLED_SYS_NODE ]; then
|
||||
rc=`cat $FADUMP_ENABLED_SYS_NODE`
|
||||
[ $rc -eq 1 ] && return 0
|
||||
fi
|
||||
return 1
|
||||
}
|
||||
|
||||
check_current_fadump_status()
|
||||
{
|
||||
# Check if firmware-assisted dump has been registered.
|
||||
|
15
mkdumprd
15
mkdumprd
@ -372,11 +372,24 @@ check_crypt()
|
||||
return 1
|
||||
}
|
||||
|
||||
crypt_exists=0
|
||||
omit_dracut_modules()
|
||||
{
|
||||
# Skip fadump case
|
||||
is_fadump_capable && return
|
||||
|
||||
# Omit "crypt", BZ1451717
|
||||
if [ "$crypt_exists" == "0" ]; then
|
||||
add_dracut_arg "--omit" "crypt"
|
||||
fi
|
||||
}
|
||||
|
||||
if ! check_resettable; then
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if ! check_crypt; then
|
||||
crypt_exists=1
|
||||
echo "Warning: Encrypted device is in dump path. User will prompted for password during second kernel boot."
|
||||
fi
|
||||
|
||||
@ -461,6 +474,8 @@ then
|
||||
add_dracut_arg "--add-drivers" "$extra_modules"
|
||||
fi
|
||||
|
||||
omit_dracut_modules
|
||||
|
||||
dracut "${dracut_args[@]}" "$@"
|
||||
_rc=$?
|
||||
sync
|
||||
|
Loading…
Reference in New Issue
Block a user