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

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