Chinaunix首页 | 论坛 | 博客
  • 博客访问: 378819
  • 博文数量: 124
  • 博客积分: 30
  • 博客等级: 民兵
  • 技术积分: 11
  • 用 户 组: 普通用户
  • 注册时间: 2011-08-29 22:22
文章分类

全部博文(124)

文章存档

2016年(8)

2015年(52)

2014年(53)

2013年(11)

分类:

2015-08-21 10:37:50

原文地址:Kdump之makedumpfile源码分析 作者:linewer

    kexec是一个快速启动机制,允许在已经运行的内核的上下文启动另一个Linux内核,不需要经过BIOS。BIOS可能会消耗很多时间,特别是带有众多数量的外设的大型服务器。这种办法可以为经常启动机器的开发者节省很多时间。
    kdump是一个新的,而且非常可信赖的内核崩溃转储机制。崩溃转储数据可以从一个新启动的内核的上下文中获取,而不是从已经崩溃的内核的上下文。当系统崩溃时,kdump使用kexec启动到第二个内核。第二个内核通常叫做捕获内核(capture kernel),以很小内存启动,并且捕获转储镜像。
 
使用kdump的步骤大致为:
0). 内核态支持(内核高于2.6.13-rc1)|kexec-tools(包含kexec,kdump,makedumpfile)和crash工具(基于gdb的调试器,分析转储的文件)
1). 第一个内核(又叫工作内核)以crashkernel=Y@X形式启动,kdump在第一个内核所在系统中以服务形式运行
2).一旦发生内核崩溃(手动或者自动),kdump利用kexec快速启动机制启动到第二个内核(capture kernel),收集第一个内核的相关内存信息并转储到文件中(makedumpfile)
3).利用crash工具进行分

makedumpfile -c -d的流程大致如下图所示(版本1.3.8),如有错误欢迎斧正:)




阅读(1874) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~