有没有办法从正在运行的系统确定内核标志的编译时状态?

有没有办法从正在运行的系统确定内核标志的编译时状态?

我有一个正在运行的内核,我正在尝试确定它是否是在编译时支持 BTRFS 扩展属性的。有没有办法确定正在运行的内核的编译标志?

答案1

如果内核是使用 CONFIG_IKCONFIG_PROC 编译的,则原始 .config 位于/proc/config.gz

因此,在这种情况下要查看完整选项:

zcat /proc/config.gz

使用内核 4.5.2 和 BTRFS 检查我的 Armbian/Jessie:

$zgrep -i btrfs /proc/config.gz 
CONFIG_BTRFS_FS=y
CONFIG_BTRFS_FS_POSIX_ACL=y
# CONFIG_BTRFS_FS_CHECK_INTEGRITY is not set
# CONFIG_BTRFS_FS_RUN_SANITY_TESTS is not set
# CONFIG_BTRFS_DEBUG is not set
# CONFIG_BTRFS_ASSERT is not set

内核/IKCONFIG 支持

答案2

看一下sysctl。可用于查询和设置内核参数。

sudo sysctl -a将显示所有当前值。

相关内容