逆引きマニュアル: VirtualBoxでIDEからSATAに付け替える方法

投稿日:

やりたいこと

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

補足

公式サイト

マニュアル