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.service
Copy 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_64
Copy 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.service
Copy 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.service
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 要禁用
kdump
服务:systemctl disable kdump.service
# systemctl disable kdump.service
Copy 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
。