查看linux系统重启之前的log -- last_kmsg
来源:互联网 发布:贵州广电网络节目表 编辑:程序博客网 时间:2024/06/11 08:59
当 Linux Kernel 出现 BUG 的时候,后走入 panic flow,这个时候由于 Kernel 出现了严重的问题,adbd 也无法响应 adb 连接请求,这个时候想透过读取 Kernel Log Buffer 来看 Kernel Log 是不可能的。那怎么办?
由于 Console Log 是不需要下任何命令就可以查看的,所以可以抓取 UART Log 分析,但是抓 UART Log 就要飞线,就会比较麻烦,有没有一种简单的方法可以让我们知道系统大概发生了什么事情呢?那就是 RAM Console Log。
- 下图所示是 RAM Console 的工作原理。
其大致的工作流程如下:
- 当系统开机初始化好 RAM Console Buffer 的时候就会开始进行 Logging。
- 一旦系统发生严重异常就会发生重启。
- 重启后系统启动又会开始初始化 RAM Console Buffer,在初始化 RAM Console Buffer 之前 Buffer 里面还保存了重启前的 Log 信息,在初始化的时候可以先将重启前的 Log 备份到另外一个 Buffer。
- 备份的 Buffer 可以通过 cat /proc/last_kmsg 来访问其中的内容。
通过上述的机制我们就可以在重启后通过 /proc/last_kmsg 来查看重启前发生了什么事情。
应用场景
RAM Console 主要可以帮助我们理清两件事情:
- 系统是否发生了重启。因为 /proc/last_kmsg 只有重启之后才会存在,所以只要 /proc/last_kmsg 存在我们就知道系统重启过了。(不是所有的重启都是异常重启)
- 如果系统重启了,我们可以根据 /proc/last_kmsg 的内容查看重启前系统都做了什么事情。
当然我们在 RAM Console header 里面还记录了 CPU hotplug 的情况以及 Hardware Watchdog Timeout Flow 的执行情况,以帮助 Debug 问题。
查看 系统重启前的kernel log,cat /proc/last_kmsg或者cat /sys/fs/pstore/console-ramoops,必须系统重启才存在这个log,这里也可以看出系统重启的原因。
阅读全文
0 0
- 查看linux系统重启之前的log -- last_kmsg
- linux查看系统的重启时间
- 如何查看linux的系统log日志
- last_kmsg
- 查看Linux系统 重启日志,登录日志和输入命令的日志
- 查看Linux系统 重启日志,登录日志和输入命令的日志
- Android的ram_console和last_kmsg
- linux系统下查看tomcat服务器实时 log日志的命令
- linux系统常用日志以及二进制登录日志/var/log/wtmp文件的查看方法
- 查看Linux重启时间
- 安装SQL2000时,系统提示之前有挂起的安装操作,要求重启
- webservie服务重启以及查看LOG档
- linux重启系统
- linux系统的最后重启时间
- linux log日志查看
- Linux 查看log文件
- 安装SQL2000或者其他软件系统提示之前有挂起的安装操作,要求重启系统的解决办法
- 安装SQL2000或者其他软件系统提示之前有挂起的安装操作,要求重启系统的解决办法
- 接口----应用
- 51nod 1711 平均数
- 【ssm框架】增删改查的最佳实践
- 秘籍总结:玩转python里的字符串上篇
- 常用的sql指令总结
- 查看linux系统重启之前的log -- last_kmsg
- Java基础之hashMap相关知识
- Qt 学习之路 2(48):QSortFilterProxyModel
- Android Studio support:appcompat-v7:26+
- 通过sql server 连接mysql
- Dynamic Programming--Algorithms
- Registration has not been run for all of the FEAT directories
- Apache Maven maven使用命令创建Java项目、javaweb项目和使用eclipse创建javaweb项目(3)
- 《Thinking in html》New input types in HTML5