LoginSignup
0
0

More than 3 years have passed since last update.

vmware イメージの圧縮

Last updated at Posted at 2020-11-03

vmware イメージ (vmdk ファイル) の圧縮

vmware の仮想環境を使っていると、ファイルを削除しても、削除済みの印をつけるだけで実際のデータが削除されないので上限として指定したサイズまで仮想イメージが大きくなる。非常に使いにくくなるので、使っていない領域を解放して、vmware イメージを圧縮する方法を説明する。

ubuntu 20.04ubuntu 20.10VMware workstation 15 player 上で確認した。
この手順を行うときは、vmware イメージ全体のバックアップを取って、仮に失敗しても問題ないようにして行うこと。

手順

sudo -i 
dd if=/dev/zero of=./zero bs=4k status=progress; \
  rm -f ./zero; \
  vmware-toolbox-cmd disk shrink /; \
  shutdown -h now
  • dd の操作は、空き容量が尽きるまで実行されるので最終的にコマンドは失敗となるので ; で連結し、コマンドの実行結果にかかわらず rm が実行されるようにする。
  • dd の操作~ vmware-toolbox-cmd disk shrink コマンドは実行に時間がかかるので、前のコマンドの実行後に自動的に実行する。
  • vmware-toolbox-cmd disk shrink / の操作の後、画面が真っ黒になって操作できなくなることがあるので、自動的にシャットダウンする。

説明

テストのために意図的にディスクを使う

まず効果があるかどうか確認するために意図的に大きなファイルを作る。

dd if=/dev/urandom of=./out1 bs=1M count=10000 status=progress
dd if=/dev/urandom of=./out2 bs=1M count=10000 status=progress
dd if=/dev/urandom of=./out3 bs=1M count=10000 status=progress
dd if=/dev/urandom of=./out4 bs=1M count=10000 status=progress

確認

シャットダウンして vmware のフォルダサイズが増えているのを確認する

sudo shutdown -h now

ディスクを圧縮する

後始末

ダミーで作成したファイルを削除する

rm out*

root ユーザーに切り替える。

root ユーザーに切り替える。

sudo -i 

空き領域に 0 を書く (重要)

以下コマンドを実行することにより、空きディスクにすべて zero のファイルを書き込んで削除する。
ディスク容量が不足しているという警告が出るが、直後に削除するので気にしない。

この手順がないと、vmware-toolbox-cmd disk shrink を行ってもディスクは圧縮されない。

dd if=/dev/zero of=./zero bs=4k status=progress; rm -f ./zero

vmware のディスクを圧縮する

以下コマンドで vmware のディスクを圧縮する。
※ このコマンドを実行しただけでは圧縮はできず、この前の手順である dd で zero 埋めする操作が必要。

vmware-toolbox-cmd disk shrink /

確認

シャットダウンして vmware のフォルダサイズがもとに戻っているのを確認する

shutdown -h now

参考リンク

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0