基于kexec的崩溃转储机制
来源:百度文库 编辑:神马文学网 时间:2024/04/26 17:17:23
网站首页 新闻首页 网页设计 图形动画 软件编程 网站开发 办公软件 操作系统 数据库 网络技术 认证考试 范文资料 黑客攻防 书籍教程 进入论坛
LinuxLinux系列教程Linux应用技巧Linux技术文章 加入收藏
网站地图
书籍教程
会员注册
DIY部落 >> 操作系统 >> Linux >> Linux技术文章 >> 正文基于kexec的崩溃转储机制http://www.diybl.com/ 2008-7-5 网络 点击: [ 评论 ]
-
-
文章搜索: 【点击打包该文章】
【本站开通在线QQ讨论群】 转载:http://blog.chinaunix.net/u/17564/showart_199223.html
内核文档:2.6.18.1/Documentation/kdump/kdump.txt===============================================设计
=== 当一个内核转储发生的时候kdump使用kexec启动一个备份的内核。这个备份启动的内核只是使用少量的内存,并且这些内存由第一个内核提供。这样设计保证了第一个内核启动且正在运行中的DMA不会破坏第二个内核的运行。 在内核崩溃之前所有关于核心映像的必要信息都用ELF格式编码并存储在保留的内存区域中。ELF头所在的物理地址被作为命令行参数(fcorehdr=)传递给新启动的转储内核。 在i386体系结构上,启动的时候需要使用物理内存开始的640K,而不管操作系统内核转载在何处。因此,这个640K的区域在重新启动第二个内核的时候由kexec备份。 在第二个内核中,“前一个系统的内存”可以通过两种方式访问: - 第一种方式是通过/dev/oldmem这个设备接口。一个“捕捉”设备可以使用“raw”(裸的)方式 “读”这个设备文件并写出到文件。这是关于内存的 “裸”的数据转储,同时这些分析/捕捉工具应该足够“智能”从而可以知道从哪里可以得到正确的信息。ELF文件头(通过命令行参数传递过来的elfcorehdr)可能会有帮助。 - 第二种方式就是通过/proc/vmcore。这个方式是将转储输出为一个ELF格式的文件,并且可以方 便使用一些文件拷贝命令(比如cp,scp等等)将信息读出来。同时,gdb可以在得到的转储文件上做一些调试(有限的)。这种方式保证了内存中的页面都以正确的途径被保存。(注意内存开始的640K被重新映射了)
安装/设置
=======
1)使用root用户登录系统。
2)下载upstream kexec-tools用户空间包,下载地址:
http://www.xmission.com/~ebiederm/files/kexec/kexec-tools-1.101.tar.gz.
3)解包:
tar xvpzf kexec-tools-1.101.tar.gz
4)从下列地址得到最新的kdump补丁。
http://lse.sourceforge.net/kdump/
如果所有关于用户空间支持kdump的补丁都已经集成到了upstream kexec-tools中那么这一步可以被省略。
5)cd到解包得到的目录:
cd kexec-tools-1.101
6)使用patch命令应用补丁:
patch -p1 < /path-to-kdump-patch/kexec-tools-1.101-kdump.patch
(注意使用正确的补丁目录和补丁文件)
7)配置这个包,使用如下命令:
./configure
8)编译包:
make
9)安装这个包:
make install
下载并构建系统内核和“转储-捕捉”内核
============================== 下载内核主版本树上的源码(从http://www.kernel.org),注意选择合适版本的内核(高于2.6.13-rc1版本)。需要编译两个内核:一个“系统内核”和一个“转储捕捉”内核。要使这个特性得以实现并工作需要相应的编译两个内核。遵照以下的步骤以配置内核使用合适的kexec和kdump功能:
系统内核
-------
1)编译内核时要确认选中了“kexec system call”选项(在“处理器类型和功能”区域)。
CONFIG_KEXEC=y 2)编译内核时要确认选中了“sysfs file system support”(在“文件系统”->“伪文件系统”区域)。这通常是默认选中的。
CONFIG_SYSFS=y
注意:在“Configure standard kernel features (for small systems)”没有被使能(在“General Setup”区域)时“sysfs file system support”可能出现在“Pseudo filesystems"菜单中。在这种情况下,检查.config文件以确保sysfs被打开。可以参考:
grep 'CONFIG_SYSFS .config 3)在“kernel hacking”区域中选中“Compile the kernel with debug info”:
CONFIG_DEBUG_INFO=Y
这样就可以使编译内核的时候带上调试用的符号,转储分析工具需要一个带有调试信息的vmlinux(内核文件)来调试分析转储文件。 4)编译内核和模块并安装之。更新启动管理器(比如grub,lilo,yaboot等等)的配置文件。 5)引导系统内核时使用引导参数:crashkernel=Y@X。
注意要使用合适的X和Y的值。Y的值表示要为第二个内核保留多少内存,X的值表示保留的内存区开始的物理地址。例如:crashkernel=64M@16M 告诉系统内核保留64MB内存给“转储捕捉内核”使用,这64MB内存从物理地址0x01000000开始。 在x86和x86_64平台上,使用"crashkernel=64M@16M"
在ppc64平台上,使用"crashkernel=128M@32M"
转储捕获内核
---------- 1)在“general setup”选项下,附加“-kdump”到“Local version”后面。 2)在x86平台上,在“Processor type and features”选项下使能高端内存支持:
CONFIG_HIGHMEM64G=y
或者:
CONFIG_HIGHMEM4G=y 3)在x86平台上,去掉对称多处理器的支持,在“Processor type and features”:
CONFIG_SMP=n
(如果不小心设置成了y,-
文章整理:DIY部落 http://www.diybl.com (本站) 【点击打包该文章】
[1] [2] [3]
如果图片或页面不能正常显示请点击这里 站内搜索:
【收藏此页】【栏目页面】【发表评论】【返回顶部】【关闭】
上一篇文章:unicode编码
下一篇文章:linux内核初始化以及启动推荐文章
Linux基本命令及其详解
查看系统登陆信息设置/etc/issue
iproute2应用-GRE over IPSEC
s3c2440 串口1,串口2的使用
程序减肥三步走
^txt2regex$:正则表达式编写向导
[GNU make中文1.6]第三章 Makefile 总述
vmtools的安装vivi情景分析(一): 配置管理(一)
【Fedora core 7.0】给CDLinux增加包的方法
Linux内核中的一些基本操作
如何恢复 Linux 上删除的文件,第 2 部分
获取cpu一些信息的例子
网络安全最佳工具Top75
纪念 Slackware LOGO
linux 下虚拟机上网 文章评论
请您留言昵称: 注册会员 会员登陆
点击这里 自己制作打包的chm电子书教程 验证: 网友推荐文章[转]Linux像老婆,Windows像妓女个性化设置你的linux环境世界上最快的超级计算机运行Linux在uclinux for bf561中使用B核(4):B核代码的编写moblin develop 环境搭建如何把用户限制在特定目录下在Ubuntu 7.10下安装EVA[译]数据包的linux 2.4网络协议栈之旅
最新新闻
微软起诉TomTom捅马蜂窝 开源界领袖纷表不满 Novell近日宣布将与VMware开展广泛合作 HP与Sun达成一致 将帮助售卖Solaris系统 苹果称乔布斯仍将于6月底重掌大权 谷歌中国原首席战略官郭去疾创办外贸B2C公司 沃达丰将向中小企业提供微软网络服务
相关教程文章
Linux中SysRq的使用移动版本Linux称为操作系统生力军85%的超级计算机运行Linux操作系统Linux创建基于LVM的文件系统输入法(一)mtd下nand驱动开发使用 SNMP 数据迁移到 ext4NAND FLASH ECC校验原理与实现基于MTD的NAND驱动开发nand flash 原理(三星)unicode编码基于kexec的崩溃转储机制linux内核初始化以及启动加载linux内核完毕,转入cpu_idle进程nfs配置方法 samba配置笔记MIPS TLB 的结构基于OpenVPN连接两个远程局域网段centos5.1下apache+php+mysql 总结段错误(Segmentation fault) (转)国内常见HA软件点评(ZT)linux集群安装配置排错的基本方法主要Linux 平台高可用HA集群软件简介及软件下载 本栏目热门教程
ubuntu英文环境下使用中文输入法高并发高流量网站架构 基于S3C2410平台的Linux 2.6.14内核+平台驱动的移植指南(最终版)Winxp下 gvim 编程环境搭建linux常见命令的列表跟我一起写MakefileUbuntu 实用学习教程linux查看磁盘空间查看LINUX最大线程数及最大进程数什么是tty?
频道地图
Linux
Linux系列教程
Linux应用技巧
Linux技术文章
Windows xp
Vista
Windows 2003
Windows 2008
Windows 2000/NT
Linux
Mac OS X
DOS
FreeBSD
Solaris
SCO UNIX
AIXDIY部落意见反馈留言板 QQ:258622672 email:diybl@163.com 欢迎批评指正DIY部落简介 | About DIY部落 | 广告联系 | 联系我们 | 收藏本站 | 友情链接 | 网站地图 | 会员注册 | 站长主页本站文章均为网上网友上传,如果有非法内容请联系我们,我们会在第一时间删除本站招聘编辑一名:联系电话:15009259087 联系qq 258622672 陕ICP备06011157号 DIY部落 版权所有
文章出处:http://www.diybl.com/course/6_system/linux/Linuxjs/200875/130429.html
LinuxLinux系列教程Linux应用技巧Linux技术文章 加入收藏
网站地图
书籍教程
会员注册
DIY部落 >> 操作系统 >> Linux >> Linux技术文章 >> 正文基于kexec的崩溃转储机制http://www.diybl.com/ 2008-7-5 网络 点击: [ 评论 ]
-
-
文章搜索: 【点击打包该文章】
【本站开通在线QQ讨论群】 转载:http://blog.chinaunix.net/u/17564/showart_199223.html
内核文档:2.6.18.1/Documentation/kdump/kdump.txt===============================================设计
=== 当一个内核转储发生的时候kdump使用kexec启动一个备份的内核。这个备份启动的内核只是使用少量的内存,并且这些内存由第一个内核提供。这样设计保证了第一个内核启动且正在运行中的DMA不会破坏第二个内核的运行。 在内核崩溃之前所有关于核心映像的必要信息都用ELF格式编码并存储在保留的内存区域中。ELF头所在的物理地址被作为命令行参数(fcorehdr=)传递给新启动的转储内核。 在i386体系结构上,启动的时候需要使用物理内存开始的640K,而不管操作系统内核转载在何处。因此,这个640K的区域在重新启动第二个内核的时候由kexec备份。 在第二个内核中,“前一个系统的内存”可以通过两种方式访问: - 第一种方式是通过/dev/oldmem这个设备接口。一个“捕捉”设备可以使用“raw”(裸的)方式 “读”这个设备文件并写出到文件。这是关于内存的 “裸”的数据转储,同时这些分析/捕捉工具应该足够“智能”从而可以知道从哪里可以得到正确的信息。ELF文件头(通过命令行参数传递过来的elfcorehdr)可能会有帮助。 - 第二种方式就是通过/proc/vmcore。这个方式是将转储输出为一个ELF格式的文件,并且可以方 便使用一些文件拷贝命令(比如cp,scp等等)将信息读出来。同时,gdb可以在得到的转储文件上做一些调试(有限的)。这种方式保证了内存中的页面都以正确的途径被保存。(注意内存开始的640K被重新映射了)
安装/设置
=======
1)使用root用户登录系统。
2)下载upstream kexec-tools用户空间包,下载地址:
http://www.xmission.com/~ebiederm/files/kexec/kexec-tools-1.101.tar.gz.
3)解包:
tar xvpzf kexec-tools-1.101.tar.gz
4)从下列地址得到最新的kdump补丁。
http://lse.sourceforge.net/kdump/
如果所有关于用户空间支持kdump的补丁都已经集成到了upstream kexec-tools中那么这一步可以被省略。
5)cd到解包得到的目录:
cd kexec-tools-1.101
6)使用patch命令应用补丁:
patch -p1 < /path-to-kdump-patch/kexec-tools-1.101-kdump.patch
(注意使用正确的补丁目录和补丁文件)
7)配置这个包,使用如下命令:
./configure
8)编译包:
make
9)安装这个包:
make install
下载并构建系统内核和“转储-捕捉”内核
============================== 下载内核主版本树上的源码(从http://www.kernel.org),注意选择合适版本的内核(高于2.6.13-rc1版本)。需要编译两个内核:一个“系统内核”和一个“转储捕捉”内核。要使这个特性得以实现并工作需要相应的编译两个内核。遵照以下的步骤以配置内核使用合适的kexec和kdump功能:
系统内核
-------
1)编译内核时要确认选中了“kexec system call”选项(在“处理器类型和功能”区域)。
CONFIG_KEXEC=y 2)编译内核时要确认选中了“sysfs file system support”(在“文件系统”->“伪文件系统”区域)。这通常是默认选中的。
CONFIG_SYSFS=y
注意:在“Configure standard kernel features (for small systems)”没有被使能(在“General Setup”区域)时“sysfs file system support”可能出现在“Pseudo filesystems"菜单中。在这种情况下,检查.config文件以确保sysfs被打开。可以参考:
grep 'CONFIG_SYSFS .config 3)在“kernel hacking”区域中选中“Compile the kernel with debug info”:
CONFIG_DEBUG_INFO=Y
这样就可以使编译内核的时候带上调试用的符号,转储分析工具需要一个带有调试信息的vmlinux(内核文件)来调试分析转储文件。 4)编译内核和模块并安装之。更新启动管理器(比如grub,lilo,yaboot等等)的配置文件。 5)引导系统内核时使用引导参数:crashkernel=Y@X。
注意要使用合适的X和Y的值。Y的值表示要为第二个内核保留多少内存,X的值表示保留的内存区开始的物理地址。例如:crashkernel=64M@16M 告诉系统内核保留64MB内存给“转储捕捉内核”使用,这64MB内存从物理地址0x01000000开始。 在x86和x86_64平台上,使用"crashkernel=64M@16M"
在ppc64平台上,使用"crashkernel=128M@32M"
转储捕获内核
---------- 1)在“general setup”选项下,附加“-kdump”到“Local version”后面。 2)在x86平台上,在“Processor type and features”选项下使能高端内存支持:
CONFIG_HIGHMEM64G=y
或者:
CONFIG_HIGHMEM4G=y 3)在x86平台上,去掉对称多处理器的支持,在“Processor type and features”:
CONFIG_SMP=n
(如果不小心设置成了y,-
文章整理:DIY部落 http://www.diybl.com (本站) 【点击打包该文章】
[1] [2] [3]
如果图片或页面不能正常显示请点击这里 站内搜索:
【收藏此页】【栏目页面】【发表评论】【返回顶部】【关闭】
上一篇文章:unicode编码
下一篇文章:linux内核初始化以及启动推荐文章
Linux基本命令及其详解
查看系统登陆信息设置/etc/issue
iproute2应用-GRE over IPSEC
s3c2440 串口1,串口2的使用
程序减肥三步走
^txt2regex$:正则表达式编写向导
[GNU make中文1.6]第三章 Makefile 总述
vmtools的安装vivi情景分析(一): 配置管理(一)
【Fedora core 7.0】给CDLinux增加包的方法
Linux内核中的一些基本操作
如何恢复 Linux 上删除的文件,第 2 部分
获取cpu一些信息的例子
网络安全最佳工具Top75
纪念 Slackware LOGO
linux 下虚拟机上网 文章评论
请您留言昵称: 注册会员 会员登陆
点击这里 自己制作打包的chm电子书教程 验证: 网友推荐文章[转]Linux像老婆,Windows像妓女个性化设置你的linux环境世界上最快的超级计算机运行Linux在uclinux for bf561中使用B核(4):B核代码的编写moblin develop 环境搭建如何把用户限制在特定目录下在Ubuntu 7.10下安装EVA[译]数据包的linux 2.4网络协议栈之旅
最新新闻
微软起诉TomTom捅马蜂窝 开源界领袖纷表不满 Novell近日宣布将与VMware开展广泛合作 HP与Sun达成一致 将帮助售卖Solaris系统 苹果称乔布斯仍将于6月底重掌大权 谷歌中国原首席战略官郭去疾创办外贸B2C公司 沃达丰将向中小企业提供微软网络服务
相关教程文章
Linux中SysRq的使用移动版本Linux称为操作系统生力军85%的超级计算机运行Linux操作系统Linux创建基于LVM的文件系统输入法(一)mtd下nand驱动开发使用 SNMP 数据迁移到 ext4NAND FLASH ECC校验原理与实现基于MTD的NAND驱动开发nand flash 原理(三星)unicode编码基于kexec的崩溃转储机制linux内核初始化以及启动加载linux内核完毕,转入cpu_idle进程nfs配置方法 samba配置笔记MIPS TLB 的结构基于OpenVPN连接两个远程局域网段centos5.1下apache+php+mysql 总结段错误(Segmentation fault) (转)国内常见HA软件点评(ZT)linux集群安装配置排错的基本方法主要Linux 平台高可用HA集群软件简介及软件下载 本栏目热门教程
ubuntu英文环境下使用中文输入法高并发高流量网站架构 基于S3C2410平台的Linux 2.6.14内核+平台驱动的移植指南(最终版)Winxp下 gvim 编程环境搭建linux常见命令的列表跟我一起写MakefileUbuntu 实用学习教程linux查看磁盘空间查看LINUX最大线程数及最大进程数什么是tty?
频道地图
Linux
Linux系列教程
Linux应用技巧
Linux技术文章
Windows xp
Vista
Windows 2003
Windows 2008
Windows 2000/NT
Linux
Mac OS X
DOS
FreeBSD
Solaris
SCO UNIX
AIXDIY部落意见反馈留言板 QQ:258622672 email:diybl@163.com 欢迎批评指正DIY部落简介 | About DIY部落 | 广告联系 | 联系我们 | 收藏本站 | 友情链接 | 网站地图 | 会员注册 | 站长主页本站文章均为网上网友上传,如果有非法内容请联系我们,我们会在第一时间删除本站招聘编辑一名:联系电话:15009259087 联系qq 258622672 陕ICP备06011157号 DIY部落 版权所有
文章出处:http://www.diybl.com/course/6_system/linux/Linuxjs/200875/130429.html
基于kexec的崩溃转储机制
内核文档翻译-Linux内核崩溃转储机制 - 有趣的那些 - 做个码农
内核文档翻译-Linux内核崩溃转储机制 - 有趣的那些 - 做个码农
Win32基于事件驱动的消息机制
基于公共财政的突发事件应急机制研究
内核文档翻译-Linux内核崩溃转储机制-Linux -idc中文资讯站-客观公证的IDC...
基于英语教师专业发展的校本教研机制的构建与实践1
基于英语教师专业发展的校本教研机制的构建与实践11
基于 英语教师专业发展的校本教研机制的构建与实践
基于LDAP的Web身份认证机制的研究与设计收藏
基于英语教师专业发展的校本教研机制的构建与实践
C++标准库提供了基于输入/输出流机制的文件操作
采用双内核机制基于uClinux的实时操作系统分析与实现
论基于网络的学习共同体(转)
精神崩溃的老鼠 - [转帖文字]
(转)数据库连接池的原理机制
(转)数据库连接池的原理机制
基于项目与基于问题的学习
用kexec迅速切换内核 | LinuxSir.Org
基于尊重的早期教育
基于设计的研究
基于设计的研究
基于以人为本的人性化
基于透支的稳定