VMWareのゲストイメージ圧縮方法
経緯
VMWareでの仮想イメージですが、Windowsに限らず、LinuxなどのゲストOSのセキュリティアップデートなどをたびたびすると媒体ROM上で不要ファイルを削除したのに、ホスト側から見るとファイルサイズが減っていない。むしろ増えているという現象が起こります。これはゲストのほうでは減っていても、ホスト側からは容量が減らないという謎の現象です。ちなみにアップデートを繰り返すとその分、VMwareのサイズはぶくぶく肥えていきます・・・。ROMをRARでバックアップをとっているときに気付きました。
ディスク圧縮
対象は、VMware Player, Fusion, Workstation などでバージョン9からです。他にもできるはずです。条件としては2つ。1つは、VMwareのゲストにVMware Toolがインストールされていてゲストが起動している段階で実行します。もうひとつは、スナップショットがあるとうまくいかないことがあります。なので、RARか7zipでスナップショットの代用をしたほうがいいでしょう。9以前はGUIでツールがあるらしいのですが当方やったことがないのでわかりません。
各ゲストともに、コンソールから以下を打ち込みます。listが圧縮対象のドライブ一覧、shrinkが不要ファイルを除去したROMの再構築実行コマンドです。サイズによもりますが10ギガの再構築で30分ぐらいです。ホストのハードウェア環境でまちまちでしょう・・・。
※Linuxの場合、ゲストがLVMだと実行できません。ext4までなら動くようです。
・ゲストがWindowsの場合
C:\Program Files\VMware\VMware Tools\VMwareToolboxCmd.exe disk list
C:\Program Files\VMware\VMware Tools\VMwareToolboxCmd.exe disk shrink C:\
・ゲストがLinuxの場合
sudo vmware-toolbox-cmd disk list
sudo vmware-toolbox-cmd disk shrink /
・ゲストがMacの場合
sudo /Library/Application\ Support/VMware\ Tools/vmware-tools-cli disk list
sudo /Library/Application\ Support/VMware\ Tools/vmware-tools-cli disk shrink /
ディスク最適化
ゲスト圧縮後、シャットダウンし、仮想マシン設定からハードディスクを選択後、ユーティリティの圧縮がありますが、こちらは正直あまり効果がありませんでした。ゲストが起動していないとどのファイルがいるのかいらないのかわからないようです。しかし、ディスクの最適化はファイルの再配置をしてくれるはずなので効果はあると思います。
仮想マシンのクリーンアップ(Fusion)
Fusionに限っては上記以外にクリーンアップ機能があります。
上記後クリーンアップをすることでさらに小さくなるようです。
おわり
場合によっては数十ギガほど圧縮に成功できた例があるようです。
ゲスト起動中のままの圧縮は、あらたに仮想ROMイメージをコピーして構築することになるのでホストにはそれなりの媒体容量が求められます。
基本的に書き込みが多発するのでSSDでの実行はやめたほうがいいかも。SSDは書き込み制限などあるので仮想化に向いているのか不明です。
Macのゲストの場合も記載しましたが、・・・いえ、なんでもありません。
仮想化いいよ、仮想化・・・。