web-dev-qa-db-ja.com

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

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

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

27
Oli

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

answer _/proc/filesystems_は単純に間違っています。これは、すでに使用されているFSのみを反映していますが、通常はさらに多くの方法があります。

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

もう1つのソースは_/proc/config.gz_で、これはディストリビューションには存在しない可能性があります(常に「なぜ?!」となるのではないかと思います)。

13
poige

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

man 5 filesystemsは、さらに詳しい情報を提供します。

11
Chris Down

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

_(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をディストリビューションに適した別のディレクトリに変更する必要があると考えています。

0
Chris Magnuson