周四晚上十一点半,镜像刚导入完,点下开机,弹窗只有一行字:此平台不支持虚拟化的 Intel VT-x/EPT。去搜,答案从"进 BIOS 开虚拟化"到"重装系统"什么都有;照做一遍,BIOS 里 VT-x 明明是 Enabled,报错一个字没变。这种"看起来是硬件问题、实际是软件在抢资源"的场景,在 Windows 11 上出现得特别频繁,因为微软在这代系统里默认开启了一层基于虚拟化的安全机制,它本身就是一个轻量级的虚拟机监控程序,会先一步把 VT-x 的根模式拿走。
这篇内容讲的就是这条报错背后完整的因果链:VT-x 和 EPT 分别是什么、Windows 11 上有哪几路人马在争抢这份硬件能力、怎么用几条命令在五分钟内判断出是"没开"还是"被占用"、以及每一种修复手段的真实代价和回滚办法。适合三类人看:在 Windows 11 上跑桌面虚拟机软件的个人用户、需要在虚拟机里再开虚拟机的开发和测试人员、以及被"BIOS 里明明开了却还是报错"卡住然后开始怀疑主板坏了的同学。全文的操作都不需要额外工具,系统自带命令就够用。
1. 把报错原话拆开看:VT-x 和 EPT 根本不是一个层面的东西
1.1 VT-x 是门禁卡,EPT 是门禁卡后面那条内部快速通道
VT-x是处理器上的硬件虚拟化扩展,AMD 平台对应的叫 AMD-V(也叫 SVM)。它给 CPU 加了一套双身份机制:根模式和非根模式。虚拟机软件的核心组件运行在根模式,拥有完整的硬件特权;客户机操作系统被塞进非根模式,一旦执行那些会破坏隔离的敏感指令,硬件立刻触发一次VM Exit,把控制权交还给根模式去处理,处理完再 VM Entry 回去。有了这层硬件支持,客户机的普通指令可以直接跑在物理 CPU 上,只有敏感指令才需要"出圈"。
没有 VT-x,虚拟机软件只剩二进制翻译一条路——把客户机的指令流一块一块改写后再执行,性能会掉到让人无法忍受的地步,而且要处理大量边界情况。所以现代版本的桌面虚拟机软件在启动阶段就直接做一次能力检测,检测不过就拒绝开机,把这句话原样扔到用户脸上。这也是为什么很多人第一次看到报错时会有"我电脑是不是不支持虚拟化"的错觉——其实绝大多数近十年的 Intel 消费级 CPU 都支持。
EPT(Extended Page Tables,扩展页表)是另一层东西,AMD 上叫 NPT 或者 RVI。客户机里也有自己的页表,负责"客户机虚拟地址 → 客户机物理地址"的翻译;但客户机以为的物理地址并不是真的物理地址,还需要第二次翻译"客户机物理地址 → 宿主物理地址"。老办法是影子页表,靠软件维护一份同步副本,客户机每次改页表都要被拦截一次,开销非常可观。EPT 把第二层翻译直接交给硬件 MMU,一次内存访问走两次翻译,全程不产生 VM Exit。
理解了这个分层,就能明白报错文本为什么把两个词并列写:"VT-x/EPT"。这条检测是一次性读取 CPU 的能力寄存器(CPUID 和一组 VMX 相关的 MSR),条件是一组"与"的关系,任何一项不满足就整句抛出。所以看到"不支持 EPT",绝不等于你的 CPU 真的没有 EPT——更常见的情况是硬件有,但根模式已经被别的程序占住了,虚拟机软件连正常读取那组寄存器都做不到。
1.2 这句"此平台不支持"的措辞,其实一直在误导排查方向
我在实际排查里把这条报错的成因归成四类,按出现频率从高到低排:
| 成因类别 | 典型现象 | 排查入口 |
|---|---|---|
| 第二个 hypervisor 已占用根模式 | BIOS 里 VT-x 明确是 Enabled,但虚拟机就是开不了机 | systeminfo尾段是否出现"已检测到虚拟机监控程序" |
| 固件层确实没开 | 新装机、换主板、BIOS 被清空过 | Get-CimInstance Win32_Processor的VirtualizationFirmwareEnabled |
| 内核层被安全机制拦截 | 虚拟机软件主程序能打开,一开机就报错;事件查看器有驱动加载失败 | 设备管理器黄色感叹号、内核隔离设置 |
| 在虚拟机里跑虚拟机 | 宿主机一切正常,客户机里装虚拟机软件就报这句 | 宿主虚拟机设置里有没有勾选虚拟化透传 |
表格第一行是最容易误判的。因为"被占用"和"没开"在用户视角下表现完全一样——都是开不了机,都是同一句报错。但两者的修复手段截然相反:前者要去关掉抢资源的东西,后者要去 BIOS 里打开开关。搞错方向,就会陷入"改了 BIOS 重启八次还是不行"的死循环。
1.3 三种措辞相近、根因完全不同的邻近提示
同一个软件在不同失败点上会给出不同的文案,把这几句区分开能省掉大量试错:
- "此平台不支持虚拟化的 Intel VT-x/EPT":卡在能力检测阶段,硬件能力位读不到,或者根模式已被占用。排查重心在系统层。
- "此主机支持 Intel VT-x,但 Intel VT-x 处于禁用状态":这句更明确,指的是固件层关着。直接去 BIOS,不用怀疑系统里谁在抢。
- 驱动或服务加载失败的提示(例如提到 VMCI、vmmon 之类组件未就绪):说明硬件能力是够的,卡在驱动签名、内核隔离拦截或服务没起来。这类要往"内核隔离""驱动冲突"方向查,跟 VT-x 开关无关。
记住一个判断原则:报错文本里出现"禁用""disabled"字样,问题在固件;出现"不支持""not supported"字样,问题多半在占用。
2. Windows 11 为什么比旧系统更容易撞上这个报错
2.1 内存完整性:默认开着的第二套虚拟机监控程序
Windows 11 在满足硬件条件的机器上,全新安装时默认会开启内存完整性(HVCI,Hypervisor-enforced Code Integrity),它是"内核隔离"下面的一个子项。这个东西的实现方式,是在最底层跑一个基于虚拟化的安全层,把内核态代码的完整性校验搬到那个安全层里做——也就是说,它本身就需要一个 hypervisor 占着 VT-x 的根模式。
于是矛盾出现了:同一时刻,根模式只能有一个 hypervisor。系统先开机,安全层先拿到;虚拟机软件后启动,抢不到,报错。这也是为什么很多人从旧系统升到 Windows 11 之后突然发现虚拟机不能用了,硬件一点没变。
查当前状态的命令,PowerShell 里跑:
Get-CimInstance -ClassName Win32_DeviceGuard -Namespace root\Microsoft\Windows\DeviceGuard | Select-Object SecurityServicesConfigured, SecurityServicesRunning, VirtualizationBasedSecurityStatus解读方式:
VirtualizationBasedSecurityStatus为2表示 VBS 正在运行;SecurityServicesRunning里出现1是 Credential Guard,出现2就是内存完整性(HVCI);SecurityServicesConfigured是"配置了",SecurityServicesRunning才是"真的在跑",两者不一致很常见,看后者。
如果这里看到2,那么基本可以断定 VT-x 已经被系统自己用掉了。
2.2 一堆"顺手装上"的虚拟化组件
现代开发环境很容易在不经意间把系统自带的虚拟化栈拉起来。以下这些都会依赖或者直接启用 hypervisor 层:
- Hyper-V:完整虚拟化平台,专业版及以上才有管理器,但组件一旦启用就常驻。
- 虚拟机监控程序平台 / Windows 虚拟机监控程序平台:为第三方虚拟化提供接口的中间层,很多教程会让你打开它,但它在某些版本的桌面虚拟机软件上反而是冲突源。
- Windows 沙盒:一次性桌面环境,本质是 Hyper-V 容器。
- WSL2:第二代 Linux 子系统,跑在轻量虚拟机里。
- 容器相关组件:装了桌面版容器工具的,基本都会自动拉起虚拟机平台。
- 安卓子系统与各类手机模拟器:为了性能和兼容性,多数会走系统虚拟化接口。
- 部分安全软件:带行为监控、沙箱运行能力的,会自建虚拟化层。
家庭版用户注意一个坑:家庭版没有 Hyper-V 管理器,所以很多人以为自己"没开 Hyper-V",但 VBS 和内存完整性在家庭版上是照样存在的,报错照样发生。
一次性列出所有相关功能的启用状态:
Get-WindowsOptionalFeature -Online | Where-Object { $_.FeatureName -match 'Hyper-V|VirtualMachinePlatform|HypervisorPlatform|Containers|Sandbox|Subsystem' } | Select-Object FeatureName, State | Format-Table -AutoSizeState是Enabled的那些,就是当前的"嫌疑人"。
2.3 快速启动、休眠文件和固件状态被"冻结"
这一类坑非常隐蔽。Windows 的快速启动本质是混合关机:关机时把内核会话休眠到磁盘,下次开机直接恢复,而不是真正走一遍固件初始化。副作用是,如果你改完 BIOS 里的虚拟化开关,然后点了"关机"再开机,固件设置有可能没有被重新读取,系统还活在上一次会话的状态里。
所以排查固件层问题时,必须做一次真正的冷启动:
shutdown /s /f /t 0/s关机,/f强制关闭运行中的程序,/t 0立即执行。台式机建议顺手把电源线拔掉十秒,笔记本可以长按电源键。或者干脆把休眠关掉,让快速启动失效:
powercfg /h off这条命令会同时删掉休眠文件和快速启动能力。代价是开机会慢几秒,好处是以后每次改固件设置都能立刻生效,排查阶段强烈建议先关掉。
3. 排查链路:先定性,再定位,最后才动手
3.1 第一步:用 systeminfo 判断是"没开"还是"被占用"
这一步是整个排查里性价比最高的操作,一条命令就能把方向掰正:
systeminfo | findstr /i "Hyper-V"可能出现的两种输出,含义完全不同:
输出一,列出四项能力并要求,例如:
Hyper-V 要求: 是 VM 监视器模式扩展: 是 固件中已启用虚拟化: 是 二级地址转换: 是 数据执行保护可用: 是四项全是"是",说明固件层已经开了,硬件能力齐全——那么问题一定在软件层的占用,别再去 BIOS 里折腾了。
输出二:
Hyper-V 要求: 已检测到虚拟机监控程序。将不显示 Hyper-V 所需的功能。看到"已检测到虚拟机监控程序"这句话,就相当于系统自己承认了:现在有一个 hypervisor 在跑。这时候 VT-x 是被占用,而不是没开。修复方向立刻锁定为"找出并关掉占用者",而不是"去开虚拟化"。
顺带用 PowerShell 交叉验证一次硬件能力位:
Get-CimInstance Win32_Processor | Select-Object Name, VirtualizationFirmwareEnabled, VMMonitorModeExtensions, SecondLevelAddressTranslationExtensions三个布尔值分别对应:固件是否启用虚拟化、CPU 是否支持 VMX(VT-x)、是否支持二级地址转换(EPT)。如果VirtualizationFirmwareEnabled是False,那才真的是要去 BIOS;如果是True,继续往下查占用。
3.2 第二步:把占用者点名
按这个顺序查,基本不会漏:
Win32_DeviceGuard里SecurityServicesRunning含2→ 内存完整性在跑。Get-WindowsOptionalFeature里 Hyper-V、虚拟机监控程序平台是Enabled→ 系统虚拟化栈在跑。bcdedit /enum {current}里hypervisorlaunchtype是Auto→ 引导阶段就会拉起 hypervisor。- 任务管理器 → 详细信息里有没有容器工具、模拟器、开发环境的守护进程常驻。
- 设备管理器 → 显示隐藏设备 → 看"系统设备"下有没有带黄色感叹号的虚拟化相关设备。
看引导项的命令:
bcdedit /enum {current}重点看hypervisorlaunchtype这一行。Auto表示开机自动加载 hypervisor;Off表示不加载。这一项是后面第 4 节里最关键的一刀。
3.3 第三步:动手之前先留一份状态快照
这一步很多人跳过,然后在改坏之后完全没有回滚依据。我的习惯是先把当前状态导出来存成文件:
bcdedit /enum {current} > C:\temp\bcd_before.txtNew-Item -ItemType Directory -Force -Path C:\temp | Out-Null Get-WindowsOptionalFeature -Online | Where-Object { $_.FeatureName -match 'Hyper-V|VirtualMachinePlatform|HypervisorPlatform|Sandbox|Subsystem' } | Select-Object FeatureName, State | Export-Csv C:\temp\features_before.csv -NoTypeInformation -Encoding UTF8再截一张"内核隔离"设置页的图。理由很实在:关闭内存完整性会降低一层针对内核级攻击的防护,关闭 Hyper-V 会让 WSL2 和容器工具一起失效,这些副作用在关的时候没人提醒你,等到一周后想起来某个功能不能用了,才发现不知道原来是开着的。有快照,就能精确复原。
4. 按代价从小到大排的修复清单
4.1 代价最小的一刀:只关内存完整性
如果你只是偶尔用虚拟机,不需要 WSL2、不需要沙盒、不需要容器工具,那这一步通常就够了,而且对系统其他功能的影响最小。
图形界面路径:Windows 安全中心 → 设备安全性 → 内核隔离详细信息 → 把内存完整性关掉 → 重启。
命令行等价做法(需要管理员权限):
reg add "HKLM\SYSTEM\CurrentControlSet\Control\DeviceGuard\Scenarios\HypervisorEnforcedCodeIntegrity" /v Enabled /t REG_DWORD /d 0 /f改完必须完整重启,不是快速启动那种。重启后用 3.1 节的systeminfo再验一次,看看"已检测到虚拟机监控程序"那句是否消失。
这里有个细节:关掉内存完整性之后,VBS 本身可能还开着,此时 VT-x 依然被占。如果报错没消失,再去看"内核 DMA 保护"这一项,一并关掉试试。反过来,如果关完内存完整性后systeminfo那句依然在,说明占用者另有其人,直接跳到 4.2。
注意:内存完整性是针对内核态恶意代码的一道防线,关掉它意味着系统对驱动级别的篡改少了一层校验。如果你这台机器要处理敏感数据,建议权衡之后再决定,或者改成"用完再开回来"的临时切换习惯。
4.2 中等代价:卸掉用不上的虚拟化组件
确认自己不需要 WSL2、沙盒、容器工具之后,把这些可选功能关掉。用 DISM 比图形界面更彻底,因为它会连底层组件一起处理:
dism /online /disable-feature /featurename:Microsoft-Hyper-V-All /norestart dism /online /disable-feature /featurename:VirtualMachinePlatform /norestart dism /online /disable-feature /featurename:HypervisorPlatform /norestart dism /online /disable-feature /featurename:Containers-DisposableClientVM /norestart四条执行完再重启。PowerShell 也可以:
Disable-WindowsOptionalFeature -Online -FeatureName Microsoft-Hyper-V-All -NoRestart这里必须说清楚代价:关掉 Hyper-V 之后,WSL2 起不来,桌面容器工具起不来,Windows 沙盒用不了,安卓子系统也多半会失效。如果你的日常工作依赖其中任何一个,就得考虑另一种方案——把虚拟机软件换成支持与系统虚拟化共存的新版本,或者干脆用系统自带的虚拟化方案做主力,别硬碰。
4.3 命令行一刀切:关掉 hypervisor 的引导加载
前面两步都是在上层拆组件,这一步是从引导层直接掐断:
bcdedit /set hypervisorlaunchtype off重启生效。这条命令的作用是告诉引导管理器:不要在启动时加载 hypervisor。它是排查里最"干脆"的一招,很多机器上 4.1 和 4.2 都做了还是报错,就靠这一条解决。
恢复用:
bcdedit /set hypervisorlaunchtype auto同样要重启。用之前务必按 3.3 节做好快照,因为这条命令会让所有依赖 hypervisor 的功能一起停摆,而且从现象上看不出是哪条命令导致的——只会在某天开 WSL2 时报一个和虚拟化八竿子打不着的错误。
4.4 固件层:VT-x、VT-d 与安全启动之间的相互牵制
如果 3.1 里VirtualizationFirmwareEnabled是False,那就必须进固件设置。不同厂商的菜单命名差异很大,认准这几个关键词:
| 关键词 | 含义 | 建议 |
|---|---|---|
| Intel Virtualization Technology / VT-x / Virtualization | CPU 硬件虚拟化总开关 | 必须 Enabled |
| VT-d / Directed I/O / IOMMU | 设备直通相关 | 用不到直通时,可先关掉排查 |
| SR-IOV | 网卡虚拟化 | 一般不影响,出问题可关 |
| Secure Boot / 安全启动 | 引导签名校验 | 与虚拟化不冲突,但改装系统时要注意 |
| 内核 DMA 保护 / DMA Protection | 系统层设备内存访问管控 | 与内存完整性联动,可临时关 |
几个实操上的坑:
- 有些品牌机的固件设置里,虚拟化项藏在"高级 → CPU 配置"或者"安全 → 系统安全"下面,不在显眼的首页。
- 部分机型需要先设置一个固件管理员密码,隐藏项才会出现。
- 少数机型除了 VT-x 之外还有一个厂商私有的"虚拟化支持"开关,两个都得开。
- 改完一定要按 2.3 节做一次真正的冷启动,不要把"快速启动的假关机"当成生效。
4.5 兜底:全都关完还报错怎么办
如果 4.1 到 4.4 全做了,systeminfo里那句"已检测到虚拟机监控程序"消失了,但虚拟机依然报同样的错,那问题已经不在虚拟化开关上,而在驱动层:
- 设备管理器 → 查看 → 显示隐藏的设备 → 系统设备,找带感叹号的条目,优先怀疑虚拟网卡、虚拟磁盘控制器相关的驱动。
- 卸载虚拟机软件,重启,再全新安装一次,让它的内核驱动重新注册。
- 检查是否有第三方安全软件在跑自己的沙箱层,临时完全退出(不是关窗口,是退出进程和服务)再试。
- 企业统一管理的机器,可能有组策略下发的安全基线强制开启 VBS。这种情况本地关不掉,会自己恢复,需要向管理方确认策略。
- 以上都无效,考虑系统修复安装,保留个人文件和应用。这是最后手段,做之前把 3.3 的快照留好。
5. 修好之后怎么验证,以及为什么过几天又复发
5.1 五分钟验证流程
别只看"能开机了"就算完事,按这个顺序走一遍,能提前发现隐患:
systeminfo | findstr /i "Hyper-V"—— 确认不再出现"已检测到虚拟机监控程序"。Get-CimInstance Win32_DeviceGuard -Namespace root\Microsoft\Windows\DeviceGuard—— 确认SecurityServicesRunning里没有2。bcdedit /enum {current}—— 确认hypervisorlaunchtype是Off(如果你用了 4.3 的方案)。- 启动虚拟机,跑一个持续的 CPU 负载(比如编译一个小项目),观察宿主机的任务管理器里 CPU 占用是否合理——如果虚拟机一跑就卡死,说明 EPT 那条路没走通,还在用软件模拟。
- 在客户机里装一个能读 CPU 能力的小工具,确认客户机能看到 VT-x。看不到的话,客户机的性能会明显偏差。
第 5 步很多人忽略,但它是判断"嵌套虚拟化是否真的透传成功"的唯一可靠方式。
5.2 三个最容易让问题复发的触发点
系统大版本更新。功能更新之后,安全相关的默认值会被重新评估,内存完整性有可能被重新打开。更新完第一次开机就发现虚拟机报错,不要怀疑硬件,先跑 5.1 的第 1、2 步。
安装新的开发工具。装了容器工具、装了 WSL、装了某个需要虚拟化的模拟器,这些工具在安装时会自动启用虚拟机平台组件,并且多数不会提示你"这会导致其他虚拟机软件不可用"。
安全软件的版本升级。有些安全软件在升级后新增沙箱功能,会自建虚拟化层。表现是"用了两个月都好好的,昨天开始报错"。
针对复发,我给的建议是做取舍,而不是反复开关:
| 你的主要用途 | 推荐方案 | 说明 |
|---|---|---|
| 只用桌面虚拟机,不碰容器和 WSL | 关内存完整性 + 关 hypervisor 引导加载 | 最稳定,几乎不复发 |
| 两者都要用 | 换用与系统虚拟化共存的新版虚拟机软件 | 代价是性能略降,但省心 |
| 以容器/WSL 为主,虚拟机偶尔用 | 保留系统虚拟化,虚拟机改用系统自带方案 | 避免两套 hypervisor 打架 |
| 需要嵌套虚拟化做实验 | 保留系统虚拟化,在虚拟机设置里开透传 | 见第 6 节 |
6. 在虚拟机里再开虚拟机:嵌套虚拟化和 EPT 的额外门槛
6.1 什么时候真的需要嵌套,什么时候是伪需求
有一种情况会让人误以为是宿主机配置错了:宿主机一切正常,虚拟机也能开机,但在客户机里再装一个虚拟机软件,一开机就是这句 "此平台不支持虚拟化的 Intel VT-x/EPT"。
这不是宿主机的问题,而是客户机默认拿不到 VT-x。虚拟机软件默认会把虚拟 CPU 的 VMX 能力位藏起来,客户机里的操作系统根本看不到硬件虚拟化。要打开,得在宿主机的虚拟机设置里找到处理器选项,勾上类似"虚拟化 Intel VT-x/EPT 或 AMD-V/RVI"的开关(不同版本措辞略有差异)。
但先想清楚是不是真需要。嵌套虚拟化的性能损失是实打实的:客户机的每一次内存访问都要多穿一层翻译,VM Exit 的开销也会叠加。我的经验是,纯粹为了"在虚拟机里试用一下另一个虚拟机软件"这种需求,不值得开嵌套——直接在宿主机上装,或者用快照隔离环境更省事。真正需要嵌套的场景通常是:做虚拟化相关的开发调试、搭建多层实验环境、需要在隔离环境里验证部署脚本。
6.2 打开嵌套之后,EPT 的行为变化
勾上透传开关之后,宿主机会把 EPT 相关的能力位也一并暴露给客户机,客户机里的虚拟机软件才能拿到二级地址转换。这里有个连锁反应值得注意:
| 宿主侧配置 | 客户机看到的 | 客户机内虚拟机的性能 |
|---|---|---|
| 未开透传 | 无 VT-x | 无法启动 |
| 开透传,宿主 EPT 正常 | 有 VT-x + EPT | 接近原生的一半上下 |
| 开透传,宿主 EPT 被禁用 | 有 VT-x,EPT 缺失 | 明显塌陷,内存密集操作尤其慢 |
| 宿主本身在跑嵌套(三层) | 能力位可能残缺 | 不建议,稳定性差 |
第三行是很多人踩的坑:宿主机的 EPT 一旦因为某些安全设置或者固件选项被限制,客户机里的虚拟机虽然能起来,但会退回到软件维护页表的方式,编译、数据库这类内存密集的操作会慢到怀疑人生。所以如果你要做嵌套,宿主机这边的内存完整性和相关安全项一定要先关干净。
另外一个细节:嵌套场景下建议把客户机的内存给足,并且关掉客户机里的动态内存调整。二级翻译本身就吃内存带宽,再叠加动态调整的页表变更,很容易出现莫名的卡顿。
7. 几个高频误判场景,对照着看能少走弯路
7.1 "BIOS 里明明是 Enabled,重启了八次还是报错"
这是最常见的误判。BIOS 里的开关只管固件层,它保证的是"硬件能力可用";但硬件能力可用不代表虚拟机软件能拿到——中间还隔着操作系统这一层,系统可能已经把它分配给了自己的安全层。判断方法就是 3.1 节那条systeminfo,看到"已检测到虚拟机监控程序"就说明能力是有的,别再进 BIOS 了。
7.2 AMD 平台上的对应选项名对不上
AMD 平台的对应概念是 AMD-V(SVM)和 NPT/RVI,但报错文案往往是软件统一写的,可能仍然显示 Intel 的字样。BIOS 里要找的是SVM Mode、Secure Virtual Machine、AMD-V这类关键词,而不是 VT-x。另外 AMD 平台上"内存完整性"同样会占用根模式,处理思路完全一样,只是命令输出的字段名可能有差异。
7.3 企业统一管理的机器,本地改了会自己恢复
如果一台机器加入了统一管理,安全基线可能是集中下发的,本地关掉内存完整性,过一段时间策略刷新又会开回来。这种表现非常有迷惑性——用户会以为"系统有毛病,设置自己变回去了"。判断方法是看事件日志里有没有策略应用的记录,或者直接查Win32_DeviceGuard的SecurityServicesConfigured,如果配置项一直是2而你手动关过,那就基本可以确定是策略在管。
7.4 虚拟机软件的版本比系统还老
最后提一个容易被忽略的点:Windows 11 的内核变动比较大,一些年代较久的虚拟机软件版本在驱动层就跟不上了,表现出来的现象和"VT-x 被占用"几乎一样。判断方法很简单——把软件升到当前主流版本再试一次。如果升级后报错消失,那前面折腾的 BIOS 和注册表全都可以还原回去。
我在几台机器上来回折腾下来的体会是,这条报错看着像硬件问题,实际上九成以上发生在操作系统层,而且排查路径非常固定:先用一条systeminfo定性,再用Win32_DeviceGuard和功能列表定位占用者,最后按代价从小到大动手。真正需要改 BIOS 的比例,比网上教程暗示的低得多。养成"动手前先导一份 bcd 和功能列表"的习惯,能让你在关掉某个安全机制三个月后想不起为什么关的时候,还有据可查。