问题说明
本文用于排查 ZSphere 环境中 Windows Server 2025 虚拟机安装 VMTools、使用 VirtIO 系统盘,并在加入 AD 域后重启蓝屏的问题。该现象需要结合 Windows Guest 版本、磁盘驱动、CPU 模式、VMX 特性、Credential Guard/VBS 状态和蓝屏证据逐步判断。
现象
- Windows Server 2025 虚拟机安装 VMTools 后,使用 VMTools 自带 VirtIO 驱动。
- 虚拟机加入 AD 域后,后续重启出现蓝屏,可能无法正常进入系统。
- 虚拟机重启后可能进入 Windows 自动修复加载界面,控制台显示“正在准备自动修复”或“正在加载文件...”,长时间无法进入系统。
- 在部分环境中,平台重启虚拟机后切换到 VirtIO 系统盘,开机时出现蓝屏或无法识别启动盘。
- 客户环境和内部复现环境中,相关现象出现在第 4、5 代 Intel CPU 环境;来源中已验证的 CPU 包括 Intel Xeon Gold 5418Y 和 4514Y。
适用环境
- 产品:ZSphere
- 版本:4.10.x、5.x
- 组件:虚拟机、VMTools、VirtIO 磁盘驱动
- Guest OS:Windows Server 2025
- 部署形态:Windows Server 2025 虚拟机使用 VirtIO 系统盘,并加入 AD 域。
- CPU 条件:第 4、5 代 Intel CPU 环境,或 Sapphire Rapids 相关 CPU 环境
可能原因
该现象可能由以下一种或多种原因导致:
- Windows Server 2025 加入 AD 域后,域策略可能启用 Credential Guard。Credential Guard 依赖 VBS,VBS 会触发 Windows 在虚拟机内启动 Hyper-V 相关虚拟化路径。
- 虚拟机开启 VMX 时,Windows 可能尝试在 Guest 内启动嵌套虚拟化能力;在特定 CPU/QEMU-KVM 组合下,重启阶段可能触发蓝屏。
- VMTools 安装后,系统盘从 IDE 切换到 VirtIO,或 VirtIO 驱动在引导阶段未按预期加载,可能导致系统盘无法引导。
- 域策略重新下发后,本地禁用 Credential Guard 的设置可能被覆盖,导致问题在后续重启中再次出现。
- 单纯更新 win-virtio 驱动到 0.1.284 或 0.1.290 不能稳定解决该问题。
排查步骤
按顺序执行以下检查。每一步都应确认当前状态是否符合预期,或指出下一步处理动作。
1. 确认虚拟机和 Windows Guest 条件
- 检查项:确认问题是否发生在 ZSphere Windows Server 2025 虚拟机。
- 命令/UI 路径:在 ZSphere 虚拟机详情页查看 Guest OS 类型、磁盘类型和 VMTools 状态;在 Windows Guest 内查看系统版本。
- 预期结果:问题虚拟机为 Windows Server 2025,并已安装 VMTools。
- 异常处理:如果不是 Windows Server 2025,或未安装 VMTools,应按普通 Windows 虚拟机蓝屏或启动异常路径继续排查。
2. 确认系统盘(即硬盘1)驱动和磁盘类型
- 检查项:确认系统盘(即硬盘1)是否使用 VirtIO,以及 Windows 是否正确识别 VirtIO 磁盘驱动。
- 命令/UI 路径:在 ZSphere 虚拟机详情或磁盘配置中查看 VirtIO/VirtIO-SCSI 设置;在 Windows 设备管理器中查看磁盘驱动类型和 VirtIO 相关设备。
- 预期结果:Windows 已识别 VirtIO 磁盘驱动,且切换磁盘类型后可以正常启动。
- 异常处理:如果切换到 VirtIO 后立即找不到启动盘或蓝屏,优先回到切换磁盘类型导致的启动异常路径;不要直接归因于 AD 域或 Credential Guard。
3. 核对 AD 域和 Credential Guard 状态
- 检查项:确认虚拟机是否已加入 AD 域,以及域策略是否启用 Credential Guard。
- 命令/UI 路径:在 Windows 中检查域加入状态、组策略结果和 Credential Guard/VBS 相关配置。
- 预期结果:未启用 Credential Guard/VBS 时,加入域后的普通重启不应持续触发同类蓝屏。
- 异常处理:如果加入 AD 域后 Credential Guard 被 GPO 启用,并且后续重启持续蓝屏,应与域管理员确认 GPO 策略。仅在 Guest 内临时关闭 Credential Guard 可能会在域策略重新下发后失效。
3.1 查看 Credential Guard 状态
在 Windows Guest 内,以管理员身份执行以下只读检查:
- 打开 PowerShell,执行:
msinfo32
- 在“系统信息”窗口中查看以下字段:
基于虚拟化的安全性Credential GuardDevice Guard 安全服务正在运行
- 如果
Credential Guard或基于虚拟化的安全性显示为正在运行,说明 Windows Guest 已启用相关安全能力,需要继续核对 AD 域 GPO 是否下发了 Credential Guard/VBS 策略。
- 也可以在 PowerShell 中执行以下只读命令查看 Device Guard 状态:
Get-CimInstance -ClassName Win32_DeviceGuard -Namespace root\Microsoft\Windows\DeviceGuard
- 关注输出中的
SecurityServicesRunning和VirtualizationBasedSecurityStatus字段:
SecurityServicesRunning中包含 Credential Guard 对应服务时,表示 Credential Guard 正在运行。VirtualizationBasedSecurityStatus不为关闭状态时,表示 VBS 已启用或正在运行。
- 如果本地临时关闭后状态又恢复为启用,应检查域策略结果:
gpresult /h C:\gpresult.html
打开生成的 C:\gpresult.html,确认是否存在由域 GPO 下发的 Credential Guard、Device Guard 或 VBS 相关策略。
4. 核对 CPU 模式和 VMX 特性
- 检查项:确认虚拟机 CPU 模式是否暴露 VMX。
- 命令/UI 路径:检查虚拟机 CPU 模式;必要时查看虚拟机 XML 中的 CPU feature 配置。
- 预期结果:在需要规避该问题的环境中,虚拟机不向 Windows 暴露 VMX,或使用已验证可绕过问题的兼容 CPU 模式。
- 异常处理:如果当前为
host-model或host-passthrough且暴露 VMX,可在维护窗口中测试禁用 VMX;也可测试切换为Haswell-noTSX或Broadwell-noTSX。执行前需评估业务影响,因为该规避方式会影响虚拟机内嵌套虚拟化相关能力。
4.1 临时禁用 VMX
在维护窗口内,由具备 ZSphere 管理权限的管理员执行以下操作:
- 记录目标虚拟机当前配置,包括虚拟机 UUID、CPU 模式、磁盘类型、VMTools 版本和当前虚拟机 XML。
- 关闭目标虚拟机,或确认当前 ZSphere 版本支持在所需状态下修改虚拟机 XML Hook。
- 在 ZSphere 的 XML Hook 或等效虚拟机高级配置中,为目标虚拟机的 CPU 配置增加以下 feature:
<feature policy="disable" name="vmx"/>
- 保存配置,并确认该配置仅绑定到命中的 Windows Server 2025 虚拟机,避免影响其他虚拟机。
- 启动虚拟机后,再次查看虚拟机 XML,确认 CPU 配置中包含
policy="disable"、name="vmx"的 feature。 - 在 Windows Guest 内执行重启验证,确认虚拟机可以正常进入系统,并观察是否仍出现蓝屏。
- 如果禁用 VMX 后需要回滚,删除上述 XML Hook 或高级配置中的 VMX 禁用项,恢复变更前记录的 CPU 配置,再按维护窗口重启验证。
如果现场不支持 XML Hook,可改为将虚拟机 CPU 模式切换为已验证可绕过该问题的兼容模式,例如 Haswell-noTSX 或 Broadwell-noTSX。该方式同样会影响虚拟机内嵌套虚拟化能力,执行前需获得客户确认。
5. 验证规避方案
- 检查项:确认调整后虚拟机是否可以连续重启并进入系统。
- 命令/UI 路径:在维护窗口内对问题虚拟机执行重启验证;同步检查 Windows 事件日志、蓝屏 dump 和 QEMU 日志。
- 预期结果:禁用 VMX、切换兼容 CPU 模式,或由域管理员关闭相关 Credential Guard/VBS 策略后,虚拟机可正常启动,不再进入蓝屏或自动修复加载界面。
- 异常处理:如果仍然蓝屏,或停留在“正在准备自动修复”“正在加载文件...”等自动修复界面,应保留现场并收集控制台截图、蓝屏代码、
C:\Windows\Minidump\*.dmp、C:\Windows\Memory.dmp、Windows 事件日志、虚拟机 XML、QEMU 日志、VMTools 版本和 CPU 型号,提交技术支持继续分析。
6. 确认版本和产品侧优化状态
- 检查项:确认当前环境是否已包含 Windows Server 2025、VirtIO 驱动和嵌套虚拟化相关优化。
- 命令/UI 路径:查看 ZSphere 版本、VMTools 版本,以及关联 Bug 的处理状态。
- 预期结果:Windows Server 2025 Guest OS 的 VMTools 从 ZSphere 4.10.18 版本开始适配。
- 异常处理:如果当前版本早于修复或优化交付版本,应结合维护窗口评估升级、补丁或规避方案;不要只通过替换 win-virtio 驱动判断问题已解决。
补充信息
- 该问题的关键判断条件是 Windows Server 2025、VirtIO 系统盘、AD 域策略启用 Credential Guard/VBS、虚拟机暴露 VMX,以及特定 Intel CPU 环境同时存在。
- 临时规避方案包括禁用 VMX、切换为
Haswell-noTSX或Broadwell-noTSX兼容 CPU 模式,或由域管理员调整 GPO,避免对相关虚拟机启用 Credential Guard/VBS。 - 禁用 VMX 或关闭 Credential Guard/VBS 会影响虚拟机内嵌套虚拟化或 Windows 安全能力,需由客户根据业务和安全要求确认。
