本篇文章是家庭网络的不归路系列的补充文章,主要使用StarWind V2V Converter软件对不同格式的虚拟机镜像进行互相转换。
因为我的主要宿主机都为ESXi,因此本篇文章将会以ESXi为主,如需转换至其他虚拟机格式,可能选项或要求会有所不同
StarWind V2V Converter是一款在Windows下运行的免费软件,在官网只需要填写一个表单即可下载,软件功能还是比较强大,支持VMDK(VMWare Virtual Machine Disk Format)、VHD/VHDX(Microsoft Virtual Hard Disk format)、IMG(Raw Image)、QCOW2(QEMU Copy On Write)4种虚拟机镜像之间的互相转换。
安装
安装过程我就略了,官网下载然后无脑Next就好
使用
运行后,会先让你选择源(source),这里我的源在本地磁盘里,所以我就选择“Local file”了,如果源在ESXi或Hyper-V里,软件还可以通过提供用户名&密码&IP的方式直接连接到远端源
然后需要选择源文件的位置,这个没啥难度,点一点就好了。注意如果source选择了远端的话这一步会让你输入用户名和密码,以及IP
接下来需要选择目标位置(destination location),这里我就转换到本地好了。同理,如果选择了远端源则需要输入用户名和密码,以及IP
这一步需要选择目标格式(destination image format),这里根据我的需要选择了VMDK
接下来需要选择镜像属性(image format option),不同的目标格式选项也不尽相同。这里我就根据我的需要选择了“ESXi Server image”。
注意,VMware Workstations和ESXi Server的VMDK略有一些区别,它们之间可无法相互通用,具体的现象包括文件系统损坏,文件系统异常,系统无法启动等。千万不要选错了。
这一步会让你选择磁盘模式,支持growable(自增长)和pre-allocated(预分配)两种模式。如果在目标位置那一步选择了本地,则只能转换为pre-allocated模式,如果选择了远端,则可以转换为growable或pre-allocated。这里我就只能选择“ESXi pre-allocated image”了
最后一步就是设置转换后的文件名了,没什么问题直接“Convert”就好
转换耗时取决于源镜像和目标镜像,通常来讲还是很快的
至此,转换过程已经结束,尽情使用吧!
针对VMDK补充内容
为什么一个源镜像转换完后产生了两个文件?
转换完成的VMDK有两个文件,它们会使用以下命名格式:
- <image name>.vmdk
- <image name>-flat.vmdk
默认情况下,如果要将该vmdk导入至ESXi的存储中,必须保证这两个文件同时存在且存放在同一路径,否则无法构成完整的vmdk。
<image name>.vmdk是用于存储该vmdk的各种声明信息,可以通过文本编辑工具来打开查看,具体内容我就不展开了。
而<image name>-flat.vmdk才是真正广义上的“虚拟磁盘”,切记不要随便编辑。
为什么重命名vmdk文件后虚拟机无法正常启动或报找不到磁盘文件?
问题就出在vmdk的声明文件,即<image name>.vmdk,该文件记录了虚拟磁盘的文件名。如果你只修改了<image naem>-flat.vmdk的文件名称,但未同步更新<image-name>.vmdk的声明内容的话,是无济于事的。
解决办法也很简单,如果你想野路子一点:看上面那张图,把引号内的文件名改成实际文件名即可。如果你想优雅一点:则需要将文件导入至ESXi,并通过SSH登陆至对应主机,使用vmkfstools进行重命名,具体内容就不展开了。
注意:操作vmdk前务必将虚拟机停机并做好备份,如果该文件已经投放到生产环境当中使用,不建议修改虚拟磁盘名称,除非你知道自己在做什么。
0 个评论