I accidentally deleted my .config for my kernel configuration on Linux, and seem to remember there was a way to retrieve the kernel configuration via the proc filesystem somehow.
Is this still possible, and if so how would I do it?
For an actual running kernel, one way to get the config file this is to
cat /proc/config.gz | gunzip > running.config
zcat /proc/config.gz > running.config
running.config will contain the configuration of the running linux kernel.
However this is only possible if your running linux kernel was configured to have
/proc/config.gz. The configuration for this is found in
[*] Kernel .config support
[*] Enable access to .config through /proc/config.gz
Most distributions do not have this configuration set. They provide kernel config files in their kernel packages and is usually found in
Regardless of the distribution, you can run:
cat /lib/modules/$(uname -r)/build/.config
Source: proc(5) man page (search for
If you couldn't find kernel configuration in /boot/ nor in /proc/config.gz, you can try extracting this information from the kernel itself.
Inside any kernel source code there is a script for extracting config located in
scripts/extract-ikconfig, pass the kernel you want its configuration as parameter to this script.
This solution will only work if
Kernel .config support was enabled in the compiled kernel.
If you can't find any of the suggested files and you are able to
modprobe you should almost always be able to get a copy of the current config this way.
modprobe configs # might need `sudo modprobe configs`
# This will create /proc/config.gz
# Or if you are looking for whether a specific option was set
zgrep USBIP /proc/config.gz
For RedHat-based distributions, the .config file of the off-the-shelf kernel can be found with the command
cat /lib/modules/$(uname -r)/build/.config that's available after the package kernel-devel is installed using the command:
yum -y install kernel-devel
Note that with the real Red Hat Enterprise Linux distribution, you will need to enable the source-repository to get this package. On RHEL8, use the following command to do that:
subscription-manager repos --enable=rhel-8-for-x86_64-baseos-source-rpms