深圳Linux培训
达内深圳龙岗中心

150-1322-7143

热门课程

【深圳linux培训】通过使用Kdump检查linux内核

  • 时间:2017-11-01
  • 发布:深圳linux培训
  • 来源:达内新闻

深圳linux培训给你提供了一位根据深圳linux培训(http://sz.linux.tedu.cn)专家所提出检查linux内核的检查方法:

当linux内核崩溃时会发生什么

当第一个内核崩溃时,在控制权传递给 purgatory 或“捕获内核”之前,会执行以下操作:

准备 CPU 寄存器(参见内核代码中的 crash_setup_regs());

更新 vmcoreinfo 备注(请参阅 crash_save_vmcoreinfo());

关闭非崩溃的 CPU 并保存准备好的寄存器(请参阅 machine_crash_shutdown() 和 crash_save_cpu());

您可能需要在此处禁用中断控制器;

最后,它执行 kexec 重新启动(请参阅 machine_kexec()),它将加载或刷新 kexec 段到内存,并将控制权传递给进入段的执行文件。输入段可以是下一个内核的 purgatory 或开始地址。

让我们先看一下 kdump 的基本使用方法,和 kdump/kexec 在内核中是如何实现。

kdump 是获取崩溃的 Linux 内核转储的一种方法,但是想找到解释其使用和内部结构的文档可能有点困难。在本文中,我将研究 kdump 的基本使用方法,和 kdump/kexec 在内核中是如何实现。

kexec 是一个 Linux 内核到内核的引导加载程序,可以帮助从第一个内核的上下文引导到第二个内核。kexec 会关闭第一个内核,绕过 BIOS 或固件阶段,并跳转到第二个内核。因此,在没有 BIOS 阶段的情况下,重新启动变得更快。

kdump 可以与 kexec 应用程序一起使用 —— 例如,当第一个内核崩溃时第二个内核启动,第二个内核用于复制第一个内核的内存转储,可以使用 gdb 和 crash 等工具分析崩溃的原因。(在本文中,我将使用术语“第一内核”作为当前运行的内核,“第二内核” 作为使用 kexec 运行的内核,“捕获内核” 表示在当前内核崩溃时运行的内核。)

kexec 机制在内核以及用户空间中都有组件。内核提供了几个用于 kexec 重启功能的系统调用。名为 kexec-tools 的用户空间工具使用这些调用,并提供可执行文件来加载和引导“第二内核”。有的发行版还会在 kexec-tools 上添加封装器,这有助于捕获并保存各种转储目标配置的转储。在本文中,我将使用名为 distro-kexec-tools 的工具来避免上游 kexec 工具和特定于发行版的 kexec-tools 代码之间的混淆。

Fedora kexec-tools 工具

使用 dnf install kexec-tools 命令在 Fedora 机器上安装 fedora-kexec-tools。在安装 fedora-kexec-tools 后可以执行 systemctl start kdump 命令来启动 kdump 服务。当此服务启动时,它将创建一个根文件系统(initramfs),其中包含了要挂载到目标位置的资源,以保存 vmcore,以及用来复制和转储 vmcore 到目标位置的命令。然后,该服务将内核和 initramfs 加载到崩溃内核区域内的合适位置,以便在内核崩溃时可以执行它们。

kexec-tools 工具

编译 kexec-tools 的源代码得到了一个名为 kexec 的可执行文件。这个同名的可执行文件可用于加载和执行“第二内核”,或加载“捕获内核”,它可以在内核崩溃时执行。

想了解跟多关于IT行业的更多信息吗?那就快加入我们达内大家庭吧,圆你一个IT梦——【深圳linux培训

上一篇:【深圳linux培训】linux开机指引和启动过程
下一篇:【深圳linux培训】Bash提示符的一些黑科技

【深圳linux培训】磁盘分区的标识

【深圳linux培训】inode介绍

【深圳linux培训】存储设备分区

【深圳linux培训】systemtap的工作原理

选择城市和中心
贵州省

广西省

海南省