テスト環境の構築と廃棄に大変便利なので日頃から仮想PC実行ソフトとして有名な VMware Player を重宝している。だが、めんどくさいので VMDK の圧縮(というより未使用領域の解放)作業をさぼっていたら最近 VMDK のファイルサイズと仮想PCのディスクが実際に使用しているサイズの差が大きくなってきていた。
ホストPC(Win7Pro SP1)にある VMDK ファイルサイズ 約 40Gbyte
仮想PC(XPSP3)が実際に使用しているサイズ 約 20Gbyte
というわけで、久々に圧縮でもするかと思って VMware Tools をひらいてみたら圧縮する項目がなくなっているのに気がついた。VMware Player 5.0.1 build-894247 にアップデートしたのが数か月前。その時に VMware Tools もアップデートした記憶があるから、その時点で圧縮の項目が無くなったのだろうと思う。ネットで調べたところ下記の方法で VMDK を圧縮できることが分かった。
仮想マシンを起動せずに、VMware Player のみを起動。
VMware Player で仮想マシンを開いて
仮想マシン設定の編集 -> ハードウェア
ハードディスク(IDE) を選択
ユーティリティ -> 圧縮
で圧縮できるとのこと。ところが、圧縮してみたところ、実際に圧縮作業が行われるが、ほとんど VMDK のサイズは小さくならない。
さらに調べてみると仮想PCを起動して、HDD の未使用領域に 0x00 を書き込んでから圧縮作業をしたほうがよいとのことだった。なので仮想PCを起動して、仮想PCのコマンドプロンプトを起動して cipher でCドライブの未使用領域に 0x00 を書き込むことにした。
cipher /w:c:
これで待つこと約20分、表示が「0x00へ書き込み」から「0xFFへ書き込み」に変化したところで Ctrl+C で cipher を強制終了。
この後で上記の圧縮手順を施したところ、ちゃんと VMDK が約 20Gbyte になった。
ホストPC(Win7Pro SP1)にある VMDK ファイルサイズ 約 40Gbyte
仮想PC(XPSP3)が実際に使用しているサイズ 約 20Gbyte
というわけで、久々に圧縮でもするかと思って VMware Tools をひらいてみたら圧縮する項目がなくなっているのに気がついた。VMware Player 5.0.1 build-894247 にアップデートしたのが数か月前。その時に VMware Tools もアップデートした記憶があるから、その時点で圧縮の項目が無くなったのだろうと思う。ネットで調べたところ下記の方法で VMDK を圧縮できることが分かった。
仮想マシンを起動せずに、VMware Player のみを起動。
VMware Player で仮想マシンを開いて
仮想マシン設定の編集 -> ハードウェア
ハードディスク(IDE) を選択
ユーティリティ -> 圧縮
で圧縮できるとのこと。ところが、圧縮してみたところ、実際に圧縮作業が行われるが、ほとんど VMDK のサイズは小さくならない。
さらに調べてみると仮想PCを起動して、HDD の未使用領域に 0x00 を書き込んでから圧縮作業をしたほうがよいとのことだった。なので仮想PCを起動して、仮想PCのコマンドプロンプトを起動して cipher でCドライブの未使用領域に 0x00 を書き込むことにした。
cipher /w:c:
これで待つこと約20分、表示が「0x00へ書き込み」から「0xFFへ書き込み」に変化したところで Ctrl+C で cipher を強制終了。
この後で上記の圧縮手順を施したところ、ちゃんと VMDK が約 20Gbyte になった。