我非常确定所有基于 Red Hat 和 Debian 的发行版都遵循在 中传送内核配置的约定/boot/config-*
,但其他发行版又如何呢?或者,如果这个约定非常常见,那么哪些发行版不跟着它?
答案1
Debian 及其衍生产品(Ubuntu、Linux Mint 等)
内核的配置存储在.这两个文件位于同一个包中,或者./boot/vmlinuz-VERSION
/boot/config-VERSION
linux-VERSION
kernel-VERSION
Arch Linux、Gentoo(如果启用)
正在运行的内核的配置存储在内核二进制文件中,可以使用 检索zcat /proc/config.gz
。
CONFIG_IKCONFIG
当编译内核时设置该选项时,该文件就存在- 所以可以是 true(或不)无论发行版如何,尽管两个指定的默认内核配置确实启用了它。
顺便说一句,arch linux的默认配置没有命名内核(或其 initramfs 映像)按版本甚至在/boot
- 那里的文件仅以其相应的包命名。例如,典型的 arch linux 启动内核的命名位置为/boot/vmlinuz-linux
Linux的是为默认内核安装的软件包。
答案2
Linux 内核源代码带有一个安装机制,make install
.这会将文件安装到 /boot (vmlinuz-版本, 系统.map-版本,和配置-版本)。
使正在运行的内核的配置可用的选项/proc/config.gz
也是内核的一部分,因此如果启用此配置选项后,文件将存在于/proc
文件系统中。如今,几乎所有发行版都启用了此功能,甚至 Android 内核也是如此,因此,这是最标准的位置。
不过,这两个位置都不依赖于分布。许多发行版在打包时都利用“默认”位置,因为以这种方式准备包可能很方便,但即使在单个发行版中,非标准内核包也可能将文件放在其他地方,或者以不同的方式命名它们,尽管这不太可能。