自编译内核5.0.5的crash与kdump安装

自编译内核5.0.5的crash与kdump安装

1 环境

  1. 操作系统版本:centos 7.3.1164 自带linux-3.10.0-514.el7.x86_64的内核。
  2. 硬盘:1T以上 内存:16G cpu: intel-xxx。

 

2 步骤

  1. 升级前:
    1. 安装必要的软件

 yum install -y ncurses-devel elfutils-libelf-devel openssl-devel bc

yum install gcc rpm-build rpm-devel rpmlint make python bash coreutils diffutils patch rpmdevtools

2. 升级内核步骤

(1)获得linux-5.0.5.tar.xz的内核源码

地址:kernel.org或者github中Linux项目获取

(2)解压缩源码,并进入解压缩后的目录。

(3)根据下面链接中所需要修改的config配置,按照说明配置即可。

https://www.ibm.com/developerworks/cn/linux/l-cn-dumpanalyse/index.html

并修改源码目录下scripts/package/mkspec文件,去掉%define debug_package %{nil},并在%install 后面加/usr/lib/rpm/find-debuginfo.sh %{_builddir}/%{?buildsubdir}

  1. 随后在源码目录下make rpm-pkg来编译rpm包。make -j可以提高速度,j后面写你的cpu核心数,不超过即可。
  2. 编译完成后进入用户目录,在rpmbuild/RPMS/下可以找到编译好的rpm包。原则上rpm -ivh kernel-xxx.rpm, kernel-devel-xxx.rpm即可。
  3. grub2-mkconfig -o /boot/grub2/grub.cfg来生成新的grub.cfg
  4. grub2-set-default来改变默认启动内核
  5. grub2-editenv list 来查看当前默认启动内核版本。
  6. grubby --update-kernel=DEFAULT --args=crashkernel=128M来为crashkernel分配空间。内存大的可以分配更多空间。
  7. reboot即可。

3.启动kdump

centos 7默认是带有kdump.service服务的。但对于新内核有点老了。

  1. 更新或安装kexec-tools,yum install kexec-tools / yum update kexec-tools
  2. 安装最新的crash(最重要,因为老crash对于pageoffset的处理不对。)

地址:https://github.com/crash-utility/crash

解压后,进入目录make & make lzo. 如果lzo报错,则yum install lzo-devel安装lzo.在重新make lzo。最后再make 一遍,make install成功即可。crash -v查看是否到了对应的版本。

  1. 重启。
  2. 重启后检查kdump是否正常开启。systemctl status kdump.service.

注意事项:

  1. kdump不能启动,可能是no memory allocated ,即没有分配对应的crashkernel。

原则上,centos 7可以grubby --update-kernel...解决,上面已经写了。

  1. kdump不能启动,可能是selinux没关,不要问为什么,关了就行了,可以通过vim /etc/selinux/config 将enforcing 改为disabled就行了。setenforce 0可以临时关闭。最后再重启一遍。
  2. kdump不能启动,可能是/boot/vmlinuz-xxx没有执行权限。
  3. kdump不能启动,可能是kexec-tools版本太低,自己解决。

 

4.crash分析

(1)上述步骤都正常了后,可以测试crash了

(2)echo c > /proc/sysrq-trigger 来启动panic,使得kdump工作。

(3)等机器重启后,进入/var/crash查看生成文件。

(4)crash 用户/rpmbuild/BUILD/kernel-xxx/vmlinux vmcore来分析。正常进去了,就成功了。

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值