仮想ディスクの最適化のため空き領域をキレイにする

仮想化されたシステムのディスクイメージバックアップ時に圧縮が効くように空き領域に削除ファイルの残骸が残っていないようにしたい。空き領域は0で埋まっていて欲しい。

ゲストOSがWindowsなら、SDelete が使える。オプション -z でいけそう。「空き領域に 0 を設定します (仮想ディスクの最適化に適しています)」とあるのでまさしくこれだ。

もうちょっと調べてみるとOS付属のツールでも同じことができるという。CIPHER コマンドでオプション /W をつけるといいらしい。やってみよう。

C:\> CIPHER /W:C:
できるだけ多くのデータを削除するために、CIPHER /W の実行中
はほかのアプリケーションをすべて終了してください。
0x00 に書き込み中
.....................................................................

実行開始時はディスクに空きがありました。

しばらくするとディスクの空きが無くなりました。あっぷあっぷです。

どうやら、0で埋めた大きなファイルを作成し(結果ディスクの空き領域がゼロで埋まる)そいつを削除するという手法のようです。 一旦ディスクの空きがほぼ無し状態になるのでサービス運用中のサーバとかでコレやるとえらいことになりそうです。