ESXi 导出的虚机导入到 Fusion 或者 Workstation 中无法启动,蓝屏提示 SYSTEM_THREAD_EXCEPTION_NOT_HANDLED

Posted by sysin on 2021-09-14
Estimated Reading Time 2 Minutes
Words 669 In Total
Viewed Times

请访问原文链接:ESXi 导出的虚机导入到 Fusion 或者 Workstation 中无法启动,蓝屏提示 SYSTEM_THREAD_EXCEPTION_NOT_HANDLED,查看最新版。原创作品,转载请保留出处。

作者:gc(at)sysin.org,主页:www.sysin.org

笔者这几天在制作 Windows Server 2022 OVF 的时候,发现镜像在 ESXi 上明明运行良好,部署到 Fusion 或者 Workstation 上就蓝屏无法启动了,多次搜索蓝屏报错提示才找到问题所在。

现象描述

具体是这样的,通过 vCenter(本例为 vSphere 7.0 U2)导出的虚机,使用标准 ovf 配置,默认不会导出扩展属性(后来对比分析得出),导出的虚机在 Fusion 或者 Workstation 上无法启动,蓝屏报错:SYSTEM_THREAD_EXCEPTION_NOT_HANDLED。

hpet-bluescreen-win2022

而同样的虚机通过 ESXi host Client 导出,默认包含了所有扩展属性,导出的虚机在 Fusion 或者 Workstation 上可以正常运行。

原因

在目前版本的 Fusion 12.1 或者 Workstation 16.1 上默认没有启动 High Precision Event Timer (HPET),中文直译为高精度事件定时器,在 ESXi 7.0 中默认启用,而新版的 Windows 10 需要此功能。具体从何版本未验证,相关文档显示 Windows 10 1809 开始需要此功能,但是 Windows 2019 基于 1809 没有此问题,Windows 2022 基于 21H2 存在该问题。如有了解真相的读者还望留言告知,先谢过😄。

HPET 是什么?(下面是 网上摘抄 的,看起来有点玄乎。)

HPET(High Precision Event Timer, 高精度时钟),是 Intel 和微软为了替换之前 PIT 或 RTC(都可以当定时器用的一个东西)所设计的一个硬件。它由一个主的计数器和比较器组成,计数器一般是 64 位的,比较器至少有 3 个最多 32 个(这个我没考察过,只是翻译),通常比较器是 32 位或 64 位的。HPET 通过内存映射 IO 来操作,内存的基地址可以从 ACPI 中找到。

解决方案

编辑虚机 vmx 加入:hpet0.present=true

或者在 OVF 中加入如下配置:

1
<vmw:ExtraConfig ovf:required="false" vmw:key="hpet0.present" vmw:value="TRUE"/>

提示:ovftool 中需要使用 –ExtraConfig 参数启用该项配置。

未来展望:新版的 Fusion 和 Workstation 可能会更改默认启用 HPET。

目前非微软系统都没有该项要求。

搜索到的参考文章


捐助本站 ❤️ Donate


如果文章中使用的内容或图片侵犯了您的版权,请联系作者删除。如果您喜欢这篇文章或者觉得它对您有所帮助,欢迎您发表评论,也欢迎您分享这个网站,或者赞赏一下作者,谢谢!


支付宝打赏 微信打赏

赞赏一下



1000000