深入探索 Kdump,第 1 部分

Excel VBA实战:批量检测URL链接状态的高效方法 本文详细介绍了如何使用Excel VBA批量检测URL链接状态的高效方法。通过编写自定义函数,用户可以一键检测成百上千个网址的有效性,自动标记失效链接,并生成详细报告。文章包含从环境搭建到代码实现的完整教程,以及优化技巧和常见问题解决方案,帮助用户提升办公效率。 阅读详情

Kdump 的基本概念

什么是 kexec ?

Kexec 是实现 kdump 机制的关键,它包括 2 个组成部分:一是内核空间的系统调用 kexec_load,负责在生产内核(production kernel 或 first kernel)启动时将捕获内核(capture kernel 或 sencond kernel)加载到指定地址。二是用户空间的工具 kexec-tools,他将捕获内核的地址传递给生产内核,从而在系统崩溃的时候能够找到捕获内核的地址并运行。没有 kexec 就没有 kdump。先有 kexec 实现了在一个内核中可以启动另一个内核,才让 kdump 有了用武之地。kexec 原来的目的是为了节省 kernel 开发人员重启系统的时间,谁能想到这个“偷懒”的技术却孕育了最成功的内存转存机制呢?

什么是 kdump ?

Kdump 的概念出现在 2005 左右,是迄今为止最可靠的内核转存机制,已经被主要的 linux™ 厂商选用。kdump 是一种先进的基于 kexec 的内核崩溃转储机制。当系统崩溃时,kdump 使用 kexec 启动到第二个内核。第二个内核通常叫做捕获内核,以很小内存启动以捕获转储镜像。第一个内核保留了内存的一部分给第二内核启动用。由于 kdump 利用 kexec 启动捕获内核,绕过了 BIOS,所以第一个内核的内存得以保留。这是内核崩溃转储的本质。

kdump 需要两个不同目的的内核,生产内核和捕获内核。生产内核是捕获内核服务的对像。捕获内核会在生产内核崩溃时启动起来,与相应的 ramdisk 一起组建一个微环境,用以对生产内核下的内存进行收集和转存。

如何使用 kdump

构建系统和 dump-capture 内核,此操作有 2 种方式可选:

1)构建一个单独的自定义转储捕获内核以捕获内核转储;

2) 或者将系统内核本身作为转储捕获内核,这就不需要构建一个单独的转储捕获内核。

方法(2)只能用于可支持可重定位内核的体系结构上;目前 i386,x86_64,ppc64 和 ia64 体系结构支持可重定位内核。构建一个可重定位内核使得不需要构建第二个内核就可以捕获转储。但是可能有时想构建一个自定义转储捕获内核以满足特定要求。

如何访问捕获内存

在内核崩溃之前所有关于核心映像的必要信息都用 ELF 格式编码并存储在保留的内存区域中。ELF 头所在的物理地址被作为命令行参数(fcorehdr=)传递给新启动的转储内核。

在 i386 体系结构上,启动的时候需要使用物理内存开始的 640K,而不管操作系统内核转载在何处。因此,这个 640K 的区域在重新启动第二个内核的时候由 kexec 备份。

在第二个内核中,“前一个系统的内存”可以通过两种方式访问:

1. 通过 /dev/oldmem 这个设备接口。

一个“捕捉”设备可以使用“raw”(裸的)方式 “读”这个设备文件并写出到文件。这是关于内存的 “裸”的数据转储,同时这些分析 / 捕捉工具应该足够“智能”从而可以知道从哪里可以得到正确的信息。ELF 文件头(通过命令行参数传递过来的 elfcorehdr)可能会有帮助。

2. 通过 /proc/vmcore。

这个方式是将转储输出为一个 ELF 格式的文件,并且可以使用一些文件拷贝命令(比如 cp,scp 等)将信息读出来。同时,gdb 可以在得到的转储文件上做一些调试(有限的)。这种方式保证了内存中的页面都以正确的途径被保存 ( 注意内存开始的 640K 被重新映射了 )。

kdump 的优势

高可靠性

崩溃转储数据可从一个新启动内核的上下文中获取,而不是从已经崩溃内核的上下文。

多版本支持

LKCD(Linux Kernel Crash Dump),netdump,diskdump 已被纳入 LDPs(Linux Documen-tation Project) 内核。SUSE 和 RedHat 都对 kdump 有技术支持。

Kdump 实现流程


图 1. RHEL6.2 执行流程
图 1. RHEL6.2 执行流程
 

图 2. sles11 执行流程
图 2. sles11 执行流程
 


配置 kdump

安装软件包和实用程序

Kdump 用到的各种工具都在 kexec-tools 中。kernel-debuginfo 则是用来分析 vmcore 文件。从 rhel5 开始,kexec-tools 已被默认安装在发行版。而 novell 也在 sles10 发行版中把 kdump 集成进来。所以如果使用的是 rhel5 和 sles10 之后的发行版,那就省去了安装 kexec-tools 的步骤。而如果需要调试 kdump 生成的 vmcore 文件,则需要手动安装 kernel-debuginfo 包。检查安装包操作:

 uli13lp1:/ # rpm -qa|grep kexec 
 kexec-tools-2.0.0-53.43.10 
 uli13lp1:/ # rpm -qa 'kernel*debuginfo*'
 kernel-default-debuginfo-3.0.13-0.27.1 
 kernel-ppc64-debuginfo-3.0.13-0.27.1 

参数相关设置

系统内核设置选项和转储捕获内核配置选择在《使用 Crash 工具分析 Linux dump 文件》一文中已有说明,在此不再赘述。仅列出内核引导参数设置以及配置文件设置。

修改内核引导参数,为启动捕获内核预留内存

通过下面的方法来配置 kdump 使用的内存大小。添加启动参数"crashkernel=Y@X",这里,Y 是为 kdump 捕捉内核保留的内存,X 是保留部分内存的开始位置。

  • 对于 i386 和 x86_64, 编辑 /etc/grub.conf, 在内核行的最后添加"crashkernel=128M" 。
  • 对于 ppc64,在 /etc/yaboot.conf 最后添加"crashkernel=128M"。

在 ia64, 编辑 /etc/elilo.conf,添加"crashkernel=256M"到内核行。

kdump 配置文件

kdump 的配置文件是 /etc/kdump.conf(RHEL6.2);/etc/sysconfig/kdump(SLES11 sp2)。每个文件头部都有选项说明,可以根据使用需求设置相应的选项。

启动 kdump 服务

在设置了预留内存后,需要重启机器,否则 kdump 是不可使用的。启动 kdump 服务:

Rhel6.2:

 # chkconfig kdump on 
 # service kdump status  
  Kdump is operational  
 # service kdump start 

SLES11SP2:

 # chkconfig boot.kdump on 
	 # service boot.kdump start 

测试配置是否有效

可以通过 kexec 加载内核镜像,让系统准备好去捕获一个崩溃时产生的 vmcore。可以通过 sysrq 强制系统崩溃。

 # echo c > /proc/sysrq-trigger 

这造成内核崩溃,如配置有效,系统将重启进入 kdump 内核,当系统进程进入到启动 kdump 服务的点时,vmcore 将会拷贝到你在 kdump 配置文件中设置的位置。RHEL 的缺省目录是 : /var/crash;SLES 的缺省目录是 : /var/log/dump。然后系统重启进入到正常的内核。一旦回复到正常的内核,就可以在上述的目录下发现 vmcore 文件,即内存转储文件。可以使用之前安装的 kernel-debuginfo 中的 crash 工具来进行分析(crash 的更多详细用法将在本系列后面的文章中有介绍)。

 # crash /usr/lib/debug/lib/modules/2.6.17-1.2621.el5/vmlinux 
 /var/crash/2006-08-23-15:34/vmcore 
 crash> bt 


载入“转储捕获”内核

需要引导系统内核时,可使用如下步骤和命令载入“转储捕获”内核:

       kexec -p <dump-capture-kernel> \ 
           --initrd=<initrd-for-dump-capture-kernel> --args-linux \ 
           --append="root=<root-dev> init 1 irqpoll"

装载转储捕捉内核的注意事项:

  • 转储捕捉内核应当是一个 vmlinux 格式的映像(即是一个未压缩的 ELF 映像文件),而不能是 bzImage 格式;
  • 默认情况下,ELF 文件头采用 ELF64 格式存储以支持那些拥有超过 4GB 内存的系统。但是可以指定“--elf32-core-headers”标志以强制使用 ELF32 格式的 ELF 文件头。这个标志是有必要注意的,一个重要的原因就是:当前版本的 GDB 不能在一个 32 位系统上打开一个使用 ELF64 格式的 vmcore 文件。ELF32 格式的文件头不能使用在一个“没有物理地址扩展”(non-PAE)的系统上(即:少于 4GB 内存的系统);
  • 一个“irqpoll”的启动参数可以减低由于在“转储捕获内核”中使用了“共享中断”技术而导致出现驱动初始化失败这种情况发生的概率 ;
  • 必须指定 <root-dev>,指定的格式是和要使用根设备的名字。具体可以查看 mount 命令的输出;“init 1”这个命令将启动“转储捕捉内核”到一个没有网络支持的单用户模式。如果你希望有网络支持,那么使用“init 3”。

Kdump 是一个强大的、灵活的内核转储机制,能够在生产内核上下文中执行捕获内核是非常有价值的。本文仅介绍在 RHEL6.2 和 SLES11 中如何配置 kdump。望抛砖引玉,对阅读本文的读者有益。

VB发者必备:5步掌握SeleniumBasic实现浏览器自动化 浏览器自动化是提升数据处理和业务流程效率的关键技术,其核心原理是通过WebDriver协议控制浏览器,模拟真实用户操作。这项技术对于需要与Web进行数据交互的自动化任务具有重要价值,广泛应用于数据抓取、报表生成、系统测试和日常办公自动化等场景。SeleniumBasic作为专门为Visual Basic生态设计的COM库,巧妙地将强大的Selenium WebDriver功能封装成VB可直接调用的对象,使得VB、VBA和VB.NET发者无需切换技术栈,就能在熟悉的发环境中轻松实现网页操作、表单填写和数据 阅读详情

相关推荐

CobaltStrike钓鱼攻击实战:从载荷免杀到内网渗透的攻防对抗

在网络安全领域,钓鱼攻击是一种利用社会工程学突破边界防御的常见技术手段。其核心原理是通过伪装成可信实体,诱导目标执行恶意代码,从而绕过传统安全防护。这项技术的价值在于能够以较低成本实现初始访问,是红队评估中模拟真实攻击链的关键环节。在实际应用场景中,攻击者常使用CobaltStrike等框架制作恶意载荷,并通过邮件、文档等多种渠道投递。本文聚焦于CobaltStrike钓鱼攻击的实战细节,深入探讨如何通过自定义加载器实现载荷免杀,并利用Malleable C2 Profile配置实现通信隐匿,从而有效对抗现

weixin_34375251的博客 739

安装虚拟机

boot留5个g和swap留4个g,跟就是/要留50g,之后点完成。点击未列出,输入root,密码用自己的,账户就创建好了。点击编辑设置2个g处理器看个人电脑需求,然后点击启。进去之后点击取消自动,点击我要配置分区,点击完成。点击linux,版本CENTQS7(64位)点击安装,记得把kdump禁掉。点击稍后安装系统,之后下一步。自己选择存储的硬盘,下一步。磁盘大小要最小60,大于它。确认自己的各项数值,点击完成。打文件,点击新建虚拟机。点击gnome点击完成。进去之后点击语言选择。...

mfuivivig的博客 984

Python股票数据爬虫实战:Requests+BeautifulSoup+SQLite方案

网页数据采集是Data Science中将非结构化HTML转化为结构化时间序列的关键环节。其核心原理在于模拟真实用户行为,通过HTTP协议获取页面资源,并利用DOM树解析与CSS选择器精准提取目标字段。技术价值体现在低成本补全API缺失场景(如龙虎榜、研报摘要、北向资金明细),支撑量化策略的实时性与完整性。典型应用场景包括实时行情快照、公告PDF文本OCR识别、财务表格结构化提取等。本文聚焦Python生态下Requests+BeautifulSoup+SQLite轻量组合的工程实践,兼顾稳定性、可维护性与

weixin_32535389的博客 748

Kdump解释

Kdump是一种内核崩溃转储机制。在系统崩溃的情况下,kdump将从系统中捕获信息,这些信息对于确定崩溃的原因非常有用。请注意,kdump确实需要保留一部分系统内存,这些内存将不可用于其他用途。

weixin_46031767的博客 1472

关于创建虚拟机kdump服务的简介

关于创建虚拟机kdump服务的简介

m0_64148419的博客 622

01基础 1、Centos 系统安装(VMware 虚拟机环境下)

安装 VMware 虚拟机 直接百度搜索 VMware 网上很多下载网站: https://baoku.360.cn/soft/search?kw=VMware 1、下载 VMware 软件后打安装包直接点击 下一步 2、勾选接受许可条款后点击 下一步 3、默认路径,点击 下一步 4、不用检查更新和加入体验计划,点击 下一步 5、设置快捷方式(方便使用),点击下一步 6、点击 升级 始安装 7、完成安装 VMware 安装完成后重启系统 VMware 中安装 Centos 1、自定义安

mcywww的博客 351

vmwar 虚拟机下载及安装

创建虚拟机 新建虚拟机,选择自定义安装,自定义安装我们所需要的: 由于我们安装的是一个全新的系统,所以不必担心虚拟机兼容性问题,直接在 硬件兼容性 的下拉表中选择 Workstation 16.x 即可: 接下里我们选择 稍后安装操作系统,如果选择 安装程序光盘映像文件,并把下载好的镜像选中,这样一来,虚拟机会默认安装策略部署最精简的 linux 系统,而不会向我们询问安装有关的配置信息。 然后选择版本,我们要安装的操作系统即可。 填写虚拟机的名称和文件保存地址: 设置虚拟机核心数的时候,可以根据

光头小小强007的博客 1330

批量打网页:自动化脚本与工具实战

在数字化时代,网页应用在我们日常生活和工作中扮演了重要角色。快速有效地打一系列网页是一个常见需求,无论是出于日常浏览、市场分析、数据采集还是自动化测试。批量打网页能够显著提升工作效率,节省重复性劳动时间。为了实现这一目标,需要掌握适当的编程或自动化技术。本文将深入探讨如何使用不同的方法和工具来批量打网页,从简单的批处理脚本到复杂的自动化测试工具,让你能够根据实际情况选择最合适的技术实现途径。

weixin_30765637的博客 1437

工具】抓包工具-Fidder抓取web app请求

抓包工具-Fidder抓取web app请求 1.什么是Fiddler,它可以做什么 Fiddler是位于客户端和服务器端的HTTP代理,也是目前最常用的http抓包工具之一。 Fiddler能够记录客户端和服务器之间的所有http请求,可以针对特定的http请求,分析请求数据,设置断点,调试web应用,修改请求的数据,甚至可以修改服务器返回的数据,功能非常强大,是web调试的利器。 既然...

weixin_44615430的博客 737

强大!不懂html也来学网抓(xmlhttp/winhttp+fiddler)

http://club.excelhome.net/thread-1159783-1-1.html 学习html强力推荐此网站:http://www.w3school.com.cn/ ,绝对权威 交流QQ群:310731499 目录: 一、前期准备: 1、fiddler的安装、设置、使用; Fiddler抓包并确认数据页面一例 2...

weixin_38167826的博客 579

Sqribble:面向文档自动化的轻量级操作系统解析

文档自动化正从简单排版工具升级为具备规则驱动能力的文档操作系统。其核心在于将出版规范、样式逻辑与布局约束封装为可复用、可配置的模板协议,实现内容结构化→规则化渲染→确定性交付的技术闭环。相比传统Word或设计软件,它以‘语义优先’替代‘像素优先’,通过模板即代码、内容即数据、布局即服务等范式,显著提升技术白皮书、客户方案、培训手册等高频文档的生产确定性与跨团队协同效率。本文深入剖析其作为文档操作系统的架构本质与工程实践路径。

diaoqu4574的博客 437

GitHub Copilot实战入门:零配置用Codex提升编码效率

代码补全工具是现代发者的效率基石,其核心原理在于大语言模型对编程语义的理解与上下文感知生成。以Codex为代表的专业代码模型,通过海量源代码训练,具备跨语言、高准确率的片段生成能力,技术价值体现在降低重复劳动、加速知识转化与增强工程可维护性。典型应用场景包括SQL自动生成、日志分析脚本编写、API文档自动化等日常发‘脏活累活’。本文聚焦GitHub Copilot这一最主流的Codex落地产品,提供免API密钥、免Docker、免模型部署的极简上手路径,并详解注释驱动、上下文控制、负向提示等关键实践技

weixin_33736649的博客 382

桌面智能体:跨应用意图理解与本地化AI办公新范式

桌面智能体是一种新型AI协作范式,它突破传统插件依赖单一应用的局限,通过操作系统级API实现跨应用状态感知与多模态意图理解。其核心在于将语义解析、格式判断等轻量推理下沉至本地客户端,兼顾响应速度与数据安全。技术价值体现在解决上下文割裂、格式失真、视频生成伪智能三大办公痛点,广泛应用于企业汇报自动化、培训短视频生成、知识库联动等高频场景。本文聚焦阿里桌面Agent实践,深入解析其跨应用操作图谱、结构化输出协议与时间轴语义锚定等关键技术实现。

weixin_33827731的博客 350

Python办公自动化实战:从脚本编写到工业级交付

Python办公自动化是面向职场人的效率基础设施,其核心在于用确定性代码处理重复性任务,而非掌握编程语法本身。它基于文件IO、HTTP协议、正则表达式等基础原理,通过pandas、PyPDF2、Playwright等工具链实现Excel报表生成、PDF结构化提取、Web表单自动提交等高频场景。技术价值体现在显著降低人工操作耗时、提升数据一致性与流程可追溯性,并支撑异常拦截、日志归档、一键回滚等工业级健壮性要求。当前主流应用已延伸至LLM协同质检、企业内网深度集成及团队协作流重构。本文聚焦真实办公环境下的自动

cique2620的博客 507

客户端渗透实战:从漏洞利用到内网突破的攻防解析

在网络安全领域,漏洞利用是攻击者突破防御体系的核心技术手段之一。其基本原理是通过利用软件或系统中的设计缺陷、编码错误或配置不当,使攻击者能够执行非授权操作,例如获取系统权限、窃取敏感数据或破坏服务完整性。从技术价值看,掌握漏洞利用技术不仅有助于理解攻击链的构建,更能为安全防御提供逆向工程视角,从而设计出更有效的检测与防护机制。在实际应用场景中,客户端软件因其部署广泛、用户交互频繁且安全更新滞后,常成为攻击者首选的突破口。通过社会工程学手段投递恶意文件或链接,结合针对客户端软件的内存破坏漏洞、逻辑缺陷或配置弱

djph26741的博客 387

Claude Sonnet 4.6实现通用计算机操作:GUI自动化新范式

通用计算机操作(General Computer Operation)是指AI不依赖API或脚本,直接通过GUI界面理解并执行人类标准操作的能力,其核心原理是模型对操作系统交互语义的深度建模——将鼠标悬停、焦点切换、弹窗出现等行为映射为可推理的状态机。这一能力突破了传统RPA和Selenium的脆弱性限制,具备跨应用、跨平台、抗UI变更的技术价值。典型应用场景包括自动填表、多系统数据同步、办公软件批量处理及低代码流程编排,尤其适用于缺乏API的老系统集成与中小团队敏捷自动化。Claude Sonnet 4.

weixin_30655569的博客 416

解锁Linux第一步——安装第一台虚拟机

点击加号,挂载点选择最后一个biosboot,不用输入容量,直接点击添加挂载点,将会自动将容量设置为2kb。虚拟机后,会出现如下界面,此时鼠标不可用,按动键盘上下键,选择第一项Install CentOS 7。点击新CD/DVD,右边选择使用ISO映像文件,点击浏览选择镜像文件路径,点击关闭。点击加号,添加swap,容量选择内存两倍(我的内存为4G,所以此处容量选择8G)选择镜像文件后,点击完成,出现以下界面,点击启此虚拟机。安装好操作系统后,出现如下界面,选择中文,点击继续。

m0_61863878的博客 744

如何测试kdump

Linux 内核的崩溃转储机制,用于在系统发生内核崩溃(kernel panic)时捕获完整内存镜像(vmcore)供离线分析。而的核心目的是,确保在生产环境出现问题时能获取关键诊断数据,避免 "无据可查" 的困境。

lr970307的博客 85
上一篇: 如何成为Emacs高手(像神一样使用编辑器)
下一篇: 谷歌关闭中国音乐搜索服务--有点可惜
horst_hu
博客等级 码龄15年 38粉丝 34原创
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值