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?
Super User is a question and answer site for computer enthusiasts and power users. It only takes a minute to sign up.
Sign up to join this communityDepending on your system, you'll find it in any one of these:
/proc/config.gz
/boot/config
/boot/config-$(uname -r)
and possibly more places.
/boot/config
. I'll go ahead and add these to the list - thanks for reminding me.
May 23, 2011 at 20:15
zgrep CONFIG_OPTION /proc/config.gz
if you want to search for a specific option without unzipping a copy of the config file.
Sep 25, 2020 at 6:34
For an actual running kernel, one way to get the config file this is to
cat /proc/config.gz | gunzip > running.config
or,
zcat /proc/config.gz > running.config
Then 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
General setup
[*] 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 /boot/
directory.
CONFIG_IKCONFIG
and CONFIG_IKCONFIG_PROC
, if you're grepping for them.
Mar 26, 2015 at 18:34
zless
worked
Jan 22, 2021 at 21:24
A Little bit late but maybe it helps someone. I didn't have /proc/config.gz
nor /boot/config
nor /boot/config-$(uname -r)
on my Computer. I had to run modprobe configs
as root. Then, /proc/config.gz
was present
FATAL: Module configs not found.
on OMV 2.2 (Debian Wheezy) so glad they provided it in /boot/config-$(uname -r)
Regardless of the distribution, you can run: cat /lib/modules/$(uname -r)/build/.config
Source: proc(5) man page (search for /proc/config.gz
).
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.
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
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
zcat /proc/config.gz
# Or if you are looking for whether a specific option was set
zgrep USBIP /proc/config.gz
Run modprobe configs
as root to create /proc/config.gz
After that zcat /proc/config.gz > /boot/config-$(uname -r)
to list config of the kernel.
Jun 27 '11 at 16:19
. Don't think he's going to be accepting anything.