私が知る限り、Linuxにはすべてのファイルシステムの抽象化レイヤがあります。仮想FS。新しいファイルシステムを作成する場合は、VFSで設定した規則に従う必要があります("Linux仮想ファイルシステムスイッチの分析「詳細はこちら」。この新しいファイルシステムを作成したら、ディレクトリ階層にマウントします。しかし、ここで質問があります。
実際、Linuxには多くのファイルシステムがあります。そのうちのいくつかはインストールされ、コマンドとして見つけることができmount
、一部はインストールされていませんが、いつでもインストールできます。これらの削除された履歴はオペレーティングシステムのどこかに記録されていますか?私は問題に関連する可能性がある/etc/fstab
2つのファイルがあることを知っていますが、/etc/filesystems
わかりません。
答え1
現在、アンマウントされたファイルシステムにアクセスできません。プライマリデバイスに直接アクセスする(ローカルディスクに保存されているファイルシステムの場合)、他のコンピュータからアクセスする(ネットワークファイルシステムの場合)など、間接的な方法で変更できます。ただし、それ以上マウント解除されたファイルシステムは、オペレーティングシステムに関する限り存在しません。ネットワークファイルシステム(および他のファイルシステム)の存在を考慮すると、マウントされていないファイルシステム(すべてのディレクトリ内のすべてのディレクトリ)が無限に供給されます。
このファイルを/etc/fstab
コマンドの設定ファイルと見なしてくださいmount
。これには、一致する行を呼び出すか検索mount /path/to/mount/point
しmount /dev/device_name
、デバイス名またはマウントポイント、ファイルシステムタイプ、およびマウントオプションを使用してコマンドラインを完成させるためのショートカットが含まれています。項目にこのオプションがある場合、すべてのユーザーはその項目(通常はrootユーザー用に予約されています)に対してコマンドを呼び出すことができます。mount
/etc/fstab
user
mount
mount
また、/etc/fstab
起動時にインストールされたファイルシステムが一覧表示されます。このオプションがないこのファイルのすべてのエントリは、提供されたnoauto
オプションを使用して起動時にインストールされます。通常、ブートスクリプトによってマウントされているこのドキュメントに記載されていない他のファイルシステムがあります(通常のLinuxシステムでは、、、、/dev
などが/dev/pts
含まれます)。/proc
/sys
/etc/filesystems
ファイルシステムの種類を渡さない場合、または渡すときに動作をカスタマイズできる、Linux ではほとんど使用されないマウント機能ですauto
。このファイルが存在しない場合、マウントはにリストされているファイルシステムタイプを試みます/proc/filesystems
。ファイルシステムタイプは順番に試行されます。最初の項目がマウントに失敗した場合、mount
2番目の項目が試行される式です。
答え2
短い答えはわからないということです。
しかし、ヒントを与える方法もあります。歴史的に、これは次のように達成されました。パーティションテーブルのラベル固定ディスク。しかし、これはまだその中にあるファイルシステムのヒントです。いくつかのツールはこのヒントに依存しています(例:mkfs - mkfs.umsdos、mkfs.ext3、mkfs.reiserfs...の簡単なフロントエンド)。
もう1つのアプローチは、rawパーティションからバイトを読み取ってファイルシステムの種類をスニッフィングすることです(マウントは、さまざまなMSDOS互換タイプから選択するためにこれを行います)。または、既知のデバイス識別子にファイルシステムデータベースを保持します。
ファイルシステムの多様性を考慮すると、常に正確で統一されたアプローチはありません。
したがって、システムは管理者が使用するように指示したファイルシステムタイプ(または少なくともシリーズ)を使用します。