はろー。 は、はろー。まとめノート書いてますよ。

VirtualBox仮想メディアを最適化してmacOSのストレージ空き容量を確保する

仮想メディアの膨張を防ぐ

VirtualBoxを利用して仮想環境上のデスクトップOSで作業をしていると、ゲストOSのディスク容量を示す仮想メディアがゲストOSで表示される実際のディスク容量以上に膨れ上がっていることがあります。

ホストOS内ストレージにこの仮想メディアを格納している場合、仮想メディアの容量増加によってホストOS側の動作が遅くなったり保存したいデータを保存できなかったりとあまり良いことがありません。なにより、ゲストOSの仮想メディアの容量と実際のディスク容量が大きく違っていることが気になります。

ということで、今回はVirtualBoxのゲストOSが使用している仮想メディアを最適化して実際のディスク容量に近づけるとともに、ホストOS側のストレージ空き容量を確保してみようと思います。

仮想メディアが膨張する仕組み

ゲストOS側で作業をしていると作成したデータの分だけディスク使用容量が増えますし、データを削除すればその分だけディスク使用容量は減ります。

ですが、仮想メディアの場合、ゲストOSで追加したデータの分だけ仮想メディア容量は増えますが、ゲストOSでデータを削除しても仮想メディアでは完全に削除されずデータを保持したままになっています。
ゲストOSと仮想メディア ディスク容量変化

そのような理由から、ゲストOSで作業していくにつれて仮想メディアの容量が実際のディスク容量よりも増えてしまうようです。おそらくですが。

仮想メディアの最適化は本来存在しないはずのデータを完全に削除しメディアを圧縮することによって、仮想メディアのディスク容量をゲストOSの実際のディスク容量に近づける作業となります。

最適化作業のあらすじ

まず、ゲストOSのディスク容量およびホストOSにある仮想メディア最適化前のディスク容量を確認します。

次に、ゲストOS側でディスククリーンアップ、デフラグ、フリーソフトSDeleteを用いてのディスク未使用領域の完全消去といったディスク空き容量の最適化を行います。

のち、ホストOS側で仮想メディアのスナップショットを統合して、対象のVirtualBox仮想メディアを圧縮します。

実施作業環境

なお、実施する作業環境は下のとおりとなっています。

仮想マシンソフトウェア VirtualBox 6.0
ホストOS macOS 10.13
ゲストOS Windows 10
最適化対象の仮想メディア(VDIファイル) Windows 10 64bit.vdi

 

最適化前のディスク容量の確認

ゲストOSのディスク容量を確認します。実際のディスク容量はおよそ52GBでした。
ゲストOS ディスク容量

次に、ゲストOSの仮想メディアのディスク容量を確認します。スナップショット込みの容量でおよそ96GBくらいあります。
最適化前仮想メディア ディスク容量

ゲストOSのディスク容量最適化

ディスククリーンアップ

「スタートメニュー/Windows 管理ツール/ディスク クリーンアップ」より選択します。

ここで普段の作業に必要ないファイルを削除します。また、Windows Update等で自動的に作成されたシステム復元ファイルも削除しつつディスク容量を確保していきます。

デフラグ

「スタートメニュー/Windows 管理ツール/ドライブのデフラグと最適化」から選択できます。

ファイルの追加や削除を繰り返していくと、データの断片化が起こりディスク内にデータが散らばった状態になりディスク容量を確保しづらくなってしまいます。昨今のストレージ大容量化によってあまりデフラグを行う機会は少なくなりましたが、今回はディスク容量の最適化のため実行します。

SDeleteを用いた未使用領域の完全削除

フリーソフトウェア「SDelete」はMicrosoft公式サイトよりダウンロードできます。

こちらのソフトでは、既に削除したデータを完全に削除することができます。復元ソフトを使ってファイルを復元できないようにするためのものですが仮想メディアの最適化にも使えます。

SDeleteの使い方

ダウンロードサイトからSDeleteをダウンロードし、任意の場所に展開します。その後、コマンドプロンプトを用いてコマンド入力していきます。

# SDeleteフォルダのある場所(ここではデスクトップに展開)をカレントディレクトリにする
> cd C:¥Users¥ユーザ名¥Desktop¥SDelete

# SDelete実行
> sdelete -z c:

コマンドを入力し終えると下のようにプログラムが実行されます。キャプチャ赤線部分は入力したコマンドです。
SDeleteコマンド実行キャプチャ

ゲストOSのシャットダウン

ゲストOSのディスク容量の最適化が一通り済んだら、ゲストOSをシャットダウンして次の作業に移ります。

VirtualBoxスナップショットの統合

ここからホストOSでの作業となります。

最適化対象の仮想メディアのみを最適化したいので、スナップショットを削除して対象の仮想メディアに統合します。

※必ずしもスナップショットの統合をしなければならないわけではないので必要に応じて行うと良いかもしれません。
VirtualBox スナップショット 統合

仮想メディアのディスク容量の最適化

仮想メディアのディスク容量の最適化を行うにあたってVBoxManageコマンドを用いるため、ターミナルを開き以下のように入力します。

$ VBoxManage modifyhd Windows\ 10\ 64bit.vdi --compact

ここでの「Windows\ 10\ 64bit.vdi」は今回最適化を行う仮想メディアを指定しています。

カレントディレクトリを移動したり仮想メディアファイルのフルパスを入力するのが手間に思う方は、最適化対象の仮想メディアファイルをターミナルにドラッグ&ドロップしましょう。

最適化後のディスク容量の確認

以上のような作業手順を踏んだのち、改めて仮想メディアのディスク容量を見てみます。

最適化後仮想メディア ディスク容量

最適化前のディスク容量と比べてかなり減りました。

さいごに

VirtualBox仮想メディアの最適化について作業を行いました。

ゲストOSの土台となる仮想メディアに操作を加えている関係上、操作を間違えるとゲストOSが起動しなくなる可能性が十分にあります。

なので、例えばゲストOSにインストールされたソフトウェアのライセンス認証を一旦解除するなどして、起動しなくなった場合の被害を最小限止めるようにしてから作業を始めると良いかもしれません。

スポンサーリンク
back to top