centos5.7下的kdump

   2023-02-10 学习力0
核心提示:我的centos5.7是台虚拟机,用的是virtual box安装的。安装的时候安装模式我没有选择图像界面,而是最小化安装,即只有命令行。1,从上图可以看出我的kdump没有安装(5.7最小化安装没有装kdump),我的内存给的是4096而到了这里只能使用3个G。2,接下来安装kexec

我的centos5.7是台虚拟机,用的是virtual box安装的。安装的时候安装模式我没有选择图像界面,而是最小化安装,即只有命令行。

centos5.7下的kdump

1,从上图可以看出我的kdump没有安装(5.7最小化安装没有装kdump),我的内存给的是4096而到了这里只能使用3个G。

2,接下来安装kexec-tools、kernel-debuginfo和kernel-debuginfo-common。kexec-tools这个包装了之后才有kdump服务,安装kernel-debuginfo和kernel-debuginfo-common是因为crash分析vmcore文件时要用到它的vmlinux文件,不安装的话找不到vmlinux文件就无法使用crash分析vmcore文件了。我这儿kernel-debuginfo和kernel-debuginfo-common事先已经从官网下载好了。

centos5.7下的kdump

3,安装好了之后我们看一眼kdump的状态。看到状态是not operational,即不能操作,因为我们还没有配置kdump,也还没有启动它。

centos5.7下的kdump

4,配置kdump。我把配置过程放进了脚本当中。当然这个配置过程的来自我的导师钟会,只不过我把它放到了脚本当中而已。执行脚本即可。

 centos5.7下的kdump

5,脚本执行完成之后配置文件/etc/kdump.conf的内容变成了这样

centos5.7下的kdump

第一行是 / 分区对应的设备和文件系统。

第二行是捕捉崩溃保存的文件所存放的位置。

第三行设置保存内核镜像内容的级别,-c表示使用makedumpfile压缩数据, --message-level 1表示提示信息的级别(1表示只显示进度信息)-d 31表示不复制所有可以去掉的内存页(包括zero page, cache page, cache private, user data, free page等)。

第四行是一些额外的模块。

第五行是崩溃后默认自动重启。

 5,启动kdump。并查看状态。我这里没有这2个模块,所以启动失败。

centos5.7下的kdump

6,去掉这2个模块再次启动并检查状态。(⊙o⊙)哦!!!还是无法启动,真尴尬!注意划线部分Please reserve memory by passing "crashkernel=x@y" parameter to the kernel.查看/var/log/messages文件里头也有提示错误: No crashkernel parameter specified for running kernel

centos5.7下的kdump

centos5.7下的kdump

centos5.7下的kdump

7,网上查了一下资料说将crashkernel=auto改为crashkernel=128M@48M或者更大,取决于内存是否足够。那么接下来我就照搬过来改一下。

centos5.7下的kdump

 

8,再次启动kdump并检查状态。

centos5.7下的kdump

9,糟糕的是还是启动失败,难道是要重启服务器?于是我就重启了。由于kdump是开机启动的,重启后直接查看状态即可。

centos5.7下的kdump

10,这回终于成功了。从开始的kdump is not operational变成了现在的kdump is operational,说明kdump配置成功可以使用了。config_kdump.sh内容现在是这样的:

#!/usr/bin/env bash
device=`df -lh /var |tail -1 |awk '{print $1}'`
filesystem=`mount|grep -w $device|awk '{print $(NF-1)}'` > /etc/kdump.conf
echo "$filesystem $device" >> /etc/kdump.conf
echo "path /var/crash" >> /etc/kdump.conf
echo "core_collector makedumpfile -c --message-level 1 -d 31" >> /etc/kdump.conf
#echo "extra_modules mpt2sas mpt3sas megaraid_sas hpsa ahci" >> /etc/kdump.conf
echo "extra_modules mpt2sas megaraid_sas ahci" >> /etc/kdump.conf
echo "default reboot" >> /etc/kdump.conf
sed -i "s/mkdumprd -d/mkdumprd --allow-missing -d/" /etc/init.d/kdump
chkconfig --level 2345 kdump on
#grubby --args='crashkernel=auto' --update-kernel=ALL
grubby --args='crashkernel=128M@48M' --update-kernel=ALL

 

11,接下来验证一下kdump是否能够捕捉内核崩溃。

centos5.7下的kdump

 

 

开启Magic System Request Key功能:echo 1 >/proc/sys/kernel/sysrq

制造系统崩溃:echo c >/proc/sysrq-trigger

 下面这是崩溃后重启的画面。

 centos5.7下的kdump

12,现在重新登录系统,进入/var/crash目录

centos5.7下的kdump

 

 进入目录我们看的一个ip+时间戳构成的子目录,进入该子目录我们看到了vmcore文件,这个文件就是kdump捕捉到内核崩溃产生的信息然后生成的文件。

现在我们可以通过crash命令对该文件进行分析了。

 centos5.7下的kdump

 

 12,如何分析vmcore文件可以参照我的这篇文章。

http://www.cnblogs.com/sonwnja/p/6802844.html

 

 
反对 0举报 0 评论 0
 

免责声明:本文仅代表作者个人观点,与乐学笔记(本网)无关。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
    本网站有部分内容均转载自其它媒体,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责,若因作品内容、知识产权、版权和其他问题,请及时提供相关证明等材料并与我们留言联系,本网站将在规定时间内给予删除等相关处理.

  • 用Xshell设置CentOS密钥登录
    用Xshell设置CentOS密钥登录
    今天带来设置X shell 密钥登录  因为用的中文x shell 所以按照中文设置很简单1.点击工具(Tools)------新建用户密钥生成向导(New User key Wizard)(附图)2.然后出现下图时,记得密钥类型 选择RSA.其实选择DSA ,也能实现,二者其实是不同的算法。(我用的R
    03-08
  • centOS下安装Adobe Flash Player
    centOS下安装Adobe Flash Player
    centOS下安装Adobe Flash Player  2009-10-09 11:29:33|  分类:linux|  标签: |订阅 写出来就这么简单几步,当初刚接触Linux的时候搜索了很长时间,找了很多资料,总是出现这样那样的问题,最后终于摸索出最简单最有效的安装的方法。 随便打开一个带
    03-08
  • 部署Node.js项目(CentOS) node项目搭建
    部署Node.js项目(CentOS) node项目搭建
    操作步骤步骤 1:创建ECS实例选择操作系统为公共镜像CentOS7.2。使用root用户登录Linux实例。步骤2:部署Node.js环境—二进制文件安装该部署过程使用的安装包是已编译好的二进制文件,解压之后,在bin文件夹中就已存在node和npm,无需手工编译。安装步骤:1、
    02-10
  • centos安装python与jdk centos安装python3.7
    centos安装python与jdk centos安装python3.7
    安装python#压缩包安装[root@china ~]# yum -y install zlib*Loaded plugins: fastestmirror, refresh-packagekit, securityLoading mirror speeds from cached hostfile * base: mirrors.aliyun.com * extras: mirrors.aliyun.com * updates: mirrors.aliyun
    02-10
  • centos6下同时安装python2和python3
    #build-essential compile packagesyum groupinstall "Development Tools"yum install openssl-develyum install zlib-develyum install make gcc gcc-c++ kernel-develhttp://unix.stackexchange.com/questions/291737/zipimport-zipimporterror-cant-decomp
    02-10
  • CentOS下查看文件和文件夹大小 linux查看文件夹
    当磁盘大小超过标准时会有报警提示,这时如果掌握df和du命令是非常明智的选择。  df可以查看一级文件夹大小、使用比例、档案系统及其挂入点,但对文件却无能为力。当磁盘大小超过标准时会有报警提示,这时如果掌握df和du命令是非常明智的选择。  df可以查
    02-10
  • centos7 离线升级/在线升级操作系统内核
    centos7 离线升级/在线升级操作系统内核
    centos7 离线升级/在线升级操作系统内核目录一.前言二.系统环境三.系统内核下载网址四.centos7离线升级系统内核1.先查看系统环境2.离线升级系统内核五.在线升级系统内核一.前言CentOS(Community ENTerprise Operating System)是Linux发行版之一,它是来自于
    02-10
  • centos7 rc.local脚本执行不成功
    腾讯云 centos7   配置文件/etc/rc.local的内容如下:#!/bin/sh#secu_agent init monitor, install at Thu Aug 3 11:19:41 CST 2017/usr/local/sa/agent/init_check.sh/dev/null 21/usr/sbin/ntpdate ntpupdate.tencentyun.com /dev/null 21 /usr/local/qclo
    02-10
  • 如何在centos7启动时自动挂载硬盘
    在/etc/rc.local中加入如下的语句,这样就不用每次重启后手动挂载了(后面挂载的目录根据自己的需求而定):mount  /dev/sdb1 /usr/sharedfiles/sdbmount  /dev/sdc1 /usr/sharedfiles/sdcmount  /dev/sdb1 /root/sdbmount  /dev/sdc1 /root/sdc注意:可以
    02-10
  • centos7.2 开启防火墙
    开启防火墙当我们修改了某些配置之后(尤其是配置文件的修改),firewall并不会立即生效。可以通过两种方式来激活最新配置 systemctl restart firewalld 和 firewall-cmd --reload 两种方式,前一种是重启firewalld服务,建议使用后一种“重载配置文件”
    02-10
点击排行