Ubuntu下VirtualBox的vdi文件克隆方法


使用VirtualBox时遇到一个问题,我复制一个原来安装好OS的VDI文件,并用它来当作新虚拟机的系统磁盘。

 但当我通过Virtual Disk Manager添加新虚拟磁盘时,VirtualBox提示了这样的错误信息:
A hard disk with UUID {966f9f2d-f670-42ca-8ac1-245b3d424339} or with the same properties ('D:\virtualbox\vb_winxp\winxp.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 Files\Oracle\VirtualBox>VBoxManage clonehd "E:\VirtualBox\Ubuntu 12.04\Ubuntu 12.04.vdi" "E:\VirtualBox\Ubuntu 12.04\Ubuntu_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 Files\Oracle\VirtualBox>VBoxManage internalcommands sethduuid E:\VirtualBox\Win7_Ultimate_SP1_1\Win7_Ultimate_SP1.vdi

结果如下:
UUID changed to: 3b5f507c-dda7-409c-a2ef-ee075435558d

但是当路径中有空格时,要对路径加上双引号,如下:


复制代码
代码如下:

D:\Program Files\Oracle\VirtualBox>VBoxManage internalcommands sethduuid "E:\VirtualBox\Ubuntu 12.04.vdi"

结果如下:
UUID changed to: 04094fb4-0a42-413a-a25d-9d02d804bd2a
 
注:使用VBoxManage命令时,需要先在命令行中切换到VirtualBox的安装目录下。



相关阅读:
C++的头文件和实现文件详解
ASP.NET中TimeSpan的用法实例解析
Win10 最新预览版10061已发放 暂不支持升级
Android编程之SurfaceView实例详解
PHP使用pear实现mail发送功能 windows环境下配置pear
用JS动态改变表单form里的action值属性的两种方法
PHP实现自动对图片进行滚动显示的方法
Android Camera开发手电筒功能
Win10 10122预览版 更新内容大全
JavaScript显示表单内元素数量的方法
jquery 页面滚动到指定DIV实现代码
Win10启动慢的很慢该怎么办? win10启动加速的全面教程
c#使用wmi查询usb设备信息示例
用HTML5中的Canvas结合公式绘制粒子运动的教程
快速导航

Copyright © 2016 phpStudy |