问题描述
如果我们有现成的虚拟硬盘文件(如.vdi格式), 那么可以在VirtualBox下基于该虚拟硬盘文件来新建虚拟机。
有时我们会将该虚拟硬盘文件拷贝一份,然后试图基于这两个硬盘文件新建两个完全隔离的虚拟机。建立第一个时还很顺利,但是试图建立第二个虚拟机时遇到了意料之外的麻烦。
手头有一个已经与虚拟机相关联的虚拟硬盘文件(ubuntu-001.vdi),直接复制一份并改名(ubuntu-002.vdi),然后基于它建立虚拟机时却会报错:
打开虚拟盘文件E:\vm\ubuntu-002.vdi 失败.
Cannot register the hard disk 'E:\vm\ubuntu-002.vdi' {05ce8bf1-5185-4abc-96ba-f51b6146151e} because a hard disk 'E:\vm\ubuntu-001.vdi' with UUID {05ce8bf1-5185-4abc-96ba-f51b6146151e} already exists.
返回 代码:E_INVALIDARG (0x80070057)
组件:VirtualBoxWrap
界面:IVirtualBox {0169423f-46b4-cde9-91af-1e9d5b6cd945}
被召者 RC:VBOX_E_OBJECT_NOT_FOUND (0x80BB0001)
貌似是这样的原因:每个虚拟硬盘文件都有一个统一且唯一的标识符UUID,在我们的PC上安装的virtualbox下,每个建立的虚拟机关联的硬盘文件的UUID都不能冲突。
命令行模式下操作
可以改动已经复制的文件的uuid,在cmd中,先将目录切换到VirtualBox的安装目录(如E:\Program Files\Oracle\VirtualBox),然后使用下面的命令:
E:\Program Files\Oracle\VirtualBox> VBoxManage.exe internalcommands sethduuid e:\vm\ubuntu-002.vdi
也可以使用VirtualBox管理工具克隆一个硬盘镜像文件:
E:\Program Files\Oracle\VirtualBox> VBoxManage.exe clonehd e:\vm\ubuntu-001.vdi e:\vm\ubuntu-002.vdi
图形模式下操作
virtualbox管理器下菜单栏里的“管理”->“虚拟介质管理”,其中 xp_001 对应的硬盘文件名为 xp_001.vdi, 这是我们的操作对象
然后在“虚拟介质管理器”对话框中选中具体的硬盘文件,再点击“复制”
图形界面下的复制流程很简单,一路点击下一步,默认会将复制的虚拟硬盘文件放到与原文件相同的目录下,此处不再赘述。