Linux kdump 命令

发布于 2025-02-16 21:44:19 字数 2881 浏览 6 评论 0

在 CentOS 7 中部署和配置 kdump (内核转储)功能可以帮助捕获系统崩溃时的内核转储数据,从而进行调试和问题分析。以下是详细步骤:

1. 安装和启用 kdump

1.1 安装 kdumpcrash

确保系统已安装 kdumpcrash 工具。

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. 常见问题排查

  • 如果内核转储未生成:
    1. 确认 crashkernel 参数正确。
    2. 检查 /etc/kdump.conf 是否正确配置。
    3. 查看 journalctl -xe 获取更多信息。
  • 如果系统内存不足,请减少 crashkernel 的内存预留量。

通过上述步骤即可成功部署 kdump 并捕获系统崩溃时的内核转储。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

上一篇:

下一篇:

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据

关于作者

心凉

暂无简介

文章
评论
27 人气
更多

推荐作者

夢野间

文章 0 评论 0

百度③文鱼

文章 0 评论 0

小草泠泠

文章 0 评论 0

zhuwenyan

文章 0 评论 0

weirdo

文章 0 评论 0

坚持沉默

文章 0 评论 0

    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文