vagrant-disksizeの処理を読んでみました。
処理の流れ
- get_vminfoでVMの情報を取得。
- 実行するコマンドは
VBoxManage showvminfo --machinereadable VM名
- この時点で
"
で囲まれていたらそれも除去
- 実行するコマンドは
- identify_disks
-ImageUUID-
を検索して、ディスクイメージのUUIDを取得。-ImageUUID-
を除去したキーを検索して、ディスクイメージのパスを取得。- 例えば、以下のようになる。
- showvminfoの結果
- “IDE-0-0”="/Users/ikemo/VirtualBox VMs/test/test.vdi"
- “IDE-ImageUUID-0-0”=“33cc92fc-5c53-44d4-bbc7-5fbbaa7b3086”
- uuid: 33cc92fc-5c53-44d4-bbc7-5fbbaa7b3086
- name: IDE-0-0
- file: /Users/ikemo/VirtualBox VMs/test/test.vdi
- showvminfoの結果
- get_disk_size
VBoxManage showmediuminfo ファイル名
のCapacity:
から始まる行を検索。このサイズを取得する。- 例えば
8192 MBytes
となるので、8192が返る。