Help us understand the problem. What is going on with this article?

VMWareのゲストイメージ圧縮方法

More than 5 years have passed since last update.

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に限っては上記以外にクリーンアップ機能があります。
上記後クリーンアップをすることでさらに小さくなるようです。

vmwarefusion_disk_cleanup01.png

おわり

場合によっては数十ギガほど圧縮に成功できた例があるようです。
ゲスト起動中のままの圧縮は、あらたに仮想ROMイメージをコピーして構築することになるのでホストにはそれなりの媒体容量が求められます。
基本的に書き込みが多発するのでSSDでの実行はやめたほうがいいかも。SSDは書き込み制限などあるので仮想化に向いているのか不明です。
Macのゲストの場合も記載しましたが、・・・いえ、なんでもありません。
仮想化いいよ、仮想化・・・。

gogonosmarty
いろんな方面から需要のない人。日本ひきこもり協会(NHK)会員。底辺プログラマ兼派遣戦士ときどき無職。オリジナル小説を主に書いている同人作家、鋼虎徹のなかの人。口癖は、大丈夫だ、問題ない。『神は言っている、ここで死ぬ運命ではないと――』
http://www.cc9.ne.jp/~initialize/
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away