Linux kdump 命令
在 CentOS 7 中部署和配置 kdump
(内核转储)功能可以帮助捕获系统崩溃时的内核转储数据,从而进行调试和问题分析。以下是详细步骤:
1. 安装和启用 kdump
1.1 安装 kdump
和 crash
确保系统已安装 kdump
和 crash
工具。
sudo yum install -y kexec-tools crash
1.2 启用 kdump
确保 kdump
服务已启动并设置为开机自启动:
sudo systemctl enable kdump
sudo systemctl start kdump
2. 配置 kdump
2.1 修改内存保留设置
编辑 /etc/default/grub
文件,添加或修改 crashkernel
参数以预留内存用于捕获转储。例如:
GRUB_CMDLINE_LINUX="... crashkernel=auto ..."
如果内存不足,可以手动设置:
- 内存小于 2GB :设置
crashkernel=128M
- 内存介于 2GB 和 8GB 之间 :设置
crashkernel=256M
- 内存大于 8GB :设置
crashkernel=512M
或更多
保存后,更新 GRUB 配置:
sudo grub2-mkconfig -o /boot/grub2/grub.cfg
如果是 UEFI 系统,请运行:
sudo grub2-mkconfig -o /boot/efi/EFI/centos/grub.cfg
重启系统以应用更改:
sudo reboot
2.2 验证内存保留
重启后,检查是否成功预留内存:
dmesg | grep -i crashkernel
输出类似以下信息表示成功:
[ 0.000000] Reserving X MB of memory at 0X for crashkernel
3. 配置转储存储路径
默认情况下,转储文件会存储在 /var/crash
目录。如果需要更改路径,请编辑 /etc/kdump.conf
文件:
path /your/custom/path
可选配置:
- 保存为压缩文件:
core_collector makedumpfile -c --message-level 1 -d 31
- 通过网络保存转储:
nfs server:/path/to/save
4. 测试 kdump 功能
4.1 手动触发系统崩溃
警告:以下操作会导致系统立即崩溃!请在测试环境中进行操作。
启用 sysrq
功能:
echo 1 > /proc/sys/kernel/sysrq
触发崩溃:
echo c > /proc/sysrq-trigger
4.2 检查转储文件
系统重新启动后,检查转储文件是否生成(默认路径 /var/crash
):
ls /var/crash
使用 crash
工具分析生成的转储文件:
sudo crash /usr/lib/debug/lib/modules/$(uname -r)/vmlinux /var/crash/.../vmcore
5. 常见问题排查
- 如果内核转储未生成:
- 确认
crashkernel
参数正确。 - 检查
/etc/kdump.conf
是否正确配置。 - 查看
journalctl -xe
获取更多信息。
- 确认
- 如果系统内存不足,请减少
crashkernel
的内存预留量。
通过上述步骤即可成功部署 kdump
并捕获系统崩溃时的内核转储。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

上一篇: Linux lsblk 命令
下一篇: Linux jbd2 命令
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论