Hyper-V与虚拟化

排查群集或独立环境中不可访问或无响应的 Hyper-V 虚拟机问题 - Windows Server

· 52CE 我爱测

本文提供了详细指南,帮助你排查和修复 Hyper-V 虚拟机 (VM) 在未能启动、处于过渡状态中(如启动、停止、保存或暂停)或在群集环境或独立环境中无法访问时,因“卡住”(停止响应)而导致的问题。 这些问题中的许多都会产生类似的症状,即使它们有不同的原因。 例如,导致正在运行的 VM 停止响应的相同问题可能会阻止脱机 VM 启动。 此外,这些症状可能出现在基础结构的不同级别,例如 Hyper-V 管理器或故障转移群集管理器。 故障排除清单 步骤 1:确定

本文提供了详细指南,帮助你排查和修复 Hyper-V 虚拟机 (VM) 在未能启动、处于过渡状态中(如启动、停止、保存或暂停)或在群集环境或独立环境中无法访问时,因“卡住”(停止响应)而导致的问题。 这些问题中的许多都会产生类似的症状,即使它们有不同的原因。 例如,导致正在运行的 VM 停止响应的相同问题可能会阻止脱机 VM 启动。 此外,这些症状可能出现在基础结构的不同级别,例如 Hyper-V 管理器或故障转移群集管理器。

故障排除清单

步骤 1:确定问题的范围

  1. 使用 Hyper-V 管理器、故障转移群集管理器或 Windows PowerShell 识别受影响的 VM、主机和群集资源。 请注意任何错误消息。

  2. 确保 VM 具有唯一的 GUID。

  3. 如果 VM 卡在以下任一状态中,请参阅 VM“挂起”或显示为“停滞”处于过渡状态(例如启动、停止或还原)。

    • 正在启动
    • 正在停止
    • 已保存-关键
    • 运行中的关键任务
    • 已暂停
    • 恢复
    • 在线待定
  4. 查看系统事件日志、Hyper-V 日志和群集事件日志。 请注意任何相关的条目、错误消息和事件 ID。 以下事件 ID 和事件 ID 组合表示常见问题。 按照链接查看这些问题的特定解决方案:

    • 事件 ID 32 和事件 ID 21502
    • 事件 ID 1069
    • 事件 ID 1205
    • 事件 ID 1135、事件 ID 1795、事件 ID 5257 和虚拟机已暂停
    • 事件 ID 1135。 通常情况下,事件 ID 1135 表示一个或多个群集节点已从活动的故障转移群集成员资格中删除。 有关如何排查此问题的详细信息,请参阅 排查事件 ID 1135 的群集问题。
    • 事件 ID 5120。 在常规级别,事件 ID 5120 指示涉及群集共享卷(CSV)的问题。 有关如何排查此问题的详细信息,请参阅 事件 ID 5120 群集共享卷故障排除指南。
  5. 请注意影响基础结构的任何最近更改或事件。 此类更改包括系统或驱动程序更新,以及电源或网络连接中断。

  6. 请注意任何异常的系统活动,例如以下行为:

    • VM 重复重启。
    • 虚拟机无法成功进行实时迁移。
    • 群集切换失败或未正确切换。
    • 群集资源处于脱机状态。
  7. 有关最新的已知问题和通知信息,请查看 Windows Server 发布信息 页。

  8. 有关可能影响硬件的更新和已知问题的信息,请联系硬件供应商和其他第三方供应商。

步骤 2:确保作系统和驱动程序是最新的

  1. 确保磁盘和网络硬件驱动程序是最新的。
  2. 确保所有服务器都安装了最新的 Windows 更新版本。
  3. 在群集环境中,确保每个群集中的所有节点都运行相同的 Windows Server 版本。

步骤 3:查看权限和安全设置

确保安全基础结构适合 Hyper-V。 以下技术可能会导致问题:

  • 防病毒或第三方筛选器驱动程序通过阻止文件访问或导致合并失败来干扰 Hyper-V。
  • BitLocker 锁定的磁盘可能会阻止 VM 在更新或重启后启动。 BitLocker 还可能会阻止访问虚拟机文件。 此行为可能会阻止 VM 启动或响应。
  1. 查看 Hyper-V 服务帐户的权限。 此帐户必须完全控制 VM 文件和文件夹。

  2. 查看 Hyper-V 主机的建议防病毒排除项,并确保正确的排除项已到位。

  3. 使用 fltmc 识别和卸载有问题的筛选器驱动程序。 打开 Windows 命令提示符窗口,然后运行以下命令:

    fltmc unload <DriverName>
    
  4. 如果在卷上启用了 BitLocker,请在 PowerShell 命令提示符处运行以下命令:

     manage-bde -unlock <DriveLetter>: -RecoveryPassword <RecoveryPassword>
    

步骤 4:查看存储子系统和文件系统

重要

本部分指示你运行 chkdsk /f /r 命令。 此命令需要对目标磁盘进行独占访问,需要一些时间才能完成。

  1. 使用磁盘管理或 diskpart 工具验证所有磁盘卷是否处于联机状态并正确分配。

  2. 如果磁盘卷为 RAW 或缺失,请重新分配其驱动器号,然后使用 chkdsk 来修复该卷。 打开管理 Windows 命令提示符窗口,然后运行以下命令:

      chkdsk <DriveLetter>: /f /r
    

    如果此命令未修复磁盘问题,请参阅以下文章了解详细信息:

  3. 在托管 VM 文件的卷中,查看 VM 文件夹的内容。 确保存在相应的 VM 文件(.vmcx(配置)、.vmrs(运行时状态)、.vhdx(磁盘)和 .avhdx(差异磁盘)。

    • 如果 VM 的 .vmcx 文件丢失或损坏,请使用 .vhdx 文件来生成新的 VM。 还可以从备份还原受影响的 VM。

      注释

      如果配置文件丢失或损坏,Hyper-V 无法识别或启动 VM。 迁移失败或存储问题或突然关闭后,配置文件可能会损坏。

    • 如果 VM 的 .avhdx 文件缺失或损坏,请在 PowerShell 命令提示符处运行以下 cmdlet:

      Set-VHD -Path <VhdxPath> -ParentPath <ParentVhdxPath> -IgnoreIDMismatch
      

步骤 5:查看群集运行状况

如果在故障转移群集中使用 Hyper-V,则群集必须保持健康,VM才能正常运行。 群集配置中的问题可能会导致许多不同的问题,包括实时迁移中的故障、意外的 VM 重启和意外的故障转移事件。

使用群集验证向导或通过在 PowerShell 命令提示符处运行以下 cmdlet 来验证群集运行状况和配置:

Test-Cluster

如果群集无法正常运行,请参阅 适用于 Windows Server 的高可用性故障排除文档。

步骤 6:删除 VM 保存的状态或检查点

影响检查点(也称为 快照)的问题(例如孤立的检查点、链损坏或不完整的合并)可能会阻止 VM 正常运行或阻止脱机 VM 启动。

重要

如果删除 VM 的检查点,VM 可能会丢失任何未保存或暂时性数据。

若要删除检查点,请在 PowerShell 命令提示符处运行以下 cmdlet:

Get-VMSnapshot -VMName "<VMName>" | Remove-VMSavedState

常见问题和解决方案

事件 ID 32(“无法连接 NIC”)和事件 ID 21502(“虚拟机 xxxxxxx 无法启动...“网络适配器”(xxxxxxx) 的交换机端口连接无效”

此事件组合意味着指定的 VM 无法连接到网络。

若要解决此问题,请打开 Hyper-V 管理器,然后转到该 VM 的设置。 选择正确的虚拟网络。

事件 ID 1069(群集 VM 无法启动/无法使资源联机)

此事件表示 VM 尝试启动或故障转移,但无法将其配置注册到 Virtual Machine Management Server 服务。 通常,此问题意味着 VM 的 .vmcx 文件已损坏。

若要解决此问题,请使用 .vhdx 文件生成新的 VM。 还可以从备份还原受影响的 VM。

事件 ID 1205(无法使资源联机)

此事件指示一个或多个资源可能处于失败状态。 有关如何排查此问题的详细信息,请参阅以下文章:

事件 ID 1135、事件 ID 1795、事件 ID 5257 和虚拟机已暂停

请按照以下步骤重启受影响的 VM 来解决此问题:

  1. 打开 Hyper-V 管理器或故障转移群集管理器。
  2. 标识处于“已暂停”状态的 VM。
  3. 右键单击每个受影响的 VM,然后选择“ 重启”。
  4. 若要确保 VM 返回到作状态,请监视其进度。

有关详细信息,请参阅 群集故障转移失败后无响应的 VM。

VM“卡住”或似乎处于过渡状态(例如启动中、停止中或正在还原)

重要

此过程指示停止 VM 进程。 以这种方式停止 VM 时,VM 可能会丢失任何未保存或暂时性数据。

  1. 通过使用任务管理器或在 PowerShell 命令提示符处运行以下 cmdlet,标识卡住的 VM 进程 ID(PID):

    Get-Process | Where-Object {$_.Name -like "*vmwp*"}
    
  2. 若要结束 VM 进程,请在 PowerShell 或 Windows 命令提示符处运行以下命令:

    taskkill /PID <PID> /F
    
  3. 重启虚拟机管理服务。

  4. 如果 VM 在服务重启后仍停滞,请重启主计算机。

数据收集

若要帮助进行故障排除,请收集以下日志和诊断:

  • Hyper-V 事件日志:

    Get-WinEvent -LogName Microsoft-Windows-Hyper-V-VMMS-Admin | Export-Csv -Path <UncPath>
    
  • 群集日志:

    Get-ClusterLog -UseLocalTime -Destination <Folder>
    
  • 卡住服务或进程的进程转储文件:

    procdump -ma <PID> <OutputPath>
    

References

资料来源与适用范围

资料来源
微软官方中文故障文档
适用范围
适用于 Windows Server 的高可用性故障排除文档(../high-availability/high-availability-overview)。
内容语言
中文;命令、路径和错误标识保留技术原文
本地收录日期
2026-10-26
授权说明
CC BY 4.0

正文与所需资源由本站本地存储。查看来源及更新记录 ↗

请按适用版本和实际日志确认原因;本站没有对每一种系统或设备逐项执行文中的操作。