启用diskdump

diskdump中必须指定转储用的分区。可以准备用于转储的分区,也可以将swap分区指定为转储位置。但是不使用compress选项时,分区必须大于系统中安装的内存。这次不使用交换分区,而是准备了专用于转储的分区/dev/sda3。配置文件/etc/sysconfig/diskdump中有下列内容。


DEVICE=/dev/sda3


然后将/dev/sda3格式化,作为转储用分区。


service diskdump initialformat


启用diskdump服务。


chkconfg diskdump on

service diskdump start


可以通过service命令或/proc/diskdump来确认diskdump是否已启用。/proc/diskdump中显示的内容如下。


cat/proc/diskdump

sample_rate:8

block_order:2

fallback_on_err:1

allow_risky_dumps:1

dump_level:0

compress:0

total_blocks:98197

#

sda3 14329980 2441880


另外,需要设置sysctl变量kernel.panic,使Linux内核在转储提取完成后自动重新启动。这是在/etc/sysctl.conf中进行设置的。


kernel.panic=10


通过这样的设置,转储完成后10秒就会重新启动。指定设置后使用sysctl命令启用设置。


sysctl-p


到这一步设置就完成了,可以尝试提取崩溃转储。


echo c>/proc/sysrq-trigger


转储文件在内核崩溃后重新启动时另存为/var/crash/127.0.0.1-<日期>/vmcore。可以使用crash命令确认转储文件的内容。关于crash命令的内容请参考HACK#59。