VMwareのゲストOSが肥大化してきたな、と思った時に出来る事

2013年5月7日

VMwareの仮想マシンはその仮想マシンが使うディスクを仮想ディスクとしてファイルとして保存されています。

この仮想ディスクのファイルは、VMwarePlayerなどで作った場合、だいたいは最初はごく少量の小さいファイルですが

OSをインストールしたり、アプリをインストールしたりすると、それなりに大きなファイルとなってしまいます。

そこで、仮想マシンの中身をダイエットしようと思ってアプリを整理したり圧縮したりしても

仮想ディスクのファイル容量は小さくなっていなかったりします。

これはディスク上でファイルを削除する=ファイルのインデックス情報を削除するというのとイコールで

実体がある部分はクリアしてくれない訳です。

そのおかげで、削除してしまっても、直後であれば復活させるツールが使えたりする訳ですが

仮想マシンでは、そのクリアされない部分があることで、実際仮想マシンの内部で使用している容量よりも

大きな仮想ディスクファイルになってしまうと言う訳です。

ということは、この実は削除されている領域をクリア出来ればいいのです。

VMwareにはこの領域をクリアするツールがあったりします。

仮想マシンをインストールする時にVMware toolsというのを入れていると思いますが

このツールの中に

vmware-toolbox-cmd(Linux/Unix系)
VmwareToolBoxCmd(Windows系)

というコマンドがあります。

vmware-toolbox-cmdにhelpオプションを付けて実行してみると、使えるオプションが表示されます。
[shell]:~$ vmware-toolbox-cmd help
Usage: vmware-toolbox-cmd <command></command> [options] [subcommand]
Type 'vmware-toolbox-cmd help <command></command>’ for help on a specific command.
Type 'vmware-toolbox-cmd -v’ to see the VMware Tools version.
Use '-q’ option to suppress stdout output.
Most commands take a subcommand.

Available commands:
device
disk
script
stat
timesync
upgrade (not available on all operating systems)[/shell]
このオプションの中のdiskという物を使って仮想ディスクの未使用領域をクリアしていきます。

それぞれのオプションにはさらにサブオプションがあるので、help diskなどという感じでサブオプションを表示出来ます。
[shell]:~$ vmware-toolbox-cmd help disk
disk: perform disk shrink operations
Usage: vmware-toolbox-cmd disk [args]

Subcommands:
list: list available locations
shrink : wipes and shrinks a file system at the given location
shrinkonly: shrinks all disks
wipe : wipes a file system at the given location[/shell]
diskのサブオプションで
listというのは、使用しているディスクの一覧
shrinkというのが、今回仮想ディスクの未使用領域をクリアするために使うオプションです。

まずは、vmware-toolbox-cmd disk listと叩くと、使用しているディスクの一覧が表示されます。

Linux/Unix系であれば
[shell]:~$ vmware-toolbox-cmd disk list
/
/boot[/shell]
という感じに出るかと思います。

Windows系だと
[shell]C:\Program Files\VMware\VMware Tools&gt;VMwareToolboxCmd.exe disk list
C:\[/shell]
という感じだと思います。

今回はルートを最適化するので
[shell]:~$ vmware-toolbox-cmd disk shrink /[/shell]
とします。

これを実行すると、数十分ほど仮想マシンを操作出来なくなりますが、このコマンドで仮想ディスクの未使用領域がクリアされて

仮想ディスクファイルを再配置してくれるので、容量が減ってほんの少し快適になると思います。

VMWare

Posted by GENDOSU