実行中のカーネルがサポートできるファイルシステムをリストできますか?


27

カーネルがサポートできるファイルシステムを検出しようとしています。理想的には彼らの名前の小さなリストにありますが、あなたが持っているものは何でも取ります。

使用中の現在のファイルシステムではなく、現在のカーネルが理論的に直接サポートできるものだけはないことに注意してください(明らかに、fuse 無限の数をサポートできます)。

回答:


12

実行中のカーネルがサポートできるファイルシステムをリストできますか?

まあ、答えは /proc/filesystems:それはすでに使用させられるのみFSesを反映しているが、通常の方法よりそこにいる-単に間違っています

ls /lib/modules/$(uname -r)/kernel/fs

別のソースは/proc/config.gz、あなたのディストリビューションに存在しないかもしれません(そして私はいつも«なぜ?!»の場合は疑問に思う)。


2
Ubuntuのカーネル構成は、別の場所に含まれています/boot/config-$(uname -r)
。– Oli

2
/proc/filesystemsそれは間違っていませ、それは単に不完全です。
scai

3
@poigeその論理により、あなたの答えもひどく不完全で間違っています。/lib/modules/$(uname -r)/kernel/fsカーネルに組み込まれているファイルシステムではなく、モジュールとして有効になっているファイルシステムでのみ役立ちます。さらに、モジュール名が提供するファイルシステム名と一致しない場合があり、単一のモジュールで複数のファイルシステムを提供できます。
パトリック

4
この答えは誤解を招きます。モジュールがロードされていない場合、カーネルはそのファイルシステムタイプをロードするまでロードできません。カーネルがロードできると述べるのは正しくありません。モジュールを正常にロードするまで、カーネルがロードできるかどうかはわかりません。そのモジュールロードできるという保証すらありません。
クリスダウン

3
@poigeは実際、私はまったく見落としていません/proc/config.gz。1)存在が保証されていない、2)モジュール名が提供するファイルシステム名と一致しない可能性があり、単一のモジュールが複数のファイルシステムを提供できる。
パトリック

11

/proc/filesystemsnodevたとえば、実行中のカーネルでサポートされているすべてのファイルシステムタイプとファイルシステム属性をリストし、このファイルシステムがブロックデバイスなどによってサポートされていないことを示します。

man 5 filesystems さらに詳細な情報を提供します。


1
あなたがnodev出力の意味は何cat /proc/filesystemsですか?
slm

私のArch linuxラップトップでcat /proc/filesystemsは、明らかに特別な目的のファイルシステムに加えて、ext2、ext3、ext4の「nodev」が多数リストされています。を見ると/lib/modules/3.11.6-1-ARCH/kernel/fs、「fats」、「btrfs」、「reiserfs」など、他の多くのものがありますが、これらも通常のオンディスクファイルシステムですが、/proc/filesystemリストには表示されません。どうしたの?
ブルースエディガー

1
nodev問題のファイルシステムは、ブロックデバイスを必要とする物理ファイルシステムではなく、ブロックデバイス以外の何かによってバッキングされる仮想ファイルシステムであることを示します。
ジョナサンカレン

5
@BruceEdiger:/proc/filesystemsカーネルがロードしたファイルシステムのみを表示します-それらのモジュールをカーネルに挿入するまで(通常、必要なときに自動的に行われます)、カーネルはそれらのファイルシステムをサポートできません。
ジョナサンカレン

0

私はこれがあなたが望むものをあなたに与えると信じています:

(cat /proc/filesystems | awk '{print $NF}' | sed '/^$/d'; ls -1 /lib/modules/$(uname -r)/kernel/fs) | sort -u

説明

私の最高の理解に基づいて:

  • cat /proc/filesystems | awk '{print $NF}' | sed '/^$/d' カーネルモジュールが現在ロードされているファイルシステムと共に、カーネル(sysfsなど)によってネイティブにサポートされているすべてのファイルシステムを提供します
  • ls -1 /lib/modules/$(uname -r)/kernel/fs カーネルで使用可能なファイルシステムモジュールのリストを提供します
  • sort -u 最初の2つのコマンドの結果を組み合わせて、重複を削除してソートします(固有の結果-uのみを表示)

私はまだLinuxを学んでおり、これはArch Linuxで動作しますが、少なくともubuntuの場合は/lib/modules/$(uname -r)/kernel/fs、ディストリビューションに適した別のディレクトリにパスを変更する必要があると思います。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.