仮想マシンの肥大化。VMDKファイルを縮小し、VMサイズを減らす方法。更新!
仮想マシンを使用していると、どんどんサイズが大きくなってディスク容量を圧迫します。
当初、仮想マシンのフォルダの合計サイズは40GBだったのですが、気付いたら58GBまで膨れ上がってました。 でも、おかしいです。仮想マシンのWindowsのCドライブの最大容量は40GBです。18GBはどこで使用されているのか。
とにかく、仮想マシンのファイルサイズを少なくしたいと思い、色々試してみた結果、エラーなしに圧縮できたので、その方法を紹介します。
膨れ上がる原因
1~2GBのインストーラーを使ってWindowsに新しいバージョンのソフトウェアをインストールしたり、古いバージョンを削除したりを繰り返していたら、仮想マシンのディスクサイズが肥大化しました。
仮想マシン上のWindowsのドライブは最大で40GBでディスクサイズは増やしていません。 ディスクへの書き込み量が増えると仮想マシンのディスク領域が増えてしまうのかな。
VMware Workstation Player
VMware Workstation Playerの機能を使って仮想マシンディスクの圧縮できます。
Playerを起動し、仮想マシンの設定を選択、ハードウェアタブでハードディスクを選んで、圧縮ボタンを押します。念のため対象のVMDKファイルはバックアップします。
ただ、圧縮してみてもVMDKのサイズは縮小率は微々たるものでした。100MB位減りました。
あと、圧縮ボタンの上にあるデブラグボタンも押してみましたが、これもほんの少ししかサイズは減りませんでした。
gpartedでサイズ縮小
他に方法は無いかとネットで調べてたらgpartedというフリーツールがあったので試してみました。
gparted-live-0.31.0-1-i686.isoをダウンロードして、仮想マシンにマウント。仮想マシン起動時にEscキーを1回だけ絶妙なタイミングで押すとブートオプションを選べるので、CD/DVDメディアを選ぶとgpartedが起動します。
既存のOSが入っているパーティションを選んでコピーして、メッセージは成功して、確かにサイズが縮小されたVMDKファイルができてました。しかし、そのコピーしたVMDKだけで仮想マシンを起動しようとしても、黒い画面に動かない白い下線が1つ表示され、OSがブートされませんでした。
マイクロソフトが提供するフリーの修復ディスクを使用して仮想マシンを起動すれば、黒い画面問題は解決するかもしれないとネットに情報が落ちてましたが、それで直しても後々何か不具合があっても面倒くさいと思ったのでここでこの方法でのサイズ縮小は断念しました。
VMware vCenter Converter Standaloneでサイズ縮小
結局、vmwareが提供するVMware vCenter Converter Standalone 6.2を使用することにしました。このConverterを使用すれば、ローカルPCにある仮想マシンを変換し、別フォルダにコピーすることができます。ESXサーバやvCenterは不要です。
- VMware-converter-en-6.2.0-8466193.exeを実行しインストール。Converterを起動後、Convert machineボタンを押します。
- Source System:VMware Workstation or other VMware virtual machine、Virtual machine file:変換したい仮想マシンのvmxファイルを選択。
- Destination System: VMware Workstation or other VMware virtual machine、Nameを入力し、変換した仮想マシンのコピー先フォルダを指定します。
- Optionsでは、Data to copyのEditボタンを押し、Data copy type:Copy all disks and maintain layoutを選択、VirtualDisk1のType:Split pre-allocatedを選択しました。このTypeはお好みのものを選んでください。
- 変換はSSDの場合5分程で完了しましたが、HDDの場合はかなり時間がかかります。
変換後にコピーした仮想マシンのフォルダの合計サイズを確認したら39GBでした。18GB以上減らすことに成功!
あとは、ちゃんと起動するか仮想マシンを再生して動作確認をしました。良かった。問題なく動きました。
変換後の不具合の可能性
過去の経験上、変換が失敗して仮想マシンが動作しなかったり、動作中に不具合を起こしたりすることがあったので、 ある程度時間が経ってから動作に問題ないことを確認してから、コピー元の仮想マシンを削除するようにしました。
それでも上手くサイズが変更できない場合
上記の方法で上手くサイズを縮小できないケースがあって、試行錯誤してました。
このケースでは仮想マシンの合計サイズが約62GBで、仮想マシン内のWindowsの使用サイズは約52GBでした。なので62GBを52GBに縮小したかったのでConverterを使ってみたところ、全くサイズが縮小されませんでした。
試行錯誤の末、以下の方法で縮小出来ました。
- まず、コピーするディスクのタイプに「Split not pre-allocated」を選択します。

- 次に、ディスクのEditボタンを押してコピーするディスクのSize/CapacityをMin Sizeに指定。

- 最後に、Converterでディスクのコピーを終了したら、仮想マシンの設定でコピーしたディスクを選択し、ディスクユーティリティーの圧縮を実行。

- 仮想マシンの設定画面の最大サイズは62.5GBと表示されてますが、容量の現在のサイズ48.9GBと表示され、Windows上のサイズも48.9GBです。

仮想マシン上のWindowsから不要なソフトをアンインストールして、上記の方法でサイズを縮小すれば、どんどん仮想マシンの容量を減らせるはず。どれが不要なのか決断するのはいつも時間がかかってしまいますが。。。