2011-05-23 10:49:38 +0000 2011-05-23 10:49:38 +0000
118
118

現在実行中の Linux システムからカーネルの設定を取得しますか?

Linux上のカーネル設定用の.configを誤って削除してしまったのですが、procファイルシステム経由でカーネル設定を取得する方法があったように記憶しています。

これはまだ可能なのでしょうか、もし可能ならどのようにすればいいのでしょうか?

回答 (6)

118
118
118
2011-05-23 10:51:41 +0000

お使いのシステムにもよりますが、この中のどれかに入っています。

  1. /proc/config.gz
  2. /boot/config
  3. /boot/config-$(uname -r)

と、おそらくもっと多くの場所にあります。

57
57
57
2013-01-18 08:34:10 +0000

実際に動作しているカーネルの場合、設定ファイルを取得する一つの方法は、

cat /proc/config.gz | gunzip > running.config

または、

zcat /proc/config.gz > running.config

running.configに動作しているlinuxカーネルの設定が含まれています。

ただし、これは実行中のlinuxカーネルが/proc/config.gzを持つように設定されている場合にのみ可能です。この設定は

  • General setup
  • [*] Kernel .config support
  • [*] Enable access to .config through /proc/config.gz
  • /boot/

にあります。ほとんどのディストリビューションでは、カーネルパッケージの中にカーネル設定ファイルを提供しており、通常は 0x6& ディレクトリにあります。

39
39
39
2015-12-11 09:51:33 +0000

少し遅れましたが、誰かの役に立てるかもしれません。私のコンピュータには/proc/config.gz/boot/config/boot/config-$(uname -r)modprobe configsもありませんでした。私は/proc/config.gzをrootで実行しなければなりませんでした。すると、0x6&が存在していました。

9
9
9
2016-09-23 16:33:31 +0000

カーネルの設定が /boot/ や /proc/config.gz に見つからない場合は、カーネル自身から設定情報を抽出してみてください。

カーネルのソースコードの中には、scripts/extract-ikconfig にある設定を抽出するためのスクリプトがあります。

この解決策は、コンパイルされたカーネルで Kernel .config support が有効になっている場合にのみ動作します。

6
6
6
2018-12-28 02:32:15 +0000

ディストリビューションとは無関係に、実行することができます。cat /lib/modules/$(uname -r)/build/.config

ソース。 https://linux.die.net/man/5/proc (/proc/configを検索)。

1
1
1
2019-09-15 18:53:43 +0000

RedHat ベースのディストリビューションでは、市販のカーネルの .config ファイルはコマンド cat /lib/modules/$(uname -r)/build/.config で見つけることができますが、これはコマンドを使って kernel-devel パッケージをインストールした後に利用できます。

yum -y install kernel-devel

real Red Hat Enterprise Linux ディストリビューションでは、このパッケージを取得するためにソースリポジトリを有効にする必要があることに注意してください。RHEL8 では、以下のコマンドを使用してこれを行います。

subscription-manager repos --enable=rhel-8-for-x86_64-baseos-source-rpms

関連する質問

6
10
5
37
6