讲师中心 微信公众号
AI工具推荐 视频效率加速

如何在Linux中查看系统的内核崩溃日志 Linux分析kdump日志的方法

阿浩小哥_1921

阿浩小哥_1921

发布时间:2026-05-26 14:40:47

|

550人浏览过

|

来源于php中文网

原创

应使用dmesg -T | grep -A 20 -B 5 -E "(Kernel panic|Oops|BUG:|Call Trace:)"快速定位真正崩溃线索,-T加时间戳,-A 20取调用栈,-B 5抓前兆;系统重启后优先查/var/log/kern.log.1.gz,避免依赖不可靠的journalctl。

如何在linux中查看系统的内核崩溃日志 linux分析kdump日志的方法

怎么快速从 dmesg 里揪出真正的崩溃线索

dmesg 默认输出全是启动日志和驱动噪音,真正有用的只有带 Kernel panic、Oops、BUG: 或 Call Trace: 的几行。别翻最后几十行——最早那条才是源头,后面可能是 panic 触发的二次刷屏。

实操建议:

Obsidian (Linux)
Obsidian (Linux)

操作 Obsidian 库(纯 Markdown 笔记),并通过 notesmd-cli 实现自动化。

下载
  • 用 dmesg -T | grep -A 20 -B 5 -E "(Kernel panic|Oops|BUG:|Call Trace:)",-T 加时间戳,-A 20 向下取调用栈,-B 5 往上抓前兆(比如磁盘 I/O 超时、内存分配失败)
  • 系统已重启?/var/log/kern.log 可能被轮转,优先查 /var/log/kern.log.1.gz:zcat /var/log/kern.log.1.gz | grep -A 20 -B 5 "Kernel panic"
  • journalctl -k -b -1 不一定可靠——如果 rsyslog 没启用 imkmsg 模块,panic 瞬间日志根本没进 journal

为什么 vmcore 文件打不开或 crash 报错“cannot determine vmcore type”

vmcore 不是“有文件就代表有效”。它是一块原始内存镜像,类型必须是 ELF 格式,且依赖 crashkernel 预留内存充足、写入未被截断。

实操建议:

  • 先确认文件类型:file /var/crash/*/vmcore,输出必须含 ELF 64-bit LSB core file x86-64;若显示 data 或 empty,说明捕获失败
  • 检查 crashkernel 是否生效:grep crashkernel /proc/cmdline 必须有非空输出(如 crashkernel=128M@64M)
  • 运行 systemctl status kdump,确保状态是 active (running),且日志里没有 Failed to start Kdump Crash Kernel
  • crash 命令必须配对使用:crash /usr/lib/debug/lib/modules/$(uname -r)/vmlinux /var/crash/*/vmcore,路径错一个字符就会卡住或报错

crash 进去后 bt 命令没反应或堆栈全是问号,怎么办

bt(backtrace)输出一堆 ?? 或地址偏移,不是 crash 工具坏了,而是 vmlinux 文件没加载对,或者缺少调试符号。

实操建议:

  • 确认 vmlinux 路径是否匹配当前崩溃内核版本:uname -r 输出的版本号必须和 /usr/lib/debug/lib/modules/ 下目录名完全一致
  • RHEL/CentOS:安装 kernel-debuginfo-$(uname -r) 包;Ubuntu/Debian:安装 linux-image-$(uname -r)-dbgsym(需先配置 ddebs.ubuntu.com 源)
  • 用 crash --version 和 file /usr/lib/debug/lib/modules/$(uname -r)/vmlinux 验证 debuginfo 文件确实是 ELF + DWARF 符号格式
  • 如果 bt 卡住,试试 set log on 再 bt,看输出是否在某一行停住——常因某个模块 ko 文件缺失或版本不匹配导致解析中断

Call Trace 里哪些函数名该立刻盯住

调用栈不是从上往下读,而是从最底端(panic 或 __warn)往上推,找到第一个非通用内核函数的位置。这里藏着最可能的肇事模块。

实操建议:

  • 看到 [nvidia]、[zfs]、[wireguard] 这类方括号包着的模块名?90% 是它干的——尤其内核升级后没重编译 ko 文件
  • 连续出现 ext4_writepages、ext4_da_write_begin?查磁盘健康:smartctl -a /dev/sda,并确认挂载选项没滥用 data=journal
  • 全是 mm_* 开头(如 mm_page_alloc、try_to_unmap)?结合 dmesg -T | grep -i "ecc\|correctable\|uncorrectable" 查 ECC 内存报错
  • 出现 unknown symbol 或 invalid opcode?不是代码 bug,是模块和内核 ABI 不匹配,或 CPU 微码过旧(cpupower frequency-info + 查 BIOS 更新日志)
真实崩溃现场往往只剩一次机会:vmcore 文件一旦生成,它的完整性、符号匹配度、调用栈可读性,全取决于配置阶段是否漏掉一个参数、少装一个 debuginfo 包、或误判了 panic 前那行看似无关的 WARNING。

热门AI工具

更多
WorkBuddy

一款AI办公效率工具,主要用于腾讯云推出的AI原生桌面智能体工作台,适合需要提升相关任务效率的用户。

Seko
Seko Hot

一款AI视频创作工具,主要用于商汤科技推出的创编一体的AI短视频创作Agent,适合需要提升相关任务效率的用户。

UP简历
UP简历 Hot

一款AI办公效率工具,主要用于基于AI技术的免费在线简历制作工具,适合需要提升相关任务效率的用户。

Loomy
Loomy Hot

一款AI工具,主要用于科大讯飞发布的桌面级 AI 助理,比 OpenClaw 更易用、更安全!,适合需要提升相关任务效率的用户。

创客贴AI

创客贴AI是一款AI图像与设计工具,AI辅助的智能在线设计工具。

墨刀AI
墨刀AI Hot

一款AI图像与设计工具,主要用于产品经理的专属智能体,适合需要提升相关任务效率的用户。

豆包大模型

豆包大模型是一款由字节跳动推出的企业级大语言模型服务平台。

Lovart
Lovart Hot

一款面向视觉设计创作的AI设计平台,可通过智能体和画布工作流辅助制作海报、Logo、网页、PPT及其他视觉内容。

DeepSeek

DeepSeek是一款面向对话、写作、编程和推理场景的AI大模型工具。

相关专题

更多
磁盘配额是什么
磁盘配额是什么

磁盘配额是计算机中指定磁盘的储存限制,就是管理员可以为用户所能使用的磁盘空间进行配额限制,每一用户只能使用最大配额范围内的磁盘空间。php中文网为大家提供各种磁盘配额相关的内容,教程,供大家免费下载安装。

4230

2023.06.21

如何安装LINUX
如何安装LINUX

本站专题提供如何安装LINUX的相关教程文章,还有相关的下载、课程,大家可以免费体验。

3573

2023.06.29

linux find
linux find

find是linux命令,它将档案系统内符合 expression 的档案列出来。可以指要档案的名称、类别、时间、大小、权限等不同资讯的组合,只有完全相符的才会被列出来。find根据下列规则判断 path 和 expression,在命令列上第一个 - ( ) , ! 之前的部分为 path,之后的是 expression。还有指DOS 命令 find,Excel 函数 find等。本站专题提供linux find相关教程文章,还有相关

2813

2023.06.30

linux修改文件名
linux修改文件名

本专题为大家提供linux修改文件名相关的文章,这些文章可以帮助用户快速轻松地完成文件名的修改工作,大家可以免费体验。

6870

2023.07.05

linux系统安装教程
linux系统安装教程

linux系统是一种可以免费使用,自由传播,多用户、多任务、多线程、多CPU的操作系统。本专题提供linux系统安装教程相关的文章,大家可以免费体验。

6522

2023.07.06

linux查看文件夹大小
linux查看文件夹大小

Linux是一种自由和开放源码的类Unix操作系统,存在着许多不同的Linux版本,但它们都使用了Linux内核。Linux可安装在各种计算机硬件设备中,比如手机、平板电脑、路由器、视频游戏控制台、台式计算机、大型机和超级计算机。linux怎么查看文件夹大小呢?php中文网给大家带来了相关的教程以及文章,欢迎大家前来学习阅读。

3753

2023.07.20

linux查看ip命令
linux查看ip命令

本专题为大家提供linux查看ip命令相关文章内容,感兴趣的朋友可以免费下载体验试试。

3245

2023.07.20

linux查看cpu使用率
linux查看cpu使用率

在linux的系统维护中,可能需要经常查看cpu使用率,分析系统整体的运行情况。本专题为大家带来了linux查看cpu使用率的相关文章,感兴趣的朋友千万不要错过了。

3479

2023.07.25

Gradle插件开发入门教程
Gradle插件开发入门教程

本专题介绍Gradle插件开发的基本流程,涵盖插件类编写、自定义任务注册、扩展参数设计和插件应用方法,帮助你理解插件如何组织构建逻辑,减少多个项目之间的重复配置。

60

2026.10.22

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Python uv官方安装与入门文档
Python uv官方安装与入门文档

共0课时 | 0人学习

Buffalo框架快速入门指南
Buffalo框架快速入门指南

共0课时 | 0人学习

Valgrind支持平台说明
Valgrind支持平台说明

共0课时 | 0人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn