fsck は元の名前です。彼らが新しいファイル システムを発表したとき、それぞれに特定のツールが必要でした。ext には efsck、ext2 には e2fsck、dosfsck、fsckvfat です。そこで、適切なツールを呼び出すだけのフロント エンドを fsck にしました。
fsck ファイルシステム固有の fsck.* のラッパーです。 ツールのファミリー。これらは、(fsck マンページからの) 1 つの警告で互換的に使用できます:
<ブロック引用>fsck が認識しないオプションは、ファイルシステム固有のチェッカーに渡されます。 どの引数がオプションを使用し、どの引数がオプションを使用しないかを fsck が適切に推測できる方法がないため、searguments は引数を取ってはなりません。
-- に続くオプションと引数は、ファイル システム固有のチェッカーに渡されるファイル システム固有のオプションとして扱われます。
fsck は、任意に複雑なオプションをファイルシステム固有のチェッカーに渡すようには設計されていないことに注意してください。 複雑なことをしている場合は、ファイル システム固有のチェッカーを直接実行してください。 fsck に非常に複雑なオプションと引数を渡し、それが期待どおりに動作しない場合は、バグとして報告しないでください。fsck で行うべきではないことを行っていることはほぼ確実です。
ただし、fsck はファイル システムでの通常の操作のほとんどを処理します。
私のシステムでは:
fsck
fsck.ext2
fsck.ext3
fsck.ext4
e2fsck
- ... (さらに
fsck.*
他の非 ext ファイルシステム用のツール)
これらはいずれもシンボリック リンクではありませんが、e2fsck
です。 そして fsck.ext2/3/4
ツールはすべて同じ inode を共有するため、実際には同じファイルです。 (このバイナリは、実行時に独自の名前を調べて、呼び出された名前に対して異なる動作をする可能性がありますが、これが事実であるとは思えません。)
これで、ツールは 2 つになりました。
fsck
e2fsck
そして、他の人が言ったように、fsck
問題のファイルシステム (この場合は e2fsck
) に適したツールを呼び出すフロント エンドです。 ext ファミリー ファイルシステム用。
さまざまな fsck.ext2/3/4
を持つ理由を推測します ファイルは、1.すべてのファイルシステムタイプを一般的に処理できるスクリプトを簡単に作成できるため(ファイルシステムタイプからfsckツール名を簡単に推測できます)、2.柔軟性のために、e2fsckを2つ以上に分割するのが簡単です将来、必要に応じて独立したツール。