我意外删除了在中找到的内核配置文件/boot
。所以我有两个问题。
这会不会对系统造成影响?
我现在正在尝试编译 Linux 内核,并希望使用 Ubuntu 配置文件并在其基础上进行构建,那么在哪里可以获取有效的配置文件?
我在使用内核 3.13 的 Ubuntu 14.04 LTS 上
答案1
对于软件包提供的文件,您可以随时查找哪个软件包提供了这些文件,然后重新安装该软件包或下载软件包文件并提取文件。找到的配置文件/boot
由软件包提供linux-image-*
:
$ dpkg -S /boot/config-3.13.0-26-generic
linux-image-3.13.0-26-generic: /boot/config-3.13.0-26-generic
请注意配置文件的名称都遵循以下模式config-$(uname -r)
: 。uname -r
是内核版本,看起来像3.13.0-26-generic
。 由于dpkg
存储了有关哪些当前安装的软件包添加了哪些文件的信息,因此只要这些软件包存在,甚至可以查找已删除的文件。 因此您可以执行以下操作:
dpkg -S /boot/config-$(uname -r)
这可能会显示该文件的所有者是linux-image-$(uname -r)
。然后重新安装该内核包:
sudo apt-get install --reinstall linux-image-$(uname -r)
或者下载软件包并手动提取:
apt-get download linux-image-$(uname -r)
ar x linux-image-$(uname -r)*.deb
tar -xf data.tar.* ./boot/config-$(uname -r)
现在配置文件将位于boot/
您解压它的目录中。
答案2
我认为配置文件现在对系统没有任何影响。
它仅用于构建内核映像和模块。也许,当你构建新的内核模块时,可以参考该配置文件。
由于读取配置文件,您可以查看内核包含的或动态加载的或未使用的模块。
例如,在配置文件中,
CONFIG_EXT3_FS=y
ext3fs 模块嵌入在内核映像中。
CONFIG_EXT3_FS=m
ext3fs 模块没有嵌入在内核镜像中,但是有运行时模块加载。
CONFIG_EXT3_FS=n
内核中没有使用 ext3fs 模块。