カーネルがサポートできるファイルシステムを検出しようとしています。理想的には彼らの名前の小さなリストにありますが、あなたが持っているものは何でも取ります。
使用中の現在のファイルシステムではなく、現在のカーネルが理論的に直接サポートできるものだけではないことに注意してください(明らかに、fuse は無限の数をサポートできます)。
カーネルがサポートできるファイルシステムを検出しようとしています。理想的には彼らの名前の小さなリストにありますが、あなたが持っているものは何でも取ります。
使用中の現在のファイルシステムではなく、現在のカーネルが理論的に直接サポートできるものだけではないことに注意してください(明らかに、fuse は無限の数をサポートできます)。
回答:
実行中のカーネルがサポートできるファイルシステムをリストできますか?
まあ、答えは /proc/filesystems
:それはすでに使用させられるのみFSesを反映しているが、通常の方法よりそこにいる-単に間違っています
ls /lib/modules/$(uname -r)/kernel/fs
別のソースは/proc/config.gz
、あなたのディストリビューションに存在しないかもしれません(そして私はいつも«なぜ?!»の場合は疑問に思う)。
/proc/filesystems
それは間違っていません、それは単に不完全です。
/lib/modules/$(uname -r)/kernel/fs
カーネルに組み込まれているファイルシステムではなく、モジュールとして有効になっているファイルシステムでのみ役立ちます。さらに、モジュール名が提供するファイルシステム名と一致しない場合があり、単一のモジュールで複数のファイルシステムを提供できます。
/proc/config.gz
。1)存在が保証されていない、2)モジュール名が提供するファイルシステム名と一致しない可能性があり、単一のモジュールが複数のファイルシステムを提供できる。
/proc/filesystems
nodev
たとえば、実行中のカーネルでサポートされているすべてのファイルシステムタイプとファイルシステム属性をリストし、このファイルシステムがブロックデバイスなどによってサポートされていないことを示します。
man 5 filesystems
さらに詳細な情報を提供します。
nodev
出力の意味は何cat /proc/filesystems
ですか?
cat /proc/filesystems
は、明らかに特別な目的のファイルシステムに加えて、ext2、ext3、ext4の「nodev」が多数リストされています。を見ると/lib/modules/3.11.6-1-ARCH/kernel/fs
、「fats」、「btrfs」、「reiserfs」など、他の多くのものがありますが、これらも通常のオンディスクファイルシステムですが、/proc/filesystem
リストには表示されません。どうしたの?
nodev
問題のファイルシステムは、ブロックデバイスを必要とする物理ファイルシステムではなく、ブロックデバイス以外の何かによってバッキングされる仮想ファイルシステムであることを示します。
/proc/filesystems
カーネルがロードしたファイルシステムのみを表示します-それらのモジュールをカーネルに挿入するまで(通常、必要なときに自動的に行われます)、カーネルはそれらのファイルシステムをサポートできません。
私はこれがあなたが望むものをあなたに与えると信じています:
(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
、ディストリビューションに適した別のディレクトリにパスを変更する必要があると思います。
/boot/config-$(uname -r)