Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/28.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linux 分析vmcore接管原始磁盘_Linux_Linux Kernel_Crash Dumps - Fatal编程技术网

Linux 分析vmcore接管原始磁盘

Linux 分析vmcore接管原始磁盘,linux,linux-kernel,crash-dumps,Linux,Linux Kernel,Crash Dumps,我让Red Hat Linux机器的内核转储vmcore接管了原始磁盘分区。vmcore已经生成,我可以在串行控制台输出中看到这一点。我使用echo c>/proc/sysrq触发器触发了核心转储进程,但不知道如何分析它 /etc/kdump.conf文件中指定的选项是raw/dev/sda5。我之前使用fdisk命令创建了/dev/sda5分区,并给出了转储文件的位置。我还做了其他事情,比如为崩溃保留记忆等等 通过谷歌搜索,可以得到如下信息:- 原始磁盘分区和专用文件系统选项允许您仍然转储到本

我让Red Hat Linux机器的内核转储vmcore接管了原始磁盘分区。vmcore已经生成,我可以在串行控制台输出中看到这一点。我使用echo c>/proc/sysrq触发器触发了核心转储进程,但不知道如何分析它

/etc/kdump.conf文件中指定的选项是raw/dev/sda5。我之前使用fdisk命令创建了/dev/sda5分区,并给出了转储文件的位置。我还做了其他事情,比如为崩溃保留记忆等等

通过谷歌搜索,可以得到如下信息:-

原始磁盘分区和专用文件系统选项允许您仍然转储到本地系统,但无需重新装载可能损坏的文件系统, 从而降低vmcore不被捕获的几率。假设/dev/sda5未格式化,kdump.conf可以配置为“raw/dev/sda5”,vmcore文件将通过dd直接复制到分区/dev/sda5上


在进行转储后重新启动计算机后,我找不到/proc/vmcore。有人能给我提供一些线索/步骤,让我如何分析这个垃圾场吗?我是否需要做dd或mknod或类似的事情在谷歌上得到了一些不清楚的提示。

嘿,我碰巧看到了你的问题。我不知道你是否已经得到了答案。。无论如何

vmcore将被复制到/var/crash/或路径参数中定义的位置(如果有)

定义了“原始保存”函数

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
}
function start()
{
        save_raw