やりたいこと
VirtualBoxでIDEにアタッチされているストレージをSATAに付け替える方法です。 Vagrantのcentos/7 BoxがデフォルトでIDEのようなので、、、
前提条件
- VirtualBox 5.2.8 on macOSで確認しています。
- 1台のディスクのみアタッチされていることが前提です。
手順
# VM名は書き換えること。
VM_NAME=vm
# コントローラ名を取得(例: "IDE")
CONTROLLER=$(VBoxManage showvminfo --machinereadable ${VM_NAME} | grep storagecontrollername | cut -d "=" -f 2 | tr -d '"')
# アタッチされたイメージのUUIDを取得
# IDE-ImageUUID-0-1となるときは、port: 0, device: 1
UUID=$(VBoxManage showvminfo --machinereadable ${VM_NAME} | grep -e -ImageUUID- | cut -d "=" -f 2 | tr -d '"')
PORT=$(VBoxManage showvminfo --machinereadable ${VM_NAME} | grep -e -ImageUUID- | cut -d "=" -f 1 | cut -d "-" -f 3)
DEVICE=$(VBoxManage showvminfo --machinereadable ${VM_NAME} | grep -e -ImageUUID- | cut -d "=" -f 1 | tr -d '"' | cut -d "-" -f 4)
# アタッチを解除
VBoxManage storageattach ${VM_NAME} --storagectl IDE --port ${PORT} --device ${DEVICE} --medium none
# IDEコントローラの削除
VBoxManage storagectl ${VM_NAME} --name IDE --remove
# SATAコントローラの追加
VBoxManage storagectl ${VM_NAME} --name SATA --add sata --portcount 1 --hostiocache on
# アタッチ
# SSDとして扱う方法が分からない・・・
VBoxManage storageattach ${VM_NAME} --storagectl SATA --medium ${UUID} --port 0 --type hdd