/dev/sda1の代わりに/dev/sdaでfsckを実行するとどうなりますか?

/dev/sda1の代わりに/dev/sdaでfsckを実行するとどうなりますか?

fsck過去に実行したときは、常にファイルシステムパーティションだと思っていた場所で実行しました。fsck -yf /dev/sdaNここで、NはディスクAのパーティション番号です。私の友人は最近fsck新しいディスクを実行しましたfsck -yf /dev/sdafsckディスク全体/dev/sdaで実行すること()と単一パーティションで実行すること()の違いは何ですか/dev/sda1

答え1

fsckが実行されたら、まず場所を見つけようとする必要があります。スーパーブロックファイルシステムの起動は、これを確認するためにファイルシステムの構造を調べます。この/dev/sdaデバイスはドライブ全体に対応するため、ディスクの最初の部分には次のものが含まれます。パーティションテーブルまたはマスターブートレコードfsckサポートされているファイルシステムのスーパーブロックが見つかりません(特定のファイルシステムと一致するものを取得しない限り)。マジックナンバー既知のファイルシステムの場合)。私はそれがエラーで終わるか(あなたの友人が経験しているように)不正確な出力を提供したいと思います。しかし、私はこの実験を直接実行しませんでした。

答え2

sda1たとえば、ファイルシステムがパーティションにマウントされている場合は機能しません。

fsckそしてその兄弟は、ファイルシステムでメンテナンスを実行するために使用されるツールです(したがって、名前は次のとおりです)。FエリーSシステム調査するK)、ブロックデバイスではありません。

同様に、ファイルシステムをブロックデバイスに直接配置することは理論的に可能であると思いますmke2fs -j /dev/sdaが、これは非常に悪い習慣です。しかし、それを行うと、ファイルシステムがその上に配置され、sda実際にfsckfsckそのデバイスを指すだけです。 これをしないでください。。パーティションテーブルが存在する理由は、ディレクトリ内の名目上のスペースを占めるだけではありません。

答え3

デバイスにサポートされているファイルシステムが含まれている場合は、fsckが機能するはずです。デバイスは、ハードドライブ全体(例:/ dev / sda)、パーティションまたはフロッピーディスク(例:/ dev / fd0)、または別のハードドライブ上のファイル(例:〜/ hdimage.img)です。フロッピードライブの場合、通常はドライブ全体が使用されるため、パーティションを分割する理由がないため、ファイルシステムは/ dev / fd0にあります。伝統的に、ハードドライブはパーティションに分割され、ファイルシステムはパーティションに組み込まれています。ただし、ドライブ全体を1つのパーティションとして使用し、ここから起動する必要がない場合は、デバイスから直接ファイルシステムを作成し(mke2fs /dev/sdb)、それをマウントして複数のファイルをコピーできます。その後、fsck / dev / sdbが機能するはずです。これを「スーパーフロッピー」構成といいます。私の考えでは、古いiomega 100MBディスクも通常このようにフォーマットされていたようです。ディスクにはファイルシステムは必要ありません。ファイルがある可能性があります。私はしばしばDVDに入るtarファイルを作成し、ディスクに書き込みます。この時点でディスクはマウントされませんが、tar -xvf some/where/myfile /dev/sr0 はディスクから myfile を抽出します。

関連情報