2012-11-02 38 views
1

我擁有在原始磁盤分區上接管的Red Hat Linux機器的核心轉儲(vmcore)。生成了vmcore,我可以在串行控制檯輸出上看到它。我使用echo c > /proc/sysrq-trigger觸發了核心轉儲過程,但我不知道如何分析它。分析在原始磁盤上接管的vmcore

/etc/kdump.conf文件中指定的選項是"raw /dev/sda5"。我之前使用fdisk命令創建了/ dev/sda5 parition,並將其作爲轉儲文件的位置。我也做其他事情像死機等

谷歌搜索這個記憶保留了像一些信息如下: -

「的原始磁盤分區和專用文件系統選項允許你仍然轉儲到本地系統,但不必重新安裝可能損壞的文件系統,從而減少了vmcore不被捕獲的機會。假設/ dev/sda5沒有格式化,kdump.conf可以配置爲'raw/dev/sda5' sda5',並且vmcore文件將通過dd直接複製到分區/ dev/sda5上「。

機器重​​啓後(轉儲後)我找不到/proc/vmcore。有人能給我提供任何線索/步驟,我如何分析那個轉儲?我需要做「dd」或「mknod」或類似的東西(在google上有一些不清楚的提示)。

回答

0

嘿,我碰巧看到你的問題。不知道你有你的答案已經..不管怎麼說..如有

爲vmcore將被複制到/ var /崩潰/或路徑中的參數定義的位置..

由於save_raw功能定義。

function save_raw() 
{ 
     local raw_part=$(awk '$1 ~ /^raw$/ { print $2; }' $KDUMP_CONFIG_FILE) 
     local kdump_dir 
     if [ "$raw_part" ]; then 
       [ -b "$raw_part" ] || { 
         echo "raw partition $raw_part not found" 
         return 1 
       } 
       kdump_dir=`grep ^path $KDUMP_CONFIG_FILE | cut -d' ' -f2-` 
       if [ -z "${kdump_dir}" ]; then 
         coredir="/var/crash/`date +"%Y-%m-%d-%H:%M"`" 
       else 
         coredir="${kdump_dir}/`date +"%Y-%m-%d-%H:%M"`" 
       fi 
       mkdir -p "$coredir" 
       [ -d "$coredir" ] || { 
         echo "failed to create $coredir" 
         return 1 
       } 
       if makedumpfile -R $coredir/vmcore <$raw_part >/dev/null 2>&1; then 
         # dump found 
         echo "Dump saved to $coredir/vmcore" 
         # wipe makedumpfile header 
         dd if=/dev/zero of=$raw_part bs=1b count=1 2>/dev/null 
       else 
         rm -rf "$coredir" 
       fi 
     fi 
     return 0 
} 

該函數在重啓後啓動kdump時調用。

function start() 
{ 
     save_raw