使用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的安装目录下。