41.3. 启用 kdump
对于 RHEL 8 系统,您可以在特定内核或所有安装的内核中配置或者禁用 kdump 功能。但是,您必须定期测试 kdump 功能,并验证其工作状态。
41.3.1. 为所有安装的内核启用 kdump 复制链接链接已复制到粘贴板!
在 kexec 工具安装后,kdump 服务通过启用 kdump.service 启动。您可以为在机器上安装的所有内核启用并启动 kdump 服务。
先决条件
- 有管理员特权。
流程
将
crashkernel=命令行参数添加到所有安装的内核中:grubby --update-kernel=ALL --args="crashkernel=xxM"
# grubby --update-kernel=ALL --args="crashkernel=xxM"Copy to Clipboard Copied! Toggle word wrap Toggle overflow xxM是所需的内存(以 MB 为单位)。启用
kdump服务:systemctl enable --now kdump.service
# systemctl enable --now kdump.serviceCopy to Clipboard Copied! Toggle word wrap Toggle overflow
验证
检查
kdump服务是否正在运行:systemctl status kdump.service
# systemctl status kdump.service ○ kdump.service - Crash recovery kernel arming Loaded: loaded (/usr/lib/systemd/system/kdump.service; enabled; vendor preset: disabled) Active: active (live)Copy to Clipboard Copied! Toggle word wrap Toggle overflow
41.3.2. 为特定安装的内核启用 kdump 复制链接链接已复制到粘贴板!
您可以为机器上的特定内核启用 kdump 服务。
先决条件
- 有管理员特权。
流程
列出安装在机器上的内核。
ls -a /boot/vmlinuz-*
# ls -a /boot/vmlinuz-* /boot/vmlinuz-0-rescue-2930657cd0dc43c2b75db480e5e5b4a9 /boot/vmlinuz-4.18.0-330.el8.x86_64 /boot/vmlinuz-4.18.0-330.rt7.111.el8.x86_64Copy to Clipboard Copied! Toggle word wrap Toggle overflow 向系统的 Grand Unified Bootloader (GRUB)配置中添加特定的
kdump内核。例如:
grubby --update-kernel=vmlinuz-4.18.0-330.el8.x86_64 --args="crashkernel=xxM"
# grubby --update-kernel=vmlinuz-4.18.0-330.el8.x86_64 --args="crashkernel=xxM"Copy to Clipboard Copied! Toggle word wrap Toggle overflow xxM是所需的内存保留(以 MB 为单位)。启用
kdump服务。systemctl enable --now kdump.service
# systemctl enable --now kdump.serviceCopy to Clipboard Copied! Toggle word wrap Toggle overflow
验证
检查
kdump服务是否正在运行。systemctl status kdump.service
# systemctl status kdump.service ○ kdump.service - Crash recovery kernel arming Loaded: loaded (/usr/lib/systemd/system/kdump.service; enabled; vendor preset: disabled) Active: active (live)Copy to Clipboard Copied! Toggle word wrap Toggle overflow
41.3.3. 禁用 kdump 服务 复制链接链接已复制到粘贴板!
您可以停止 kdump.service ,并在 RHEL 8 系统上禁用该服务。
先决条件
-
满足
kdump配置和目标的要求。详情请查看支持的 kdump 配置和目标。 -
安装
kdump的所有配置都是根据您的需要设置的。详情请参阅 安装 kdump。
流程
要在当前会话中停止
kdump服务:systemctl stop kdump.service
# systemctl stop kdump.serviceCopy to Clipboard Copied! Toggle word wrap Toggle overflow 要禁用
kdump服务:systemctl disable kdump.service
# systemctl disable kdump.serviceCopy to Clipboard Copied! Toggle word wrap Toggle overflow
建议将 kptr_restrict=1 设置为默认值。当将 kptr_restrict 设置为(1)作为默认值时,kdumpctl 服务会加载崩溃内核,而无论是否启用了内核地址空间布局(KASLR)。
如果 kptr_restrict 没有设置为 1,且 KASLR 被启用了,则 /proc/kore 文件的内容被生成为全零。kdumpctl 服务无法访问 /proc/kcore 文件,并加载崩溃内核。kexec-kdump-howto.txt 文件显示一条警告信息,建议您设置 kptr_restrict=1。验证 sysctl.conf 文件中的以下内容,以确保 kdumpctl 服务加载崩溃内核:
-
sysctl.conf文件中的内核kptr_restrict=1。