この質問はWikipediaのこのGIFからヒントを得たものです:
(ソース:https://en.wikipedia.org/wiki/Defragmentation#/media/File:FragmentationDefragmentation.gif)
GIF では、ブロック (セクター?) が空き領域に移動され、再配置 (デフラグ) されます。
空き容量は必要ですか?
答え1
まさにこの記事から GIF を入手しました:
ディスクをデフラグする場合、デフラグ ソフトウェア (「デフラグ ツール」とも呼ばれます) は、使用可能な空き領域内でのみファイルを移動できます。これは集中的な操作であり、空き領域がほとんどないかまったくないファイルシステムでは実行できません。wikipedia-デフラグの緩和
Windows XP のデフラグには 15% の空きディスク領域が必要です。
答え2
デフラグには 2 つのオプションがあります。簡単な方法と、良い方法の 2 つがあります。
移動およびデフラグするデータはすべてメモリ内に保持します。基本的には、十分なスペースを解放して連続したブロックに書き戻すまで、ファイル全体を読み取る必要があります。
- これの利点は、より高速になり、ディスク上に余分なストレージを必要としないことです。
データをディスク上の別の場所に移動し、十分な大きさの連続ブロックが作成されたらデータを戻します。
- この方法では、データを別の場所で繰り返し読み書きする必要があるため、速度が大幅に低下します。
オプション 1 では、ディスク上に余分なスペースが必要ない可能性がありますが、潜在的に危険でもあります。
- ファイルの読み取りと削除中は、データはディスク上に存在しなくなります。停電が発生すると、読み取られたが新しい場所に復元されていないファイルはすべて失われ、壊滅的な影響を及ぼす可能性があります。
- ファイルの読み込みにどのくらいの大きさのバッファが必要になるかはわかりません。移動が必要なファイルは数ギガバイトにもなるかもしれませんし、小さなファイルもたくさんあるかもしれません。無限にメモリを割り当てる能力(ページファイルを拡張して断片化を防ぐ)が必要です。悪い)、またはメモリの固定パーセンテージを使用します。バッファサイズが固定の場合、ファイルの一部をロード(および切り捨て)してスペースを解放できますが、結果として、部品停電時にファイルが失われる可能性があり、これはファイル全体が失われるよりも悪いと言えます。
オプション2では、特に最初にコピーしてそれからブロックを削除します。
したがって、壊滅的なデータ損失の脅威を回避しながら安全にデフラグを行うには、ある程度のディスク空き容量が必要です。