关于wsl2升级Ubuntu报错 找不到元素 ai总结排障 #41409
Unanswered
king-wwwhhh
asked this question in
General
Replies: 0 comments
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
环境
HypervisorPresent: True)错误演变过程
阶段一:「找不到元素」(Element not found)
启动 Ubuntu 时报错找不到元素。此时按常规思路检查了可选功能(
VirtualMachinePlatform、Microsoft-Windows-Subsystem-Linux、Hyper-V 系列),尝试wsl --update无改善。阶段二:
Wsl/Service/CreateVm/HCS/ERROR_NOT_SUPPORTED进一步操作后错误变为「不支持该请求」,完整报错:
同时 DiskPart /
New-VHD创建虚拟硬盘也失败,报错0xC03A0014(找不到指定文件的虚拟磁盘支持提供程序)——两条线索指向同一个底层问题。为什么报错会从「找不到元素」变成「不支持该请求」?
这不是问题加重了,而是故障点在依赖链上移动了——中间做了干预(启用设备、启用功能组件),错误表现跟着变:
所以错误「变脸」其实是好转的信号——前一层修好了,露出下一层的问题。两个报错文字上毫无关联,底层却是同一条依赖链:根总线 → vhdmp → VHD 环回控制器 → HCS 虚拟机 → WSL2。
排查链路
VDS 服务与 virtdisk.dll 均正常,排除服务未注册问题
PnP 设备检查(关键突破口)发现 4 个根总线设备被禁用(
ConfigManagerErrorCode = 22):ROOT\VDRVROOT(虚拟驱动器枚举器)ROOT\COMPOSITEBUS(复合总线枚举器)ROOT\UMBUS(UMBus 根总线枚举器)ROOT\NDISVIRTUALBUS(NDIS 虚拟网络适配器枚举器)这 4 个设备是被系统优化工具禁用的
事件日志(
Microsoft-Windows-Kernel-PnP,事件 ID 219)抓到实锤——vhdmp.sys(VHD 挂载驱动)加载失败:另发现两个 Microsoft VHD 环回控制器(MsVhdHba / ROOT\SCSIADAPTER)坏实例:一个代码 10(「该设备无法启动,出现了 I/O 适配器硬件错误」),一个代码 38(驱动曾在内存中)
根因
系统优化工具禁用了 vdrvroot 等根总线设备 → WSL2/HCS 创建虚拟机时依赖的 VHD 挂载链路(vhdmp.sys → MsVhdHba)无法初始化 → 虚拟磁盘支持提供程序不可用 → 报「找不到元素」/「不支持该请求」。
解决步骤(管理员 PowerShell / 终端)
重启后
New-VHD/ DiskPart 创建 VHDX 恢复正常,WSL2 Ubuntu 正常启动(Docker Desktop 的 WSL2 后端也随之恢复)。给遇到同样问题的人的建议
看到
ERROR_NOT_SUPPORTED或0xC03A0014别急着重装 WSL,先用下面命令查根总线设备有没有被禁用:用过优化/精简工具(如各类「系统优化大师」)的机器是重灾区,它们喜欢禁用「看起来没用」的根总线设备
事件查看器里过滤
Microsoft-Windows-Kernel-PnP事件 ID 219,能直接看到哪个驱动加载失败、状态码是多少,比盲猜高效得多All reactions