查看linux系统重启之前的log -- last_kmsg

当 Linux Kernel 出现 BUG 的时候,后走入 panic flow,这个时候由于 Kernel 出现了严重的问题,adbd 也无法响应 adb 连接请求,这个时候想透过读取 Kernel Log Buffer 来看 Kernel Log 是不可能的。那怎么办?

由于 Console Log 是不需要下任何命令就可以查看的,所以可以抓取 UART Log 分析,但是抓 UART Log 就要飞线,就会比较麻烦,有没有一种简单的方法可以让我们知道系统大概发生了什么事情呢?那就是 RAM Console Log。

  1. 下图所示是 RAM Console 的工作原理。

其大致的工作流程如下:

  1. 当系统开机初始化好 RAM Console Buffer 的时候就会开始进行 Logging。
  2. 一旦系统发生严重异常就会发生重启。
  3. 重启后系统启动又会开始初始化 RAM Console Buffer,在初始化 RAM Console Buffer 之前 Buffer 里面还保存了重启前的 Log 信息,在初始化的时候可以先将重启前的 Log 备份到另外一个 Buffer。
  4. 备份的 Buffer 可以通过 cat /proc/last_kmsg 来访问其中的内容。

通过上述的机制我们就可以在重启后通过 /proc/last_kmsg 来查看重启前发生了什么事情。

应用场景

RAM Console 主要可以帮助我们理清两件事情:

  1. 系统是否发生了重启。因为 /proc/last_kmsg 只有重启之后才会存在,所以只要 /proc/last_kmsg 存在我们就知道系统重启过了。(不是所有的重启都是异常重启)
  2. 如果系统重启了,我们可以根据 /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,这里也可以看出系统重启的原因。

Linux基础知识(3)---查看linux系统重启之前的log -- last_kmsg相关推荐

  1. 总结Linux基础知识和常用渗透命令!!!

    作为Web渗透的初学者,Linux基础知识和常用命令是我们的必备技能,本文详细讲解了Linux相关知识点及Web渗透免了高龄.如果想玩好Kali或渗透,你需要学好Linux及相关命令,以及端口扫描.漏 ...

  2. linux基础知识复习

    @(tigerfive)[linux,基础知识,复习笔记] linux基础复习(一) 今天只整理框架,具体内容之后详细整理吧 文件管理 文件基本操作 创建文件和目录 拷贝文件和目录 剪切文件和目录 删 ...

  3. linux基础知识_压缩—进程管理-网络管理-ftp-nfs-ssh-scp

    linux基础知识_压缩-进程管理-网络管理-ftp-nfs-ssh-scp 1.压缩包管理 gzip .gz格式的压缩包,不打包,分别压缩,原文件消失 bzip2 .bz2格式的压缩包,原文件不会消 ...

  4. Linux基础知识题解答(一)

    题目来自老男孩BLOG:http://oldboy.blog.51cto.com/2561410/1709569,比较适合新手,空余的时候做一下,可以巩固Linux基础知识,有不对的地方欢迎指正. 计 ...

  5. linux 基础知识及命令总结

    1.mkdir   创建目录 -p 创建多级目录  mkdir -p /data/test -m, --mode=模式 设置权限模式(类似chmod),而不是rwxrwxrwx 减umask -p, ...

  6. Linux基础知识--2.Linux的文件系统和bash的基础特性(1)

    Linux基础知识--linux的文件系统和bash的基础特性 一.Linux文件系统: Linux文件系统中的文件是数据的集合,文件系统不仅包含着文件中的数据而且还有文件系统的结构,所有Linux ...

  7. 【Java从0到架构师】Linux 基础知识、常用命令

    Linux 基础知识.常用命令 Linux 基础知识 内核和发行版 常见的 Linux 发行版 Linux 的应用领域 Linux 与 Windows 的区别 Linux 常用命令 *系统目录结构 s ...

  8. Linux基础知识题解答(四)

    题目来自老男孩BLOG:http://oldboy.blog.51cto.com/2561410/1709569,比较适合新手,空余的时候做一下,可以巩固Linux基础知识,有不对的地方欢迎指正. 1 ...

  9. LINUX基础知识笔记全

    LINUX基础知识整理 1.Linux 基本知识 2.Linux 文件和目录管理 vim scp sftp 压缩和归档 文件访问权限 脚本 3.Linux 用户和群组管理 sudo ssh opens ...

最新文章

  1. android 以不规则图片为边框切割另外图片
  2. 关于laravel发布到github'丢失'vendor目录或其他文件的解决
  3. windows资源管理器进行ftp登录下载文件报“当前的安全设置不允许从该位置下载文件”...
  4. 24、HTML 属性
  5. mysql+index组合索引_MySQL 优化之 index merge(索引合并)
  6. boost::geometry::model::d2::point_xy用法的测试程序
  7. Shell脚本编程详解
  8. java 树面试题_java——二叉树面试题
  9. 实际开发的存储过程_实际生产中的 Android SDK开发总结| 完结
  10. 2017-7-18-每日博客-关于Linux下的通配符.doc
  11. PCS7安装时提示please insert the following CD-ROM: SIMTIC PCS7 V?.? SP1 DVD 2/2
  12. android蓝牙软件,Android手机蓝牙助手(Bluetooth File Transfer)
  13. 科大讯飞语音合成使用小记
  14. 微信服务号只有域名没有80端口怎么办
  15. element 问号提示_软件安装时显示问号的解决方法
  16. 微服务设计指导-使用云原生微服务解决传统海量跑批时引起的系统间“级联雪崩”以及效率
  17. 哪个计算机无法做到双屏显示,如何实现笔记本电脑的双屏显示
  18. 推荐系统经典算法之——MF(矩阵分解)
  19. 网站漂浮广告代码收藏
  20. Ristretto 简介:一个高性能 GO 缓存

热门文章

  1. [设计模式] - 工厂模式
  2. 同济大学自动化与计算机科学,同济大学本科专业选通信工程好,还是选自动化好呢?...
  3. java 怎么控制暂停5秒钟_java – libGDX暂停运行几秒钟
  4. 【设计模式】第一章 面向对象六大原则
  5. 【小项目】SSM 整合实例
  6. Mybatisplus插件
  7. nginx实现https网站设置
  8. 监控进程网络使用情况--NetHogs
  9. 使用particles.js实现网页背景粒子特效
  10. Linux基础_Hadoop环境搭建必备