virtualboxで起動されるVMのdiskは.vmdkファイル形式で作成されます。 vagrantを使っていると、このvmdkファイルのサイズが大きくなってしまうので、それを圧縮する方法をお伝えします。

目次

前提条件

以下の組み合わせで使用している場合になります。

  • virtualbox
  • vagrant

手順

GuestOS(VM)とHostOS(MacやWindows)で作業します。

Guest OSでの作業

ストレージの空き容量を0埋めします。

dd if=/dev/zero of=zero bs=4k
rm -fr zero

Host OSでの作業

GuestOSを停止します。

vagrant halt

GuestOSがあるディレクトリに移動し、.vmdk.vdiに変換します。さらに.vdiを圧縮します。

cd ~/VirtualBox\ VMs/${box}
VBoxManage clonehd box-disk1.vmdk box-disk1.vdi --format vdi
VBoxManage modifyhd box-disk3.vdi compact

.vdiで圧縮したら、.vmdkに戻します。

VBoxManage clonehd box-disk3.vdi box-disk3.vmdk --format vmdk

Reference