Vagrant で使用されている vmdk ファイルを圧縮する方法 📦
VirtualBox で起動される VM のディスクは .vmdk ファイル形式で作成されます 💾 Vagrant を使っていると、この vmdk ファイルのサイズが大きくなってしまうことがあります。今回は、それを圧縮する方法をご紹介します。
前提条件
以下の組み合わせで使用している場合の手順です:
- VirtualBox 📦
- Vagrant 🔧
圧縮手順
Guest OS(VM)と Host OS(Mac や Windows)の両方で作業を行います。
1. Guest OS での作業
まず、VM 内でストレージの空き容量を0埋めします:
dd if=/dev/zero of=zero bs=4k
rm -fr zero
この操作により、削除されたファイルの領域が0で埋められ、後の圧縮処理で効果的にサイズを削減できます ✨
2. Host OS での作業
VM を停止
vagrant halt
ファイル形式の変換と圧縮
Guest OS があるディレクトリに移動し、.vmdk を .vdi に変換します:
cd ~/VirtualBox\ VMs/${box}
VBoxManage clonehd box-disk1.vmdk box-disk1.vdi --format vdi
.vdi ファイルを圧縮します:
VBoxManage modifyhd box-disk1.vdi compact
圧縮が完了したら、.vdi を .vmdk に戻します:
VBoxManage clonehd box-disk1.vdi box-disk1.vmdk --format vmdk
不要ファイルの削除
元の vmdk ファイルと中間ファイルを削除します:
rm box-disk1.vdi
# 必要に応じて元のvmdkファイルもバックアップ後に削除
圧縮効果
この方法により、ファイルサイズが大幅に削減される場合があります 📉 場合によっては10分の1程度まで圧縮されることもあります。
注意点
- 作業前に重要なデータのバックアップを取ることをおすすめします 🛡️
- 圧縮処理には時間がかかる場合があります
- ディスク容量に余裕がある状態で作業を行ってください
まとめ
Vagrant 環境で vmdk ファイルが肥大化した場合は、この方法で効果的に圧縮できます 🚀 定期的にメンテナンスを行うことで、ディスク容量を効率的に管理できます。