[VMWare]仮想マシンの容量を最適化して圧縮する

投稿日:2018-01-07

Vmwareを使っているわけですが、長い間使っているとどうしてもゴミというか仮想マシンのフォルダ自体が肥大化してきます。
かといって、フォルダ内のファイルを適当に削除する訳にもいかないんですよねー。
過去に、大丈夫そうなファイルを手動で削除して、仮想マシンが起動しなくなったことがあったので、手動での削除は恐怖ですw

まぁ、普通のPCのシステムファイルを削除しても、起動しなくなるので、当たり前っ茶当たり前ですが。

OSのイメージを圧縮して容量を減らす方法を試してみました。

VMware Toolsのインストール

OSのイメージの圧縮をするためには、VMware Toolsがインストールされている必要があります。

今回の作業は、それを前提として進めます。

ちなみに今回使用したVMwareプレイヤーのバージョンは14ですが、他のバージョンでも変わらないかと。

ディスクの圧縮をやってみる

今回は使用しているOSがウィンドウズなので、コマンドプロンプトを使用して作業を進めます。

コマンドプロンプトを起動して、以下のコマンドを入力します。


C:\Program Files\VMware\VMware Tools\VMwareToolboxCmd.exe disk list

この仮想マシンでは、Cドライブしか運用していないので対象のドライブが「C:\」しかありません。
複数のパーティションを切っているのであれば、各ドライブ名が表示されるじゃないかなと思います。

次に、以下のコマンドを入力します。


C:\Program Files\VMware\VMware Tools\VMwareToolboxCmd.exe disk shrink c:\

 

このコマンドで圧縮を行いたいドライブを指定します。

圧縮の実行

実際にOSイメージの圧縮をしてみます。

圧縮前の仮想マシンのフォルダの容量

OSイメージの圧縮の実行

圧縮後の仮想マシンのフォルダの容量

今回は2GBほどの容量を圧縮することができた。
ゲストOSがウィンドウズXPだからと言うのもあるかもしれないけど、もともと容量自体は少なめなところがある。
なので劇的な容量の変化と言うのはなかった。

けど、実際に容量を圧縮することができたので今回の事件としては成功!!

今度は、Windows 7のOSイメージでやってみよ。

OSごとのコマンド

ゲストが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 /







-開発メモ

関連記事

改めて、コマンドプロンプトのrobocopyコマンドでバックアップを行う。

以前、会社では、バックアップ用のソフトを使っていたことがあります。 それも、社内ではなく、お客様用にw まぁ、それ自体は良いんですが、割とケチ?な会社だったので、使っているのはフリーソフト。 確か、商 …

[VMWare Fusion]VMWare Fusion 12を導入した話

  日本の中心付近で仕様変更と闘うSE日記 1 Pocket[VMWare Fusion]VMWare Fusion 11がBigSurで使えなかった話。http://ht-jp.net/b …

[Oracle]regexp_replaceで、改行コード・タブとかのCSV出力時に邪魔になるものを消す

通常、スペースを消したい時とかなら、replaceとかtrimとかで一括で処理してたんだけど、CSVに出力したい時に、複数の処理を纏めるのがスゲェ面倒くさかった。 それがregexp_replaceで …

先日のデグレに引き続き、作業を一個抜かしたら、超絶怒られて始末書書かされた件

タイトルの通りで、始末書書かされました。 社内での信用0です。 先日のデグレの時もでしたが、今日も思いっきり怒られましたよ。 電話越しの無言は怖い。 日本の中心付近で仕様変更と闘うSE日記 1 Use …

[C#]ToStringメソッドで簡単に桁区切りを実現する方法

結論 ToStringメソッドと書式設定で解決。 int a = 1; int b = 1; int ab = a * b; string c = ""; //「1」になる c = …


カテゴリー