使用VirtualBox時遇到一個問題,我復制一個原來安裝好OS的VDI文件,並用它來當作新虛擬機的系統磁盤。
但當我通過Virtual Disk Manager添加新虛擬磁盤時,VirtualBox提示了這樣的錯誤信息:
A hard disk with UUID {966f9f2d-f670-42ca-8ac1-245b3d424339} or with the same properties ('D:virtualboxvb_winxpwinxp.vdi') is already registered.
VirtualBox命令詳細可見:http://www.virtualbox.org/manual/UserManual.html
這個問題的解決方法:
1、可以針對已有.vdi 為其產生新的 uuid,語法是:
VBoxManage internalcommands setvdiuuid 已有.vdi
2、要想復制一個VDI再次使用,必須通過VboxManager命令實現,語法是:
VBoxManage clonevdi 已有.vdi 新建.vdi
3、將 vdi 轉成 vmdk
VBoxManage clonehd 已有.vdi 新建.vmdk --format VMDK
4、VBoxManage命令有不少增強功能,可以參考UserGuide。
查看VDI文件信息 VBoxManage showvdiinfo 已有.vdi
壓縮VDI文件體積 VBoxManage modifyhd vdi文件的uuid 或 已有.vdi --compact
VirtualBox 復制vdi文件和修改vdi的uuid
1、復制vdi文件:VBoxManage clonehd
因為VirtualBox不允許注冊重復的uuid,而每個vdi文件都有一個唯一的uuid。所以要想拷貝一份vdi文件再次在VBOX中注冊,簡單的復制是不行的。此時我們需要用到命令VBoxManage clonehd,這個命令在克隆vdi文件時會給新文件設置一個uuid【注:要運行這個命令,先打開命令提示行,並進入到virtual box的安裝目錄】。事例如下:
代碼如下:
D:Program FilesOracleVirtualBox>VBoxManage clonehd "E:VirtualBoxUbuntu 12.04Ubuntu 12.04.vdi" "E:VirtualBoxUbuntu 12.04Ubuntu_12.04.vdi"
結果如下:
0%...10%...20%...30%...40%...50%...60%...70%...80%...90%...100%
Clone hard disk created in format 'VDI'. UUID: cf70d484-a3f0-4a87-953b-d1c8ec602c59
2、修改vdi的uuid:VBoxManage internalcommands sethduuid
當出現兩個vdi的uuid相同的錯誤時,可以使用命令VBoxManage internalcommands sethduuid修改vdi文件的uuid,事例如下:
代碼如下:
D:Program FilesOracleVirtualBox>VBoxManage internalcommands sethduuid E:VirtualBoxWin7_Ultimate_SP1_1Win7_Ultimate_SP1.vdi
結果如下:
UUID changed to: 3b5f507c-dda7-409c-a2ef-ee075435558d
但是當路徑中有空格時,要對路徑加上雙引號,如下:
代碼如下:
D:Program FilesOracleVirtualBox>VBoxManage internalcommands sethduuid "E:VirtualBoxUbuntu 12.04.vdi"
結果如下:
UUID changed to: 04094fb4-0a42-413a-a25d-9d02d804bd2a
注:使用VBoxManage命令時,需要先在命令行中切換到VirtualBox的安裝目錄下。