Windows系统迁移后,进行系统升级时出现错误代码0x80070057
问题描述
Operation failed: Process Drivers for Migration. Error: 0x80070057
故障原因
该问题主要由Windows升级程序与预注入驱动程序的兼容性冲突引起。在Windows操作系统升级阶段,系统会枚举并校验所有已安装的驱动程序。若系统中存在通过非标准方式(如离线注入)部署的virtio驱动记录,Windows升级程序可能无法正确识别其驱动包结构或路径,导致在“迁移驱动程序”阶段触发参数错误(0x80070057),进而导致升级失败。
解决方案
通过手动安装标准virtio驱动并清理注册表中冗余的驱动包记录来解决。
- 创建ECS快照。
清理注册表属于高危操作,请务必在清理前制作快照。
- 更新virtio驱动。
- 下载virtio驱动
virtio驱动的获取路径如下,您可以按需选择适合的版本下载。
https://fedorapeople.org/groups/virt/virtio-win/direct-downloads/archive-virtio/
- 登录Windows弹性云服务器
必须通过VNC方式登录Windows弹性云服务器,详细操作请参见通过控制台VNC登录Windows ECS。
不可使用远程桌面(Remote Desktop Protocol,RDP)登录方式,因为安装时会更新网卡驱动,远程桌面登录时网卡正在使用,从而导致安装不成功。
- 安装virtio驱动
以管理员身份运行安装包进行安装,具体步骤请参考安装virtio驱动。
- 下载virtio驱动
- 清理冲突注册表项。删除前请务必成功安装virtio驱动,否则可能导致后续清理完注册表,系统无法启动。
由于目标注册表项受系统保护(所有者为 `SYSTEM`),直接删除会提示“拒绝访问”。必须按照以下步骤手动接管权限后执行删除。
- 定位目标注册表路径
使用管理员权限运行cmd,并输入“regedit”,打开注册表编辑器,依次展开并定位至以下两个路径:
- HKEY_LOCAL_MACHINE\SYSTEM\DriverDatabase\DriverPackages\vioscsi.inf_amd64_hwpv
- HKEY_LOCAL_MACHINE\SYSTEM\DriverDatabase\DriverPackages\viostor.inf_amd64_hwpv
请务必核对后缀是否为 _hwpv,避免误删其他标准驱动,删除错误的注册表可能导致系统无法启动。
- 修改权限与所有者(以vioscsi.inf_amd64_hwpv为例)
- 右键单击目标项,选择 “权限”。

- 在弹出的窗口中,单击右下角的“高级 ”。

- 在顶部“所有者”右侧单击“更改 ”。

- 在对象名称输入框中输入“Administrator”(或当前管理员账号),单击“检查名称”,然后单击“确定”。

- 勾选“替换子容器和对象的所有者 (Replace owner on subcontainers and objects)”,单击“应用”。

- 回到第一步打开的权限窗口,选择“Group or user names”或“组或用户名”中的“Everyone”,更改Everyone的权限为“Full Control”或“完全控制”。

- 右键单击目标项,选择 “权限”。
- 执行删除
完成权限修改后,右键单击并删除上述两个以 “_hwpv” 结尾的注册表项。

- 请对“viostor.inf_amd64_hwpv”注册表项重复上述步骤。
- 重试升级
重新运行Windows升级程序执行系统更新。
- 定位目标注册表路径