Linux Lernel Panic 报错解决思路
Linux Kernel Panic 报错解决思路
panic()
) are generally designed to output an error message to the console, dump an p_w_picpath of kernel memory to disk for post-mortemdebugging and then either wait for the system to be manually rebooted, or initiate an automatic reboot. The information provided is of highly technical nature and aims to assist a system administrator or software developer in diagnosing the problem.
panic()
function was essentially unchanged from Fifth Edition UNIX to the VAX-based UNIX 32V and output only an error message with no other information, then dropped the system into an endless idle loop. As the Unixcodebase was enhanced, the panic()
function was also enhanced to dump various forms of debugging information to the console.
2.soft panic (也就是Oops信息输出)
kernel panic – not syncing: Attempted to kill the idle task!
kernel panic – not syncing: killing interrupt handler!
Kernel Panic – not syncing:Attempted to kill init !
除此之外,内建在内核里的组件(比如memory map等)也能导致panic。
- 机器彻底被锁定,不能使用
- 数字键(Num Lock),大写锁定键(Caps Lock),滚动锁定键(Scroll Lock)不停闪烁。
- 如果在终端下,应该可以看到内核dump出来的信息(包括一段”Aieee”信息或者”Oops”信息)
- 和Windows蓝屏相似
根据panic的状态不同,内核将记录所有在系统锁定之前的信息。因为kenrel panic是一种很严重的错误,不能确定系统能记录多少信息,下面是一些需要收集的关键信息,他们非常重要,因此尽可能收集全,当然如果系统启动的时候就kernel panic,那就无法只知道能收集到多少有用的信息了。
- /var/log/messages: 幸运的时候,整个kernel panic栈跟踪信息都能记录在这里。
- 应用程序/库 日志: 可能可以从这些日志信息里能看到发生panic之前发生了什么。
- 其他发生panic之前的信息,或者知道如何重现panic那一刻的状态
- 终端屏幕dump信息,一般OS被锁定后,复制,粘贴肯定是没戏了,因此这类信息,你可以需要借助数码相机或者原始的纸笔工具了。
- 如果在图形界面,切换到终端界面,dump信息是不会出现在图形界面的,甚至都不会在图形模式下的虚拟终端里。
- 确保屏幕不黑屏,可以使用下面的几个方法:
- setterm -blank 0
- setterm -powerdown 0
- setvesablank off
- 从终端,拷贝屏幕信息(方法见上)
KDB编译到内核里,panic发生时,他将内核引导到一个shell环境而不是锁定。这样,我们就可以收集一些与panic相关的信息了,这对我们定位问题的根本原因有很大的帮助。
- 没有hard panic严重
- 通常导致段错误(segmentation fault)
- 可以看到一个oops信息,/var/log/messages里可以搜索到’Oops’
- 机器稍微还能用(但是收集信息后,应该重启系统)
当soft panic发生时,内核将产生一个包含内核符号(kernel symbols)信息的dump数据,这个将记录在/var/log/messages里。为了开始排查故障,可以使用ksymoops工具来把内核符号信息转成有意义的数据。
- 从/var/log/messages里找到的堆栈跟踪文本信息保存为一个新文件。确保删除了时间戳(timestamp),否则ksymoops会失败。
- 运行ksymoops程序(如果没有,请安装)
- 详细的ksymoops执行用法,可以参考ksymoops(8)手册。
kernel.sysrq=1 #激活Magic SysRq 否则,键盘鼠标没有响应
e – 发送SIGTERM给init之外的系统进程
o – 关机
s – sync同步所有的文件系统
u – 试图重新挂载文件系统
另外出现“Kernel Panic — not syncing: attempted to kill init”和“Kernel Panic — not syncing: attempted to kill idle task”有时把内存互相换下位置或重新插拔下可以解决问题。
转载于:https://blog.51cto.com/hepeace/1033079
Linux Lernel Panic 报错解决思路相关推荐
- Linux Kernel Panic报错解决思路
Linux虽然没有蓝屏现象,不过Kernel报错有时也会让人头疼.有时重启后正常,linux系统运行一段时间后又down了,总不能出现问题就reboot啊.我从网上搜集一下资料,整理了出来,希望大家能 ...
- firefly AIO-RK3399J Linux SDK编译报错解决
Firefly AIO-RK3399J Linux SDK编译报错解决 Zhang-Zhen 2020-09-30 22:01:04 收藏 分类专栏: RK3399工作记录 文章标签: linux ...
- Linux/ubuntu:Chrome报错解决: error while loading shared libraries: libnss3.so libXss.so.1 libasound.so.
下午在用nodejs在linux上操作puppeteer/chromium/chrome时报错如下: -> # node search.js count is 1 (node:15360) Un ...
- 混合血与泪的经验:Linux下vim---E325报错解决方法
一.问题描述 有时候vim进入之前意外退出的文件时会出现如下报错: 二.如何解决 退出vim,返回当前目录. 在当前目录下rm -f 将下图中的框住的文件删掉,我这里要删的文件是**.mycode.c ...
- get_headers()请求https报错解决思路
场景:项目中客户端上传文件到OSS后,返回给服务端一个OSS的文件对象名称. 服务端拿到文件对象名称后,需要通过OSSClient生成一个签名url,然后提供下载服务. 下载服务中,拿到URL后要去校 ...
- Intellij IDEA中push代码到github中引发的部分报错 解决思路
一.Intellij IDEA中push代码到Github上时报错:OpenSSL SSL_read: Connection was reset, errno 10054 百度参考了这篇文章: 参考文 ...
- 遇到mysqladmin flush-hosts报错解决思路
背景 今天早上遇到有Hue用户登录不上,查看集群状态服务有问题. 查看报错日志如下,应该是对应的用户报错链接太多了,导致报错.而我们这边的用户都是运维通过一个nginx中转过来的,所以都是同一个ip地 ...
- Linux/Debian/Ubuntu报错解决:W: Target Packages (main/binary-amd64/Packages) is configured multiple times
此文首发于我的Jekyll博客:zhang0peter的个人博客 今天在ubuntu上更新库(apt update)的时候遇到了报错: -> # apt update Hit:1 http:// ...
- 使用addr2line 定位 FORTIFY: vsprintf: prevented write past end of buffer‘ 报错解决思路
一.前言 C/C++平时用的不多,写段代码就错误百出,最近写了一段文件读取的.运行的时候直接so挂掉了.网上百度了一下 FORTIFY: vsprintf: prevented write past ...
最新文章
- 谈一谈浏览器解析CSS选择器的过程【前端每日一题-6】
- django权限系统实现步骤_Django权限机制的实现
- C:简单的学生信息处理程序实现
- 对于Dubbo一些自己的答案
- LINUX IRC使用
- python就业班 miniweb框架_mini-web框架
- 服务器上Oracle System如何修改system用户密码
- delphi如何获得select得到的信息_如何建立闭环的笔记体系
- php实现微信小程序人脸识别登录
- android音频框架
- Altium designer学习(二)pcb库不求人——立创商城导出封装库
- 重点人员动态管控系统开发方案,情指勤一体化平台建设
- 深圳神州行今日起单向收费 零月租成套餐亮点
- C++ 面向对象高级开发(侯捷)
- 阿里巴巴云连接池durid数据库密码加密
- iOS 自动生成各种尺寸的App Icon 和 Launch Image( App Icon Gear)
- 【云宏大讲坛】超融合,融合的不仅是基础架构
- 去雾模块dehaze.py(可直接调用)
- HEVC代码学习35:xEncodeCU函数
- 2021-04-24
热门文章
- spring中lazy-init详解
- 二维码 | 如何实现一码多用
- mysql 代替intersect_MySQL不支持INTERSECT和MINUS及其替代方法_MySQL
- pythonsqlite3教程_使用 Python 在线操作 sqlite3
- hdu4421 2-sat(枚举二进制每一位)
- 【数字信号处理】离散时间信号 ( 离散时间信号知识点 | 信号定义 | 信号分类 | 根据确定性分类 | 根据周期性分类 | 根据离散型分类 )
- 【Groovy】闭包 Closure ( 闭包作为函数参数 | 代码示例 )
- 【Android Protobuf 序列化】Protobuf 使用 ( Protobuf 源码分析 | 创建 Protobuf 对象 )
- 【计算理论】自动机设计 ( 设计自动机 | 确定性自动机设计示例 | 确定性与非确定性 | 自动机中的不确定性 )
- 【数据挖掘】神经网络 后向传播算法 向前传播输入 案例计算分析 ( 网络拓扑 | 输入层计算 | 隐藏层计算 | 输出层计算 )