---------------------------------------------------------------------------
---- 本文为andkylee个人原创,请在尊重作者劳动成果的前提下进行转载;
---- 转载务必注明原始出处 : http://blog.csdn.net/andkylee
--- 2010-08-16 19:13:16
---- 关键字: virtualbox xml hard disk uuid VBoxManage.exe clonehd
----------------------------------------------------------------------------
前日误删除了C:/Documents and Settings/Administrator/.virtualbox目录,导致virtualbox上配置的redhat64bit虚拟机不能启动了。
试图拷贝一个其它虚拟机的xml文件修改一下,但是不可以。提示物理盘的uuid不匹配。那个虚拟机的xml文件丢失了,那么此虚拟机vdi文件上记录的uuid就无从得知了。
难道此redhat64bit虚拟机就不能用了?文件好几个G呢,删除了又太可惜,重装一遍很麻烦。
最后,在网上找到一个解决的办法:
利用virtualbox自带的命令行工具VBoxManage.exe 对残留的vdi虚拟机文件进行克隆,最后会重新生成一个uuid。
步骤一:
VBoxManage.exe clonehd D:/virtual-machine/linux5_64bit/linux5_64bit.vdi D:/virtual-machine/linux5_64bit/linux5.vdi
耐心等待一会之后,会在命令行的下面显示一个重新生成的uuid,此uuid和D:/virtual-machine/linux5_64bit/linux5.vdi中的磁盘物理uuid是一致的。
步骤二:
在VirtualBox.xml文件中有:
<MachineRegistry>
<MachineEntry uuid="{014d4435-25a9-4ce3-9aa6-ea18cc407698 }" src="Machines/linux5_64bit/linux5.xml "/>
<MachineEntry uuid="{4d307441-f7a7-4196-8dee-d4d6910b0bae}" src="Machines/VMWIN7/VMWIN7.xml"/>
<MachineEntry uuid="{8046d767-abf4-4eb5-bb73-451b54fbba38}" src="D:/virtual-machine/redhat64/redhat64.xml"/>
</MachineRegistry>
对应本机安装的所有的虚拟机,记录各个虚拟机的配置xml文件的位置,以及每个虚拟机对应的机器id(machine uuid)。
步骤三:
找到redhat64bit虚拟机的配置文件Machines/linux5_64bit/linux5.xml,其中
<StorageController name="SATA 控制器" type="AHCI" PortCount="1" useHostIOCache="false" IDE0MasterEmulationPort="0" IDE0SlaveEmulationPort="1" IDE1MasterEmulationPort="2" IDE1SlaveEmulationPort="3">
<AttachedDevice type="HardDisk" port="0" device="0">
<Image uuid="{4a0544d6-e496-4b21-af8c-e432410ea0a7 }"/>
</AttachedDevice>
</StorageController>
上面的image uuid就是通过VBoxManage.exe clonehd重新生成的硬盘id。
步骤四:
linux5.xml中
<Machine uuid="{014d4435-25a9-4ce3-9aa6-ea18cc407698 }" name="linux5" OSType="RedHat_64" lastStateChange="2010-08-16T10:41:07Z">
的014d4435-25a9-4ce3-9aa6-ea18cc407698 要和VirtualBox.xml中的MachineEntry uuid 保持一致。
这样基本上重新打开以下virtualbox虚拟机,就能使用redhat64bit虚拟机了。呵呵。
参考:http://www.modhul.com/2009/06/17/how-to-clone-or-copy-a-virtualbox-virtual-disk/