kdump 是一個新的,而且非常可信賴的內核崩潰轉儲機制。崩潰轉儲數據可以從一個新啓動的內核的上下文中獲取,而不是從已經崩潰的內核的上下文。當系統崩潰時,kdump使用kexec啓動到第二個內核。第二個內核通常叫做捕獲內核(capture kernel),以很小內存啓動,並且捕獲轉儲鏡像。除了執行既定的kdump任務,它還允許自定義執行腳本,下面介紹一下如何在新內核上執行自定義的操作:
安裝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