0

0

Linux 内核 panic 分析与应急处理

舞夢輝影

舞夢輝影

发布时间:2026-02-20 15:23:57

|

393人浏览过

|

来源于php中文网

原创

内核panic表明linux遭遇不可恢复错误,需通过串口/kdump捕获日志、启用kdump服务、测试crash触发、用crash工具解析vmcore、黑名单禁用问题模块来分析处理。

linux 内核 panic 分析与应急处理

当 Linux 系统运行过程中触发内核 panic,表明内核已遭遇无法恢复的严重错误,系统将主动中止所有操作并停止响应。以下是针对该异常状态的分析路径与应急处理步骤:

一、确认 panic 日志来源

内核 panic 发生时,关键错误信息通常输出至控制台或暂存于内存缓冲区,需在系统重启前尽可能捕获原始日志。若系统仍可访问串口或带外管理接口(如 iDRAC、iLO),应优先通过该通道获取完整堆栈。

1、若系统处于 panic 状态但未自动重启,立即切换至虚拟控制台(Ctrl+Alt+F2 至 F6)尝试查看是否仍有可读输出。

2、检查是否启用了 kdump 机制:执行 ls /var/crash/ 查看是否存在以时间戳命名的转储目录。

3、若使用 systemd,重启后执行 journalctl -b -1 | grep -i "panic\|oops\|fatal" 提取上一次启动的日志片段。

二、启用并验证 kdump 服务

kdump 是 Linux 内核提供的崩溃转储机制,它在预留内存中运行一个独立的捕获内核,用于保存 panic 时刻的内存镜像(vmcore),是后续分析的根本依据。

1、确认当前内核是否支持 kdump:执行 zcat /proc/config.gz | grep CONFIG_CRASH_DUMP 或检查 /boot/config-$(uname -r) 中 CONFIG_CRASH_DUMP=y。

2、安装 kdump 工具集:在 RHEL/CentOS 上运行 yum install kexec-tools;在 Debian/Ubuntu 上运行 apt install linux-crashdump

3、编辑 /etc/kdump.conf,确保 path /var/crashcore_collector makedumpfile -c --message-level 1 -d 31 已配置。

4、启用并启动服务:执行 systemctl enable kdump && systemctl start kdump,随后验证状态为 active:systemctl status kdump

三、手动触发 crash 测试 kdump 可用性

在受控环境中验证 kdump 是否正常工作,可避免真实 panic 时因配置失效导致无转储可用。该操作仅限测试环境执行,生产系统严禁运行。

1、确认 sysrq 已启用:检查 /proc/sys/kernel/sysrq 值为 1。

Cognitive Mill
Cognitive Mill

一个云计算平台,可以分析视频并自动生成预告片

下载

2、向内核发送 crash 指令:执行 echo c > /proc/sysrq-trigger,系统将立即触发 panic 并由 kdump 捕获 vmcore。

3、重启后检查 /var/crash/ 下是否生成新目录,且其中包含 vmcorevmcore-dmesg.txt 文件。

四、使用 crash 工具解析 vmcore

crash 工具是分析 vmcore 文件的核心命令行程序,需匹配目标内核版本的调试符号包(debuginfo)才能完成函数级堆栈还原与内存结构遍历。

1、安装对应内核的 debuginfo 包:RHEL/CentOS 执行 debuginfo-install kernel-$(uname -r);Ubuntu 需手动下载 linux-image-$(uname -r)-dbgsym 包。

2、加载 vmcore 与 vmlinux:执行 crash /usr/lib/debug/lib/modules/$(uname -r)/vmlinux /var/crash/$(date +%Y-%m-%d-%H:%M)/vmcore

3、在 crash 交互界面中输入 bt -a 获取所有 CPU 的回溯信息,重点关注标记为 PANIC 的线程及首次出现的错误函数调用链。

4、使用 log 命令打印内核环形缓冲区内容,定位 panic 前最后几条警告或错误消息。

五、禁用 problematic 内核模块临时规避

若多次 panic 均指向同一驱动模块(如从 bt 输出中观察到 consistently in module xxx),可在启动阶段阻止其加载,实现快速业务恢复。

1、编辑 GRUB 配置文件 /etc/default/grub,在 GRUB_CMDLINE_LINUX 行末添加 modprobe.blacklist=xxx(xxx 替换为模块名)。

2、重新生成 GRUB 配置:RHEL/CentOS 执行 grub2-mkconfig -o /boot/grub2/grub.cfg;Ubuntu 执行 update-grub

3、重启系统后验证模块未加载:lsmod | grep xxx 应无输出,且 dmesg | grep -i xxx 不再显示初始化失败记录。

热门AI工具

更多
DeepSeek
DeepSeek

幻方量化公司旗下的开源大模型平台

豆包大模型
豆包大模型

字节跳动自主研发的一系列大型语言模型

通义千问
通义千问

阿里巴巴推出的全能AI助手

腾讯元宝
腾讯元宝

腾讯混元平台推出的AI助手

文心一言
文心一言

文心一言是百度开发的AI聊天机器人,通过对话可以生成各种形式的内容。

讯飞写作
讯飞写作

基于讯飞星火大模型的AI写作工具,可以快速生成新闻稿件、品宣文案、工作总结、心得体会等各种文文稿

即梦AI
即梦AI

一站式AI创作平台,免费AI图片和视频生成。

ChatGPT
ChatGPT

最最强大的AI聊天机器人程序,ChatGPT不单是聊天机器人,还能进行撰写邮件、视频脚本、文案、翻译、代码等任务。

相关专题

更多
硬盘接口类型介绍
硬盘接口类型介绍

硬盘接口类型有IDE、SATA、SCSI、Fibre Channel、USB、eSATA、mSATA、PCIe等等。详细介绍:1、IDE接口是一种并行接口,主要用于连接硬盘和光驱等设备,它主要有两种类型:ATA和ATAPI,IDE接口已经逐渐被SATA接口;2、SATA接口是一种串行接口,相较于IDE接口,它具有更高的传输速度、更低的功耗和更小的体积;3、SCSI接口等等。

1536

2023.10.19

PHP接口编写教程
PHP接口编写教程

本专题整合了PHP接口编写教程,阅读专题下面的文章了解更多详细内容。

423

2025.10.17

php8.4实现接口限流的教程
php8.4实现接口限流的教程

PHP8.4本身不内置限流功能,需借助Redis(令牌桶)或Swoole(漏桶)实现;文件锁因I/O瓶颈、无跨机共享、秒级精度等缺陷不适用高并发场景。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

2261

2025.12.29

java接口相关教程
java接口相关教程

本专题整合了java接口相关内容,阅读专题下面的文章了解更多详细内容。

37

2026.01.19

堆和栈的区别
堆和栈的区别

堆和栈的区别:1、内存分配方式不同;2、大小不同;3、数据访问方式不同;4、数据的生命周期。本专题为大家提供堆和栈的区别的相关的文章、下载、课程内容,供大家免费下载体验。

420

2023.07.18

堆和栈区别
堆和栈区别

堆(Heap)和栈(Stack)是计算机中两种常见的内存分配机制。它们在内存管理的方式、分配方式以及使用场景上有很大的区别。本文将详细介绍堆和栈的特点、区别以及各自的使用场景。php中文网给大家带来了相关的教程以及文章欢迎大家前来学习阅读。

594

2023.08.10

堆和栈的区别
堆和栈的区别

堆和栈的区别:1、内存分配方式不同;2、大小不同;3、数据访问方式不同;4、数据的生命周期。本专题为大家提供堆和栈的区别的相关的文章、下载、课程内容,供大家免费下载体验。

420

2023.07.18

堆和栈区别
堆和栈区别

堆(Heap)和栈(Stack)是计算机中两种常见的内存分配机制。它们在内存管理的方式、分配方式以及使用场景上有很大的区别。本文将详细介绍堆和栈的特点、区别以及各自的使用场景。php中文网给大家带来了相关的教程以及文章欢迎大家前来学习阅读。

594

2023.08.10

pixiv网页版官网登录与阅读指南_pixiv官网直达入口与在线访问方法
pixiv网页版官网登录与阅读指南_pixiv官网直达入口与在线访问方法

本专题系统整理pixiv网页版官网入口及登录访问方式,涵盖官网登录页面直达路径、在线阅读入口及快速进入方法说明,帮助用户高效找到pixiv官方网站,实现便捷、安全的网页端浏览与账号登录体验。

776

2026.02.13

热门下载

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

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
PostgreSQL 教程
PostgreSQL 教程

共48课时 | 9.4万人学习

Git 教程
Git 教程

共21课时 | 3.7万人学习

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

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号