VirtualBox 仮想ディスクのサイズを変更
VirtualBox で使用している仮想ディスクの使用率が99パーセント近くになってしまったので、ホストOSからのディスクサイズの割り当てを増やすことを決断。
Vagrantを使用しているため、仮想ディスクは VMDK 形式になっています。
ただこの形式は、サイズ変更がサポートされていないため、一旦 VDI 形式に変換してあげる必要がありました。
おおまかな手順
1. VMDK 形式から VDI 形式へ変換
2. ディスク割り当て量を増やす(リサイズ)
3. VDI 形式から VMDK 形式へ変換
4. パーティション変更
1. VMDK 形式から VDI 形式へ変換
既存の仮想ディスクの一覧
$ VBoxManage list hdds UUID: 8cbbe27d-8feb-4444-88ce-e5df4fe5ac71 Parent UUID: base State: created Type: normal (base) Location: C:\Users\xx\VirtualBox VMs\Ubuntu14.04-2-box\box-disk1.vmdk Storage format: VMDK Capacity: 30720 MBytes Encryption: disabled
既存でおよそ30GB割り当てられています。
VDI 形式へ変換(別ファイルで生成)
$ VBoxManage clonehd "C:\Users\xx\VirtualBox VMs\Ubuntu14.04-2-box\box-disk1.vmdk" "C:\Users\xx\VirtualBox VMs\Ubuntu14.04-2-box\clone-disk1.vdi" --format vdi
既存のファイル(VMDK)はそのままで、新しいファイル(VDI)が生成されることになります。
そのため、ディスクの空き容量に注意が必要です!
この処理には1時間以上かかりました。
$ c:\Program Files\Oracle\VirtualBox>VBoxManage clonehd "C:\Users\xx\VirtualBox VMs\Ubuntu14.04-2-box\box-disk1.vmdk" "C:\Users\xx\VirtualBox VMs\Ubuntu14.04-2-box\clone-disk1.vdi" --format vdi 0%...10%...20%...30%...40%...50%...60%...70%...80%...90%...100% Clone medium created in format 'vdi'. UUID: 1a09f8cf-6eb8-40af-a233-f797810a31f3
$ VBoxManage showhdinfo "C:\Users\xx\VirtualBox VMs\Ubuntu14.04-2-box\clone-disk1.vdi" UUID: 1a09f8cf-6eb8-40af-a233-f797810a31f3 Parent UUID: base State: created Type: normal (base) Location: C:\Users\xx\VirtualBox VMs\Ubuntu14.04-2-box\clone-disk1.vdi Storage format: vdi Format variant: dynamic default Capacity: 30720 MBytes Size on disk: 30249 MBytes Encryption: disabled
出来上がりました。
2. ディスク割り当て量を増やす(リサイズ)
$ VBoxManage modifyhd "C:\Users\xx\VirtualBox VMs\Ubuntu14.04-2-box\clone-disk1.vdi" --resize 61440
約60GBに増やしています。
この処理は一瞬で完了しました。
$ VBoxManage showhdinfo "C:\Users\xx\VirtualBox VMs\Ubuntu14.04-2-box\clone-disk1.vdi" UUID: 1a09f8cf-6eb8-40af-a233-f797810a31f3 Parent UUID: base State: created Type: normal (base) Location: C:\Users\xx\VirtualBox VMs\Ubuntu14.04-2-box\clone-disk1.vdi Storage format: vdi Format variant: dynamic default Capacity: 61440 MBytes Size on disk: 30249 MBytes Encryption: disabled
Capacity が増えていますね。
3. VDI 形式から VMDK 形式へ変換
$ VBoxManage clonehd "C:\Users\xx\VirtualBox VMs\Ubuntu14.04-2-box\clone-disk1.vdi" "C:\Users\xx\VirtualBox VMs\Ubuntu14.04-2-box\box-disk2.vmdk" --format vmdk 0%...10%...20%...30%...40%...50%...60%...70%...80%...90%...100% Clone medium created in format 'vmdk'. UUID: f52bff5a-4e35-4148-bfa4-2f3781ffe989
実際に計っていませんが、この処理も時間がかかりました。
これも厳密には変換ではなく、新しい VMDK ファイルが生成されることになります。
よって、元のファイルと合わせると3つの仮想ディスクファイルが保持されることになります。
box-disk1.vmdk (元の VMDK ファイル) 30GB
clone-disk1.vdi (変換用の vdi ファイル) 30GB
box-disk2.vmdk (変換後の新しい VMDK ファイル) 30GB
そのため、ディスクの空き容量に注意が必要です!!
変換後の新しい VMDK ファイル は 60GB になるのでは? と思っていたのですが、30 GB ほどでした。
恐らく実データが入るようになってから、喰われるのではないかと思います。
box-disk1.vmdk と clone-disk1.vdi は作業完了後に削除して良いと思います。