Linuxはファイルシステムをどのように追跡しますか?

Linuxはファイルシステムをどのように追跡しますか?

私が知る限り、Linuxにはすべてのファイルシステムの抽象化レイヤがあります。仮想FS。新しいファイルシステムを作成する場合は、VFSで設定した規則に従う必要があります("Linux仮想ファイルシステムスイッチの分析「詳細はこちら」。この新しいファイルシステムを作成したら、ディレクトリ階層にマウントします。しかし、ここで質問があります。

実際、Linuxには多くのファイルシステムがあります。そのうちのいくつかはインストールされ、コマンドとして見つけることができmount、一部はインストールされていませんが、いつでもインストールできます。これらの削除された履歴はオペレーティングシステムのどこかに記録されていますか?私は問題に関連する可能性がある/etc/fstab2つのファイルがあることを知っていますが、/etc/filesystemsわかりません。

答え1

現在、アンマウントされたファイルシステムにアクセスできません。プライマリデバイスに直接アクセスする(ローカルディスクに保存されているファイルシステムの場合)、他のコンピュータからアクセスする(ネットワークファイルシステムの場合)など、間接的な方法で変更できます。ただし、それ以上マウント解除されたファイルシステムは、オペレーティングシステムに関する限り存在しません。ネットワークファイルシステム(および他のファイルシステム)の存在を考慮すると、マウントされていないファイルシステム(すべてのディレクトリ内のすべてのディレクトリ)が無限に供給されます。

このファイルを/etc/fstabコマンドの設定ファイルと見なしてくださいmount。これには、一致する行を呼び出すか検索mount /path/to/mount/pointmount /dev/device_name、デバイス名またはマウントポイント、ファイルシステムタイプ、およびマウントオプションを使用してコマンドラインを完成させるためのショートカットが含まれています。項目にこのオプションがある場合、すべてのユーザーはその項目(通常はrootユーザー用に予約されています)に対してコマンドを呼び出すことができます。mount/etc/fstabusermountmount

また、/etc/fstab起動時にインストールされたファイルシステムが一覧表示されます。このオプションがないこのファイルのすべてのエントリは、提供されたnoautoオプションを使用して起動時にインストールされます。通常、ブートスクリプトによってマウントされているこのドキュメントに記載されていない他のファイルシステムがあります(通常のLinuxシステムでは、、、、/devなどが/dev/pts含まれます)。/proc/sys

/etc/filesystemsファイルシステムの種類を渡さない場合、または渡すときに動作をカスタマイズできる、Linux ではほとんど使用されないマウント機能ですauto。このファイルが存在しない場合、マウントはにリストされているファイルシステムタイプを試みます/proc/filesystems。ファイルシステムタイプは順番に試行されます。最初の項目がマウントに失敗した場合、mount2番目の項目が試行される式です。

答え2

短い答えはわからないということです。

しかし、ヒントを与える方法もあります。歴史的に、これは次のように達成されました。パーティションテーブルのラベル固定ディスク。しかし、これはまだその中にあるファイルシステムのヒントです。いくつかのツールはこのヒントに依存しています(例:mkfs - mkfs.umsdos、mkfs.ext3、mkfs.reiserfs...の簡単なフロントエンド)。

もう1つのアプローチは、rawパーティションからバイトを読み取ってファイルシステムの種類をスニッフィングすることです(マウントは、さまざまなMSDOS互換タイプから選択するためにこれを行います)。または、既知のデバイス識別子にファイルシステムデータベースを保持します。

ファイルシステムの多様性を考慮すると、常に正確で統一されたアプローチはありません。

したがって、システムは管理者が使用するように指示したファイルシステムタイプ(または少なくともシリーズ)を使用します。

関連情報