gpt4 book ai didi

vmware - 将 VmWare 虚拟磁盘转换为 HyperV 时出错

转载 作者:行者123 更新时间:2023-12-03 05:53:25 26 4
gpt4 key购买 nike

我从客户处收到了 VmWare 镜像,用于某些测试目的。我需要将其转换为 Hyper-V。我按照 http://www.askme4tech.com/how-convert-vmware-virtual-machine-hyper-v 中的步骤操作。我安装了 Microsoft Virtual Machine Converter 并开始在 PowerShell 中转换虚拟磁盘。但是我遇到了错误:

C:\Windows\system32> ConvertTo-MvmcVirtualHardDisk -SourceLiteralPath "c:\temp\disk2.vmdk" -DestinationLiteralPath "c:\data\HyperV\PH\" -VhdType DynamicHardDisk -VhdFormat Vhdx

ConvertTo-MvmcVirtualHardDisk : The entry 1 is not a supported disk database entry for the descriptor.
At line:1 char:1
+ ConvertTo-MvmcVirtualHardDisk -SourceLiteralPath "c:\temp\disk2.vmdk"
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : WriteError: (Microsoft.Accel...nversionService:DriveConversionService) [ConvertTo-MvmcVirtualHardDisk], VmdkDescriptorParseException
+ FullyQualifiedErrorId : DiskConversion,Microsoft.Accelerators.Mvmc.Cmdlet.Commands.ConvertToMvmcVirtualHardDiskCommand

ConvertTo-MvmcVirtualHardDisk : One or more errors occurred.
At line:1 char:1
+ ConvertTo-MvmcVirtualHardDisk -SourceLiteralPath "c:\temp\disk2.vmdk"
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : WriteError: (Microsoft.Accel...nversionService:DriveConversionService) [ConvertTo-MvmcVirtualHardDisk], AggregateException
+ FullyQualifiedErrorId : DiskConversion,Microsoft.Accelerators.Mvmc.Cmdlet.Commands.ConvertToMvmcVirtualHardDiskCommand

最佳答案

我找到了一些临时解决方案 - 也许有点黑客,但至少有效。

深入研究在谷歌上发现的类似问题,我找到了一个从 VMDK 文件中提取磁盘描述符的工具。我的 VMDK 描述符的内容是这样的:

# Disk DescriptorFile
version=1
encoding="windows-1252"
CID=5379bf0f
parentCID=ffffffff
isNativeSnapshot="no"
createType="monolithicSparse"

# Extent description
RW 209715200 SPARSE "00054_C8PHS1096_151216-disk2.vmdk"

# The Disk Data Base
#DDB

ddb.adapterType = "lsilogic"
ddb.geometry.biosCylinders = "13054"
ddb.geometry.biosHeads = "255"
ddb.geometry.biosSectors = "63"
ddb.geometry.cylinders = "13054"
ddb.geometry.heads = "255"
ddb.geometry.sectors = "63"
ddb.longContentID = "64d4e008b7227bcce8aa54995379bf0f"
ddb.toolsInstallType = "1"
ddb.toolsVersion = "10241"
ddb.uuid = "60 00 C2 96 f7 70 f2 fd-b5 02 9e 46 6c df 00 2e"
ddb.virtualHWVersion = "10"

错误消息以及提取的描述符的内容引起了我的注意,特别是这一行:

ddb.toolsInstallType = "1"

因为它包含我的错误消息中的奇怪值1。我编辑了描述符 - 只需用 #(哈希标记)注释掉该单行,将其注入(inject)回 VMDK 中,瞧 - 转换现在可以正常工作了。

归功于此链接https://communities.vmware.com/thread/343214?start=0&tstart=0当然还有 Dariusz Stanislawek 的工具。

仅供引用,我所做的步骤:

  • 下载并解压dsfok工具
  • 使用dsfo.exe "c:\temp\disk2.vmdk"512 1024 Descriptor1.txt提取描述符
  • 在 Notepad++ 中编辑描述 rune 件:注释上述行(因为我添加了额外的单个字符 (#),我还从末尾删除了一个 NULL 字符保持文件大小为 1024 字节(不确定是否需要)。
  • 使用 dsfi.exe "c:\temp\disk2.vmdk"512 1024 Descriptor1.txt 将描述符注入(inject)回 VMDK
  • 对另一个磁盘重复这些步骤(我的虚拟机有两个 .vmdk 文件)
  • 重新发出 ConvertTo-MvmcVirtualHardDisk 命令

备注

在 Hyper-V 中创建虚拟机后,机器无法启动,一直处于黑屏状态,光标快速闪烁(所谓的黑屏死机)。我不知道这是由于转换造成的,还是因为VMWare中的原始磁盘是SCSI,而我将它们附加为IDE。为了解决这个问题,我附上了带有 Windows 镜像的 DVD 并从 DVD 启动。我运行 Rapair 系统,启动命令行并运行

bootrec.exe /fixBoot

最后,虚拟机启动并运行......故事结束。

关于vmware - 将 VmWare 虚拟磁盘转换为 HyperV 时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37481737/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com