VMwareやVirtualBoxで可変サイズの仮想ストレージ(仮想HDD)を少しでも小さくするための下処理です。
可変サイズの仮想ストレージのイメージファイルは、作成時は非常に小さなサイズですが仮想マシンのディスクの使用量により肥大化し、最終的には指定したディスクサイズまで大きくなります。
そして肥大化した仮想ストレージ内のファイルを整理し、削除してもイメージファイルが小さくなることはありません。
つまり、一度イメージファイルの領域を広げてしまうと未使用分の領域も確保されたままになり、自動的に小さくなることはありません。
そのため、手動で仮想ストレージのイメージファイルを圧縮します。
対象となるゲストOSはWindows XP以上を対象としています。(使っているソフトウェアの制限であり、原理は応用可能です)
原理
原理は単純です。
仮想ストレージ内のデータをできるだけ一か所に集め、未使用箇所は0x00を書き込む。
これだけです。
NTFSではファイルを削除する場合、実際にはファイルのインデックス情報を削除するだけで、ファイルの実体は削除されません。
そのため、未使用領域には意図的に0を書き込みます。
実践
使用するソフト
- JkDefrag(http://www.kessels.com/jkdefrag/)
- CClean(https://www.piriform.com/ccleaner)
手順
- JkDefrag.exe –a 5 でデータを詰める
- JkDefrag.exe –a 3 でデータを最適化
- JkDefrag.exe –a 5 でデータを詰める
- CClean で空スペースを抹消を実行
たったこれだけですが、仮想ストレージのサイズが大きいと時間がかかります。