題 從當前運行的Linux系統獲取內核配置?


我不小心在Linux上刪除了我的內核配置的.config,似乎記得有一種方法可以通過proc文件系統以某種方式檢索內核配置。

這仍然是可能的,如果是這樣,我該怎麼做?


93
2018-05-23 10:49


起源


@Sonny Ordell:現在有兩個有效答案。你能接受其中一個嗎? - Hennes
@Hennes User從此沒有上過線 Jun 27 '11 at 16:19。不要以為他會接受任何事情。 - DanteTheEgregore
superuser.com/questions/577307/... || askubuntu.com/questions/163304/... || stackoverflow.com/questions/14376540/... || unix.stackexchange.com/questions/83319/... || serverfault.com/questions/51032/... - Ciro Santilli 新疆改造中心 六四事件 法轮功


答案:


根據您的系統,您可以在以下任何一個系統中找到它:

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

可能還有更多的地方。


93
2018-05-23 10:51



在某些發行版(Fedora / Redhat)上,它是/boot/config-2.6.18-194.el5或類似的,附加了內核發行字符串。 - Phil
@Phil我運行一個發行版(Zenwalk),其中這些文件名由最新的內核包進行符號鏈接 /boot/config。我會繼續將這些添加到列表中 - 感謝提醒我。 - new123456
在/ boot / config - $(uname -r)為amazon linux和可能RHEL - aeb0
在Ubuntu Mate或Kali Linux for RaspBerry Pi上不存在此類文件。 - Sopalajo de Arrierez
您應該提到您的第一個項目(/ proc)僅在加載模塊“configs”時可用 - Andy


對於實際運行的內核,獲取配置文件的一種方法是

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/ 目錄。


50
2018-01-18 08:34



這些被稱為 CONFIG_IKCONFIG 和 CONFIG_IKCONFIG_PROC如果你正在為他們打招呼。 - chronospoon
zcat /proc/config.gz 工作良好。 - Quanlong


有點晚了但也許它可以幫助別人。我沒有 /proc/config.gz 也不 /boot/config 也不 /boot/config-$(uname -r) 在我的電腦上。我不得不跑 modprobe configs 作為根。然後, /proc/config.gz 在場


30
2017-12-11 09:51



可以在Intel MIC嵌入式Linux(BusyBox)上確認,這是必要且有效的。 - Mark Lakata
Raspberry Pi 2上的Raspbian也是如此 - Drew McGowen
FATAL: Module configs not found. 在OMV 2.2(Debian Wheezy)很高興他們在/ boot / config中提供它 - $(uname -r) - tuk0z
先生,救了我的一天。有一個+1 - Christian


如果在/ boot /或/proc/config.gz中找不到內核配置,可以嘗試從內核本身提取此信息。

在任何內核源代碼中都有一個用於解壓縮配置的腳本 scripts/extract-ikconfig,將您希望其配置作為參數的內核傳遞給此腳本。

此解決方案僅適用於 Kernel .config support 已在編譯的內核中啟用。


7
2017-09-23 16:33



這非常有幫助,並幫助我獲得了許多我從未想過會看到的配置。謝謝! - selurvedu