25
2021
04

虚拟硬盘格式vdi、vhd、vmdk相互转换

HQY

虚拟硬盘格式vdi、vhd、vmdk相互转换


Windows7的引导程序能够引导vhd格式的虚拟硬盘,而VirtualBox创建的虚拟硬盘文件是vdi格式的,怎么办呢? 以前要借助其他软件才能实现,但是VirtualBox早就悄悄为我们带来了一个VBoxManager.exe来转换格式。 命令如下(Windows环境,Linux版的应该也有VBoxManager这个二进制文件): VBoxManager存在于VirtualBox的安装目录下。 vmdk转换成vdi VBoxManage.exe clonehd source.vmdk target.vdi --format VDI  vdi转换成vmdk VBoxManage.exe clonehd source.vdi target.vmdk --format VMDK  vdi转换成vhd VBoxManage.exe clonehd source.vdi target.vhd --format VHD  vmdk转vhd,vhd转vdi、vmdk的话稍微改一点参数就OK了。 需要注意的是运行完命令之后,原文件并不会被删除。




今天从其他电脑拷贝了一个virtualbox的虚机,在本机启动,采用注册的方式启动,报如下错。


 



未能打开位于 E:/ubuntu1404_stack_new/ubuntu1404_stack_new.vbox 的虚拟电脑。


Cannot register the DVD image 'C:\Program Files\Oracle\VirtualBox\VBoxGuestAdditions.iso' {18f6c85b-ff35-449c-ae92-e193e2687a40} because a CD/DVD image 'C:\Program Files\Oracle\VirtualBox\VBoxGuestAdditions.iso' with UUID {adbd1781-57b7-48bf-a04d-88821971cc24} already exists.


返回 代码:E_INVALIDARG (0x80070057) 

组件:VirtualBoxWrap 

界面:IVirtualBox {0169423f-46b4-cde9-91af-1e9d5b6cd945}


 


1.打开虚拟机时报硬盘UUID 已经存在: 

错误信息:


Cannot register the hard disk 'F:\VirtualBox VMs\cl-11r2-rac2\cl-11r2-rac2.vdi' {cc59aac5-a2e6-4f39-b441-04d1ff29acd2} because a hard disk 'F:\VirtualBox VMs\cl-11r2-rac1\cl-11r2-rac1.vdi' with UUID {cc59aac5-a2e6-4f39-b441-04d1ff29acd2} already exists.


解决方法:


进入cmd cd 到 VirtualBox 安装目录:


cd C:\Program Files\Oracle\VirtualBox


然后指定物理文件(vbox虚拟磁盘文件),执行如下命令:




VBoxManage internalcommands sethduuid "D:\VirtualBox VMs New\区块链docker_E\区块链docker_E_N.vhd" UUID changed to: 7db19c60-8c71-456b-a81c-d263a4988230


更改成功后删除vbox虚拟磁盘文件目录下的*.vbox-prev 文件和C:\Users\Administrator\.VirtualBox 下的VirtualBox.xml和VirtualBox.xml-prev文件,用记事本打开虚拟机目录下的 *.vbox 文件,修改如下信息


<MediaRegistry> 

      <HardDisks> 

        <HardDisk uuid="{bfdcadf6-b88d-4224-a5ff-673f1ca3f413}" location="cl-11r2-rac2.vdi" format="VDI" type="Normal"/> 

更改为: 

<HardDisk uuid="{7db19c60-8c71-456b-a81c-d263a4988230}" location="cl-11r2-rac2.vdi" format="VDI" type="Normal"/> 

</HardDisks><DVDImages/><FloppyImages/> 

</MediaRegistry>


接往下找到    </StorageControllers> 节点 

<AttachedDevice type="HardDisk" port="0" device="0"> 

<Image uuid="{bfdcadf6-b88d-4224-a5ff-673f1ca3f413}"/> 改为:<Image uuid="{7db19c60-8c71-456b-a81c-d263a4988230}"/> 

</AttachedDevice>


有多个磁盘时注意磁盘顺序,虚拟机主磁盘通常port="0" ; 

注意要删除C:\Users\Administrator\.VirtualBox 下的VirtualBox.xml和VirtualBox.xml-prev文件,因为默认情况下虚拟机打开时会读取这两个文件,更新和同步虚拟机目录下的*.vbox和*.vbox-prev文件,这样会导致修改的内容被覆盖,修改无效。


效果图






 

————————————————

版权声明:本文为CSDN博主「LINUXK_常」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。

原文链接:https://blog.csdn.net/weixin_39559301/article/details/82498819



HQY
« 上一篇 下一篇 »

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。