enable kdump on fedora server 27

本文介绍如何在 Fedora Server 27 的最新内核上配置 kdump 功能,解决在高版本内核中使用旧版本发行版进行 kdump 配置时出现的问题。文章提供了详细的步骤说明,包括下载 Fedora Server 27 测试版 ISO 文件、修改 kdump 配置文件、编写自定义脚本以确保 vmcore 文件正确复制,以及如何限制内存大小以提高效率。

当前的内核是4.14,如果想在最新的内核上enable kdump,用以前的发行版老是出错,经过无数测试,发现fedora server 27可以。

不过fedora server 27还没有正式发布,可以先下载下面的测试版:


https://kojipkgs.fedoraproject.org/compose/branched/Fedora-27-20171020.n.0/compose/Server/x86_64/iso/Fedora-Server-dvd-x86_64-27-20171020.n.0.iso


也许是makedumpfile有bug,copy vmcore的时候老是incomplete,不过没关系,我们可以用脚本自己copy。


首先在/etc/kdump.conf中把下面这行的注释去掉


kdump_pre /var/crash/scripts/kdump-pre.sh

然后写下面的脚本:

# cat /var/crash/scripts/kdump-pre.sh
#!/bin/bash

# file /var/crash/scripts/kdump-pre.sh

cd /sysroot/var/crash

id=$(ls vmcore.* | cut -d . -f 2 | tail -1)

if [[ -z $id ]]; then
        id=0
else
        id=$((id+1))
fi

cp /proc/vmcore /sysroot/var/crash/vmcore.$id

重新启动kdump:

# systemctl restart kdump

新生成的initramfs会包含这个新脚本:

# lsinitrd /boot/initramfs-4.13.0-rc5+kdump.img | grep kdump-pre
-rwxr-xr-x   1 root     root          286 Oct 12 21:14 var/crash/scripts/kdump-pre.sh

如果var是单独的LV的话,用下面的脚本:

#!/bin/bash

# file /var/crash/scripts/kdump-pre.sh

mount /dev/fedora/var /sysroot

cd /sysroot/crash

id=$(ls vmcore.* | cut -d . -f 2 | tail -1)

if [[ -z $id ]]; then
        id=0
else
        id=$((id+1))
fi

cp /proc/vmcore /sysroot/crash/vmcore.$id

如果内存太大的话,copy会花很长时间,如果你要fix的bug经常panic的话,可以限制内存大小

在文件"/etc/default/grub"中添加mem=32G

GRUB_CMDLINE_LINUX="rd.lvm.lv=fedora/root rd.lvm.lv=centos/swap rd.lvm.lv=fedora/swap crashkernel=256M intel_iommu=on biosdevname=0 pci=realloc mem=32G"

然后运行下面的function,重新生成grub.cfg


grub ()
{
    set -x;
    [[ $# == 0 ]] && kernel=0 || kernel=$1;
    file=/etc/default/grub;
    sudo sed -i '/GRUB_DEFAULT/d' $file;
    sudo echo "GRUB_DEFAULT=$kernel" >> $file;
    sudo grub2-mkconfig -o /boot/grub2/grub.cfg;
    set +x;
    sudo cat $file
}

这样kernel每次panic就会生成如下文件:

/var/crash/vmcore.0, vmcore.1, vmcore.2 等等

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值