41.3. 启用 kdump
对于 Red Hat Enterprise Linux 8 系统,您可以在特定内核或所有安装的内核中配置或者禁用 kdump
功能。但是,您必须定期测试 kdump
功能并验证其工作状态。
41.3.1. 为所有安装的内核启用 kdump
在 kexec
工具安装后,kdump
服务通过启用 kdump.service
启动。您可以为在机器上安装的所有内核启用并启动 kdump
服务。
先决条件
- 有管理员特权。
流程
将
crashkernel=
命令行参数添加到所有安装的内核:# grubby --update-kernel=ALL --args="crashkernel=xxM"
xxM
是所需的内存(以 MB 为单位)。启用
kdump
服务:# systemctl enable --now kdump.service
验证
检查
kdump
服务是否正在运行:# 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)
41.3.2. 为特定安装的内核启用 kdump
您可以为机器上的特定内核启用 kdump
服务。
先决条件
- 有管理员特权。
流程
列出安装在机器上的内核。
# 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_64
向系统的 Grand Unified Bootloader (GRUB)配置中添加特定的
kdump
内核。例如:
# grubby --update-kernel=vmlinuz-4.18.0-330.el8.x86_64 --args="crashkernel=xxM"
xxM
是所需的内存保留(以 MB 为单位)。启用
kdump
服务。# systemctl enable --now kdump.service
验证
检查
kdump
服务是否正在运行。# 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)
41.3.3. 禁用 kdump 服务
您可以停止 kdump.service
,并禁止在 Red Hat Enterprise Linux 8 系统中启动该服务。
先决条件
-
满足
kdump
配置和目标的要求。详情请查看支持的 kdump 配置和目标。 -
安装
kdump
的所有配置都是根据您的需要设置的。详情请参阅 安装 kdump。
流程
要在当前会话中停止
kdump
服务:# systemctl stop kdump.service
要禁用
kdump
服务:# systemctl disable kdump.service
建议将 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
。
其它资源