我正在考虑将 VMDK 硬盘转换为 VHD(虚拟硬盘)。VMDK 来自我们的 VMware 机器的导出,我想尝试将其导入 Azure。
知道如何实现吗?我尝试了各种小工具来尝试在两种格式之间转换,但到目前为止毫无效果。大多数工具都以某种方式声明 VMDK 无效。
答案1
Microsoft 虚拟机转换器 (MVMC) 包含 Microsoft 虚拟磁盘转换器工具 (MVDC.exe),可将 VMDK 文件转换为 VHD 文件。
http://www.microsoft.com/en-ca/download/details.aspx?id=42497
MVDC SrcDisk DstDisk [/?] [/Dyn]
SrcDisk Specifies the source VMDK disk path to be converted.
DstDisk Specifies the path for the converted disk.
[/?] Show Help
[/Dyn] Indicates the destination disk should be dynamic rather than fixed.
例如:
C:\Program Files (x86)\Microsoft Virtual Machine Converter Solution Accelerator>mvdc "D:\VM\Windows Server 2008 R2 x64\Windows Server 2008 R2 x64.vmdk" "D:\VM\Windows Server 2008 R2 x64\Windows Server 2008 R2 x64.vhd"
Step 1 of 3: Loading Source Disk...
Step 1 of 3: Loading Source Disk Completed.
Source file found of size 40.0 GB.
DiskGeometry:
Cylinders: 5221
Tracks/Cylinder: 255
Sectors/Track: 63
Bytes/Sector: 512
MediaType: FixedMedia
Step 2 of 3: Creating Destination Disk...
Step 2 of 3: Creating Destination Disk Completed.
Destination file created of size 40.0 GB.
DiskGeometry:
Cylinders: 5221
Tracks/Cylinder: 255
Sectors/Track: 63
Bytes/Sector: 512
MediaType: FixedMedia
Step 3 of 3: Copying raw data...
Step 3 of 3: Copying raw data completed.
Conversion Complete! The converted file is located at: D:\VM\Windows Server 2008 R2 x64\Windows Server 2008 R2 x64.vhd
默认情况下,它会创建一个固定大小的 VHD,这也是 Azure VM 所需要的。
将其转换为 VHD 后,最好在 Hyper-V 中本地启动它,确保它已配置为动态 IP,并且已启用 RDP,并且您能够成功地通过 RDP 进入它。然后,如果您想将其用作基础映像,您还需要使用 sysprep 对其进行通用化。如果您想将其用于单个 Azure VM,请不要运行 sysprep,而是将其作为磁盘而不是映像上传(Csupload Add-Disk 而不是 Add-PersistentVMImage)。
也可以看看: http://www.windowsazure.com/en-us/manage/windows/common-tasks/upload-a-vhd/
答案2
我为此使用了 VirtualBox(实际上是与 VirtualBox 一起安装的 CLI vboxmanage),在安装 VirtualBox 和 Hyper-V 时我没有遇到任何问题,但不能同时运行它们,那是另一个线程!
无论如何在提升的(管理员模式)提示下使用
cd %programfiles%\Oracle\VirtualBox
vboxmanage clonehd "C:\tmp\file.vmdk" "C:\tmp\file.vhd" -format VHD
注意,您可以使用 7zip 从 OVA 中提取 VMDK!
答案3
将 .vmdk 转换为 .vhdk 的工具已更新。
Microsoft Virtual Machine Converter 2.0 于 2014 年 4 月左右发布。
以下是该工具的链接:Microsoft 虚拟机转换器 2.0
新工具改变了从使用 MVDC.exe 到使用 powershell cmdlet 的转换方式。
我关注了这篇优秀的博客来解决这个问题。Microsoft 虚拟机转换器 2.0 的新增功能
以下是有关如何操作的详细摘要。
默认安装位置是:
C:\Program Files\Microsoft Virtual Machine Converter
以本地管理员身份使用 powershell 然后您可以加载 cmdlet:
Import-Module .\MvmcCmdlet.psd1
加载 cmdlet 后,您可以调用以下命令:
ConvertTo-MvmcVirtualHardDisk
这将询问.vmdk 文件路径:
提供以下参数的值:
SourceLiteralPath: D:\some.vmdk
然后它将开始转换,并在转换后将 .vhdk 放置在以下路径中:
C:\Program Files\Microsoft Virtual Machine Converter
我希望这对其他人有帮助。
答案4
@ElvisLives 和 @AvkashChauhan 的回答很好,但对于那些不害怕使用 powershell 的人来说这是一个很好的解决方案。
- 首先你需要下载并安装Microsoft 虚拟机转换器 3.0来自微软网站。
接下来,打开提升的 PowerShell 提示符并运行以下命令(更改路径以匹配您的源 VMDK 文件和新 VHD 文件的目标路径):
-导入模块'C:\Program Files\Microsoft Virtual Machine Converter\MvmcCmdlet.psd1'
-ConvertTo-MvmcVirtualHardDisk -SourceLiteralPath “C:\Ubuntu-disk1.vmdk” -DestinationLiteralPath “C:\Ubuntu-disk1.vhd” -VhdType FixedHardDisk -VhdFormat Vhd
这样做时不需要 RDP