在 Windows Server 中管理 VHD 文件时出错:“找不到指定文件的虚拟磁盘提供程序”

本文提供了在 Hyper-V 管理器中创建虚拟机时发生的错误的解决方案。

原始 KB 数: 2013544

现象

尝试在 Windows Server 中的 Hyper-V 管理器中创建虚拟机时,会收到以下错误消息:

日志名称:Microsoft-Windows-Hyper-V-VMMS-Admin
源:Microsoft-Windows-Hyper-V-VMMS
事件 ID:14098
级别:错误
说明:
虚拟机管理服务所需的“存储虚拟化服务提供商”驱动程序未安装或禁用。 检查设置或尝试重新安装 Hyper-V 角色。

日志名称:Microsoft-Windows-Hyper-V-Image-Management-Service-Admin
源:Microsoft-Windows-Hyper-V-Image-Management-Service
事件 ID:15062
级别:错误
说明:
“系统无法创建”E:\VMachine\虚拟机\TEST\TEST.vhd”。 错误代码:2424869

尝试使用 Hyper-V 管理器、存储管理器或 Diskpart 等工具与虚拟硬盘(VHD)文件交互时,会收到以下错误消息:

标题:虚拟磁盘管理器
说明:找不到指定文件的虚拟磁盘提供程序。

还可以在 VHDMP 日志中看到以下记录的事件:

事件 ID 3 :无法显示 VHD <驱动器号\Path\virtual 硬盘驱动器\VMNAME_########-###-############.vhd>。 错误状态:0xC0000061

尝试使用 Hyper-V 管理器启动虚拟机时,会收到以下错误消息:

注意

计算机名称、路径和 GUID 将有所不同,因为它们对每个环境都是唯一的。

标题:Hyper-V 管理器
说明:尝试启动所选虚拟机(s)的< VM 名称>无法启动时出错。

Microsoft模拟 IDE 控制器(实例 ID {########-####-#-############}):无法打开电源并显示错误:“附加到系统的设备无法正常工作。

无法打开附件“Drive Letter:\path\Virtual Hard drivers\VMNAME_########-##-############.vhd”。 错误:“附加到系统的设备未正常工作”

无法打开附件“Drive Letter:\path\Virtual Hard drivers\VMNAME_########-##-############.vhd”。 错误:“附加到系统的设备未正常工作”

“VM 名称”无法启动(虚拟机 ID ########-####-#-############)

“VM NAME”Microsoft模拟 IDE 控制器(实例 ID {########-##-############}):无法打开电源并出现错误:“附加到系统的设备无法正常工作。 (0x8007001F) (虚拟机 ID: ########-####-#-#-############)

“VM NAME”:无法打开附件“Drive Letter:\path\Virtual Hard drivers\VMNAME_########-###-############.vhd”。 错误:“附加到系统的设备不起作用”(0x8007001F) (虚拟机 ID: ########-##-#-##-############)

“VM NAME”:无法打开附件“Drive Letter:\path\Virtual Hard drivers\VMNAME_########-###-############.vhd”。 错误:“附加到系统的设备不起作用”(0x8007001F) (虚拟机 ID: ########-##-#-##-############)

原因

FSDepends.sys和VHDMP.sys存在计时问题。 在 Windows Server 计算机上安装某些备份程序时,会出现此计时问题。 默认情况下,注册表中的FSDepends.sys起始值设置为 “手动”。 当任何第三方备份软件加载其磁带设备驱动程序时,软件有时可能会导致FSDepends.sys,并且VHDMP.sys未正确初始化。

解决方法

若要解决这些问题,应将FSDepends.sys设置为 Boot 的起始值(0x0)。

在更改注册表之前,请确保备份注册表。 此外,请确保知道如何还原注册表(如果出现问题)。

有关如何备份、还原和更改注册表的详细信息,请单击以下文章编号以查看Microsoft知识库中的文章:
322756 如何备份和还原 Windows 中的注册表

若要解决这些问题,请执行以下步骤:

  1. 启动“注册表编辑器”。

  2. 找到以下注册表项:
    HKLM\SYSTEM\CurrentControlSet\Services\FsDepends

  3. 在“FsDepends”键下,将REG_DWORD值“Start”从 3 更改为 0

  4. 重新启动计算机。

详细信息

计算机重启后,FSDepends.sys立即启动,并且计时问题不再发生。
或者,可以尝试以下两种解决方法之一。 这两种方法都不推荐。 但是,如果无法或需要编辑注册表,则它们可以纠正问题:

  • 关闭任何附加的磁带设备并重启服务器。 服务器启动后,立即打开磁带设备。
  • 禁用名为TPFilter.sys的设备驱动程序。