最上位で実行されているファイルシステムを知らなくても、どの論理ブロックが使用されているのかわかりますか?

最上位で実行されているファイルシステムを知らなくても、どの論理ブロックが使用されているのかわかりますか?

~からこのFAQ:

Clonezillaが機能する理由いいえ大容量ドライブに保存されている画像を小さなドライブに復元しますか?解決策はありますか?

Clonezillaはパーティション「ミラー」ツールなので、これらの機能を実装するのは簡単ではありません。clonezillaは実際にファイル自体を知らず、clonezillaは使用されているブロックがどこにあるのかを知っています。。したがって、Clonezillaがパーティションで使用されていたブロックを回復できるように、ターゲットパーティションサイズは元のパーティションサイズ以上でなければなりません。宛先パーティションのサイズが小さい場合、エラーが発生します。 Clonezillaが将来ファイルベースの機能を持たない限り。おそらく...

私が知る限り、ファイルは1つ以上の隣接ブロック(またはクラスタ)へのポインタのリストです。ファイルシステムについて何も知らない状態で、ソフトウェアはどのブロックが使用されているかをどのように知ることができますか?

答え1

簡単な答え:いいえ。

これはすべてのデータ構造に対応します。データ構造を理解していないと、その中に何も見つかりません。


データ復旧のためにデータ(ドライブ)をスキャンし、データが理解している署名(jpegファイルの先頭など)を取得するツールがあります。例示的なツールは次のとおりです。写真撮影

この技術を使用すると、ソフトウェアはファイルシステムについて何も知らなくてもいくつかのファイルを見つけることができます。しかし、それは混乱して信頼できません。この手法は断片化を正しく処理できず、特定のファイル形式でのみ機能します。通常、ファイルが破損します。


ファイルシステム固有の複製ツールがあります。たとえば、パーティションの種類がext2/3/4の場合、次のツールを使用できます。e2画像カーネルファイルシステムドライバを使用せずにファイルをコピーします。

clonezilla を使用して複製する前にファイルシステムのサイズを変更することもできます。例: 使用2fs サイズ変更ファイルシステムを縮小して起動します。

それに加えて、唯一の実際のオプションはファイルシステムをマウントし、ファイルを使用またはコピーすることcpです。tarrsync


サイズ変更を実装しないことを決定したCloneZillaの決定について:ファイルシステムはしばしば非常に複雑です。もっと単純なものもありますが、ext2/3/4、reiserfsなどは単純ではありません。

ファイルシステムで十分な情報を解析して、使用しているブロックを確認するのは簡単です。一部のファイルシステムには、使用済みブロックと未使用ブロックを表示するきれいでクールなテーブルもあります。解析にはファイルの知識はまったく必要ありません。

たとえば、ext3はデフォルトで4096バイトブロックと32,768ブロックブロックグループを使用します。各128MiBブロックグループには、グループで使用されているブロックを示す「ブロックビットマップ」が含まれています(参照:引用する)。したがって、ファイル自体について何も知らなくても、プログラムは解析を実行できます。ただどのブロックが使用されているか。

ただし、ファイルシステムのサイズを変更するには、より多くの知識が必要です。 ext2などの詳細がわからない場合、可能な障害物は次のとおりです。

  • 相互参照ポインタまたはメタデータへのポインタを更新できません。
  • チェックサムを更新できません。
  • ビットマップを使用してブロックを正しく更新できません。

素朴な開発者がファイルシステムやメタデータを破損するようにサイズ変更を実装するのは非常に簡単です。

関連情報