修复virtualbox中丢失xml文件导致不能启动虚拟机的问题
前日误删除了C:\Documents and Settings\Administrator\.virtualbox目录,导致virtualbox上配置的redhat64bit虚拟机不能启动了。
试图拷贝一个其它虚拟机的xml文件修改一下,但是不可以。提示物理盘的uuid不匹配。那个虚拟机的xml文件丢失了,那么此虚拟机vdi文件上记录的uuid就无从得知了。
难道此redhat64bit虚拟机就不能用了?文件好几个G呢,删除了又太可惜,重装一遍很麻烦。
最后,在网上找到一个解决的办法:
利用virtualbox自带的命令行工具VBoxManage.exe 对残留的vdi虚拟机文件进行克隆,最后会重新生成一个uuid。
D:\Program Files\Oracle\VirtualBox>VBoxManage.exe clonehd /?
Oracle VM VirtualBox Command Line Management Interface Version 3.2.6
(C) 2005-2010 Oracle Corporation
All rights reserved.
Usage:
VBoxManage clonehd <uuid>|<filename> <outputfile>
[--format VDI|VMDK|VHD|RAW|<other>]
[--variant Standard,Fixed,Split2G,Stream,ESX]
[--type normal|writethrough|immutable]
[--remember] [--existing]
Syntax error: Mandatory output file parameter missing
步骤一:
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/
————————————————————————————————-
—- 本文为andkylee个人原创,请在尊重作者劳动成果的前提下进行转载;
—- 转载务必注明原始出处 : http://www.dbainfo.net
—- 关键字:virtualbox xml hard disk uuid VBoxManage.exe clonehd
————————————————————————————————-