USB を完全にデフラグできないのはなぜですか?

USB を完全にデフラグできないのはなぜですか?

NTFS USB ドライブでは、ISO を起動できるようにするために、ISO をデフラグする必要があります。しかし、Windows のネイティブ デフラグも UltraDefrag も、Windows の contig と Linux の filefrag で検証したところ、ファイルを完全にデフラグすることはできませんでした。

もちろん、ファイルをコピーして戻すことはできますが、これは本当に困惑します...

スクリーンショット

ドライブには連続した空き領域が十分にあることを確認しました

答え1

イージー2ブートこれを強制するスクリプトをパーティション ルートに含めます。これは確かにエッジ ケースの要件であるため、理にかなっています。

他のツールではそれができなかったことに、いまだに困惑しています。

答え2

デフラグ プログラムは、同じドライブ上の連続した空き領域のブロックにファイルのコピーを作成し、元のファイルを削除することによって機能します。一部のデフラグ プログラムは、まず他のファイルを移動して (ファイルがすでに断片化されていないかどうかに関係なく)、すべてのファイル間のギャップをすべて削除して、連続した空き領域の統合領域を作成しようとします。

たとえば、NTFS ボリュームに、新しくフォーマットされた 8GB ドライブと 6GB のファイルがあるとします。

FILE1_2GB FILE2_2GB FILE3_2GB (2GB無料)

ここでファイル2を削除し、1GBのファイル4をコピーすると、

FILE1_2GB (2GB無料) FILE3_2GBファイル4_1GB(1GB無料)

ここでファイル3を削除し、1GBのファイル5をコピーすると、

FILE1_2GB (2GB無料)ファイル5_1GB(1GB無料) FILE4_1GB (1GB無料)

ここで、断片化される 3GB のファイル 6 を追加します...

ファイル1_2GBFILE6A_3GBファイル5_1GBFILE6B_3GBFILE4_1GB (1GB無料)

現在、file6は断片化していますが、空き容量は1GBしかないため、FILE6や1GBを超えるファイルをデフラグすることはできません。FILE1を削除して、

(2GB無料)FILE6A_3GB FILE5_1GB FILE6B_3GB FILE4_1GB (1GB無料)

しかし、まだ十分ではありません連続したFILE6 をコピーして新しい連続バージョンを作成するための空き領域。

したがって、ファイルシステムには、履歴に応じて断片化されたファイルと断片化された空き領域が含まれる可能性があります。ボリュームに十分な空き領域がない場合、デフラグツールは新しい連続したファイルを作成できません。

この問題を回避する 1 つの方法は、断片化されたファイルを一時的に別のドライブに移動し、ターゲット ドライブ上のすべての空き領域を統合してから、ファイルをコピーし直すことです。

Windows プログラム WinContig では、十分な大きさの連続した空き領域ブロックがすでに存在している必要があります。Windows GUI プログラム Defraggler は、まず空き領域を統合し、次にファイルを新しい空き領域にコピーしようとします。Defraggler には、ドライブ上のすべての空き領域ブロックを統合するオプションもあります。

ファイルをドライブにコピーするときに、別の複雑な問題が発生します。一部のプログラムは、ファイルをコピーするときに複数のストリームを開きます (たとえば、デフォルト モードの xcopy、ブラウザーを使用してインターネットから直接ダウンロードする場合、または同じボリュームに複数のコピー セッションを使用する場合)。これにより、ターゲット ドライブに連続した空き領域の単一の大きなブロックがあったとしても、ほぼ常に断片化されたファイルが生成されます。

Defraggler は、ボリューム上のファイル マップを確認し、ファイルがドライブ上でどのように分割されているかを調べるのに最適です。

NTFS では、通常、Windows 形式の NTFS ボリュームの 3 GB 付近に MFT (マスター ファイル テーブル ディレクトリ) が配置されることに注意してください。したがって、8 GB の NTFS ボリュームがある場合、MFT 領域は常にドライブの中央にあるため、どのように試みても連続した 6 GB のファイルをそのボリュームに配置することはできません。

関連情報