作者 主題: vbox 啟動 vm 出現 failed to start machine...vdi does not match...  (閱讀 3517 次)

0 會員 與 1 訪客 正在閱讀本文。

Yamaka

  • 俺是博士!
  • *****
  • 文章數: 4913
    • 檢視個人資料
    • http://www.ecmagic.com
早上重新啟動某個 vm,結果出現錯誤訊息
(以下在純文字模式下操作)

代碼: [選擇]
$ VBoxHeadless -s $VM &
Oracle VM VirtualBox Headless Interface 4.2.14
(C) 2008-2013 Oracle Corporation
All rights reserved.

Error: failed to start machine. Error message: UUID {08bdda17-96f9-4363-a9bb-0807686fd0a8}
of the medium '/path_to/xxx.vdi' does not match the value {4c8bf1cd-37be-4d18-850c-e3151a7941c6}
stored in the media registry ('/home/xxxxx/.VirtualBox/VirtualBox.xml')


之前是有更換過 vdi 的 uuid,但是上次卻能正常啟動,沒出現這問題
先卸載 vdi 再掛上去也無效,系統一直都使用舊的 uuid

代碼: [選擇]
$ VBoxManage showhdinfo xxx.vdi
UUID:                 4c8bf1cd-37be-4d18-850c-e3151a7941c6
Accessible:           no
Access Error:         UUID {08bdda17-96f9-4363-a9bb-0807686fd0a8} of the medium '/path_to/xxx.vdi'
                      does not match the value {4c8bf1cd-37be-4d18-850c-e3151a7941c6} stored in the
                      media registry ('/home/xxxxx/.VirtualBox/VirtualBox.xml')
Logical size:         0 MBytes
Current size on disk: 0 MBytes
Type:                 normal (base)
Storage format:       VDI
Format variant:       dynamic default
In use by VMs:        Ubuntu804-vm (UUID: 730f7deb-19bb-46f7-aabc-d4aba9cec40a)
Location:             /path_to/xxx.vdi

4c8bf1cd-37be-4d18-850c-e3151a7941c6 是舊的 uuid
08bdda17-96f9-4363-a9bb-0807686fd0a8 才是正確的 uuid
Accessible 狀態是 no

用 VBoxManage 查一下指令發現有 closemedium 功能

代碼: [選擇]
$ VBoxManage |grep closemedium
  closemedium               disk|dvd|floppy <uuid>|<filename>


所以,解決方式

1. 先卸載 vdi
代碼: [選擇]
$ VBoxManage storageattach $VM --storagectl "SATA Controller" --port 0 --device 0 --type hdd --medium none
2. 關閉 vdi
代碼: [選擇]
$ VBoxManage closemedium disk /path_to/xxx.vdi
$ VBoxManage showhdinfo /path_to/xxx.vdi
UUID:                 08bdda17-96f9-4363-a9bb-0807686fd0a8
Accessible:           yes
Logical size:         122880 MBytes
Current size on disk: 43279 MBytes
Type:                 normal (base)
Storage format:       VDI
Format variant:       dynamic default
Location:             /path_to/xxx.vdi
Accessible 狀態 yes


3. 重新掛載 vdi
代碼: [選擇]
$ VBoxManage storageattach $VM --storagectl "SATA Controller" --port 0 --device 0 --type hdd --medium /path_to/xxx.vdi
4. 啟動 vm
代碼: [選擇]
$ VBoxHeadless -s $VM &
結束!^_^

ps:
  closemedium 功能有一個參數『--delete』,上面的情形不要加這個參數,不然會連 vdi 檔都刪了 :D