从当前运行的 Linux 系统获取内核配置?

从当前运行的 Linux 系统获取内核配置?

我意外删除了 Linux 上内核配置的 .config,但似乎记得有一种方法可以通过 proc 文件系统检索内核配置。

这仍然可能吗?如果可能,我该怎么做?

答案1

根据您的系统,您可以在以下任何一个中找到它:

  1. /proc/config.gz
  2. /boot/config
  3. /boot/config-$(uname -r)

甚至可能更多地方。

答案2

对于实际运行的内核,获取配置文件的一种方法是

cat /proc/config.gz | gunzip > running.config

或者,

zcat /proc/config.gz > running.config

然后running.config将包含正在运行的Linux内核的配置。

然而,这只有在你运行的 Linux 内核配置为 时才有可能/proc/config.gz。此配置位于

  • General setup
    • [*] Kernel .config support
      • [*] Enable access to .config through /proc/config.gz

大多数发行版没有此配置集。它们在内核包中提供内核配置文件,通常位于/boot/目录中。

答案3

有点晚了,但也许对某些人有帮助。我的电脑上没有。/proc/config.gz我必须以 root 身份运行。然后,出现了/boot/config/boot/config-$(uname -r)modprobe configs/proc/config.gz

答案4

如果您在 /boot/ 或 /proc/config.gz 中找不到内核配置,您可以尝试从内核本身提取此信息。

在任何内核源代码中都有一个用于提取配置的脚本scripts/extract-ikconfig,将您想要其配置的内核作为参数传递给该脚本。

Kernel .config support只有在编译的内核中启用该解决方案才会起作用。

相关内容