CentOS 6.4下操作kdump执行过程

kdump 是一个新的,而且非常可信赖的内核崩溃转储机制。崩溃转储数据可以从一个新启动的内核的上下文中获取,而不是从已经崩溃的内核的上下文。当系统崩溃时,kdump使用kexec启动到第二个内核。第二个内核通常叫做捕获内核(capture kernel),以很小内存启动,并且捕获转储镜像。除了执行既定的kdump任务,它还允许自定义执行脚本,下面介绍一下如何在新内核上执行自定义的操作:

  1. 安装kdump环境

  • yum install kexec-tools

开启服务
  • chkconfig kdump on

  • service kdump start

配置启动项
  • 修改/boot/grub/menu.lst中的 "crashkernel=auto”为 “crashkernel=128M”

  • 重启机器

触发崩溃
  • echo c > /proc/sysrq-trigger

  • 【此时正在运行的内核崩溃,kdump自动切换到新内核,在新内核里执行保存崩溃内核信息的动作】

自定义操作
  • 通过配置/etc/kdump.conf可以控制kdump在保存崩溃内核之前和之后进行的操作kdump_pre和kdump_post

    • extra_bins /bin/sh      【切记把这个加上,否则无法执行脚本】

    • kdump_pre /var/crash/kdump_pre.sh

    • kdump_post /var/crash/kdump_post.sh

高级知识
  • 新内核的环境在/boot下,比如initrd-2.6.32-358.el6.x86_64kdump.img

  • 当旧内核崩溃时,kdump会解压缩这个img文件并执行,解压缩方式为

    • mv initrd-2.6.32-358.el6.x86_64kdump.img initrd-2.6.32-358.el6.x86_64kdump.img.gz

    • gunzip initrd-2.6.32-358.el6.x86_64kdump.img.gz

    • cpio -idmv < initrd-2.6.32-358.el6.x86_64kdump.img

  • img文件内包括新内核需要的所有文件,平时使用的cp、mv等都链接到busybox

    • [root@new-dev-2 bin]# ll cp mv      
      lrwxrwxrwx. 1 root root 7 Sep 17 12:13 cp -> busybox      
      lrwxrwxrwx. 1 root root 7 Sep 17 12:13 mv -> busybox

    • 如果希望独立的cp和mv,可以通过修改kdump.conf实现:extra_bins /bin/cp;  extra_bins /bin/mv

转载:http://itindex.net/detail/45696-yuanbor-centos-6.4

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章