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

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

カーネルがサポートできるファイルシステムを検索しようとしています。名前を一覧表示する方が良いですが、あなたが持っているすべてを取るでしょう。

私の言葉はそうではありません。現在使用中のファイルシステム、現在カーネルが理論的に直接サポートできるもの(明らかに回路遮断器)できる無制限のサポート)。

答え1

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

素晴らしい、回答 /proc/filesystems明らかに間違っています。すでに使用されているFSのみが反映されますが、カーネルは通常より多くをサポートできます。

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

/proc/config.gzディストリビューションに他のソースがない可能性があります(ただし、常に「なぜ?!」と思われます)、カーネルを構築するために使用される設定スナップショットは、通常、カーネルイメージとinitrdイメージとともにブートディレクトリにあります。

答え2

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

man 5 filesystemsより詳細な情報が提供されます。

答え3

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

(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)。

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

答え4

長すぎます。

cat /proc/filesystems実行中のカーネルがサポートできるファイルシステムが表示されます。

ls /lib/modules/$(uname -r)/kernel/fs適切なモジュールをロードすると、そのモジュールがサポートできる追加のファイルシステムの手がかりを得ることができます。

説明する

質問持つ答えを受けましたが、他のすべての答えは、ある意味で不完全であるか、誤解を招くか、本当ではない、または少なくとももはや本当ではありません。

man 8 mount(ハイライト内)から:

-t、--types fsタイプ

-tの後のパラメータは、ファイルシステムの種類を示すために使用されます。現在サポートされているファイルシステムの種類は、実行しているカーネルによって異なります。ファイルシステムの完全なリストについては、/proc/filesystems および /lib/modules/$(uname -r)/kernel/fs を参照してください。最も一般的なのは ext2、ext3、ext4、xfs、btrfs、vfat、sysfs、proc、nfs、cifs です。

だから、この方法を提案する人を責めることはできません。しかし、他の人が指摘したように、この/lib/modules/$(uname -r)/kernel/fsディレクトリにはファイルシステム関連が含まれています。カーネルモジュール、これは現在サポートされているファイルシステムとは異なります。

  • モジュールがロードされない場合、現在のファイルシステムはサポートされていません。
  • サポートがカーネルに組み込まれている場合、ファイルシステムはサポートされますが、モジュールリストには表示されません。
  • モジュール名がサポートされているファイルシステムに1:1にマッピングされるという保証はありません。

したがって、リストには追加、削除、および/または置換を含めることができます。これはあまり信頼できません。すでにすべてが組み込まれているいわゆる「モノリシックカーネル」があるかもしれません。この場合(明らかに珍しい場合)、モジュールのリストは完全に空ですが、カーネルはさまざまな機能を含む多くのものをサポートしています。ファイルシステム

一方、これは私/proc/filesystemsのファイルの内容です。

nodev   sysfs
nodev   tmpfs
nodev   bdev
nodev   proc
nodev   cgroup
nodev   cgroup2
nodev   cpuset
nodev   devtmpfs
nodev   binfmt_misc
nodev   configfs
nodev   debugfs
nodev   tracefs
nodev   securityfs
nodev   sockfs
nodev   bpf
nodev   pipefs
nodev   ramfs
nodev   hugetlbfs
nodev   rpc_pipefs
nodev   devpts
        ext3
        ext4
        ext2
        cramfs
        squashfs
        vfat
        msdos
        exfat
        iso9660
nodev   nfs
nodev   nfs4
nodev   nfsd
nodev   cifs
nodev   smb3
        ntfs3
nodev   autofs
        fuseblk
nodev   fuse
nodev   fusectl
        udf
        f2fs
nodev   efivarfs
nodev   mqueue
nodev   resctrl
        btrfs
nodev   pstore

このリストには、現在インストールされているだけでなく、私のシステムに見たこともないいくつかのファイルシステムがあります。

少なくとも私のシステムではこれが答えです。理由がわからない現在承認されている回答反対の結論に達すると、おそらくこれは新しい進歩です。

関連情報