从当前运行的Linux系统中获取内核配置?
我在Linux上不小心删除了我的内核配置的.config,似乎记得有一种方法可以通过proc文件系统以某种方式检索内核配置。
现在还可以这样做吗,如果可以,怎么做?
我在Linux上不小心删除了我的内核配置的.config,似乎记得有一种方法可以通过proc文件系统以某种方式检索内核配置。
现在还可以这样做吗,如果可以,怎么做?
对于一个实际运行的内核,获取配置文件的一个方法是
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/
大多数发行版都没有这个配置。他们在内核包中提供内核配置文件,通常在0x6&目录下。
有点晚了,但也许能帮到别人。我的电脑上没有/proc/config.gz
也没有/boot/config
也没有/boot/config-$(uname -r)
。我必须以root身份运行modprobe configs
。然后,/proc/config.gz
就出现了
独立于发行版,你可以运行。cat /lib/modules/$(uname -r)/build/.config
Source: https://linux.die.net/man/5/proc (搜索/proc/config
)。
对于基于RedHat的发行版,现成内核的.config文件可以用命令cat /lib/modules/$(uname -r)/build/.config
找到,在使用命令安装包kernel-devel之后就可以得到。
yum -y install kernel-devel
注意,如果是真正的Red Hat Enterprise Linux发行版,你需要启用源码库才能得到这个包。在 RHEL8 上,使用下面的命令来实现。
subscription-manager repos --enable=rhel-8-for-x86_64-baseos-source-rpms