gpt4 book ai didi

c - 在已编译的 Linux 内核上启用 kdump

转载 作者:太空宇宙 更新时间:2023-11-04 00:04:36 25 4
gpt4 key购买 nike

如何在已更改的 Linux 内核上获取核心转储?

我正在运行一个 Ubuntu 14.04 虚拟机,4G 内存,4 核,编译并安装了 3.18 内核。

BOOT_IMAGE=/boot/vmlinuz-3.18.7+ root=UUID=4a45cb37-0577-4307-bfc5-da80ee9097db ro crashkernel=384M-:128M

user@dhcp194:~/source/nfs4tc$ sudo kdump-config test USE_KDUMP:
1 KDUMP_SYSCTL: kernel.panic_on_oops=1 KDUMP_COREDIR:
/var/crash crashkernel addr: 0x30000000 kdump kernel addr: relocatable kdump kernel: /boot/vmlinuz-3.18.7+ kdump initrd: /boot/initrd.img-3.18.7+ kexec command to be used: /sbin/kexec -p --command-line="BOOT_IMAGE=/boot/vmlinuz-3.18.7+ root=UUID=4a45cb37-0577-4307-bfc5-da80ee9097db ro irqpoll maxcpus=1 nousb" --initrd=/boot/initrd.img-3.18.7+ /boot/vmlinuz-3.18.7+

kdump-load 抛出一个错误。

user@dhcp194:~/source/nfs4tc$ sudo kdump-config load Could not find a free area of memory of 0x9521000 bytes... locate_hole failed * failed to load kdump kernel

系统日志片段:

/var/log/syslog.1:Apr 3 17:30:23 dhcp194 kdump-tools: failed to load kdump kernel /var/log/syslog.1:Apr 3 17:58:12 dhcp194 kdump-tools: failed to load kdump kernel /var/log/syslog.1:Apr 3 19:39:09 dhcp194 kdump-tools: failed to load kdump kernel

它在全新安装的 VM 中工作,但在更改内核后它不会。我使用默认的 .config 文件进行内核编译。有什么帮助吗?

最佳答案

让我们称之为崩溃内核——一个 kdump 必须加载的内核,以及系统内核——你的主机内核。

  1. 在您的系统内核中启用 CONFIG_KEXEC
  2. 在您的系统内核引导加载程序中,必须将 crashkernel=YM@X 字符串传递给您的系统内核 cmd 行(在您的情况下可能通过 atags),其中 Y 是为您的崩溃内核保留的空间(以 MB 为单位),X 是物理地址crashkernel 所在的位置。

要检查 2. 您可以查看/proc/iomem。如果其中没有“崩溃内核”部分,则说明出了问题。接下来 ... 在 kexec 实用程序中使用 -d 选项进行详细模式

关于c - 在已编译的 Linux 内核上启用 kdump,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29448158/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com