blog / gadflysu

希望與熱烈的風
Talk is Cheap

Windows 启动错误 0xc0e90002 的解决办法

gadflysu's Avatar 10/22/2017 issue

  1. 1. 准备用料
  2. 2. 制作 EFI shell 启动介质
  3. 3. 进入 EFI shell
  4. 4. 删除 Revoke 信息
  5. 5. 启动或重装操作系统

[Note] 2017 年的旧文,近期 (Jul. 2019) 寻回并整理。

Boot Failed

在一次从 Windows 10 家庭版升级至 Windows 10 Insider Preview 的过程中,系统自动重启时无法从硬盘启动,之后我尝试从 Legacy 模式启动,亦尝试从装载 Windows 的 U 盘启动时,才出现蓝屏,并报告 error 0xc0e90002

Blue Screen of Death: Error Code

网上还有一些别的导致 error 0xc0e90002 的实例:

  • 升级至 16193 版本后出问题,欲回退至 15063 失败
  • 安装并使用 Insider Preview 一段时间后,欲回退至原来的 Windows 版本
  • 从 1703 预览版回退失败后重装 1703 或 1607

可见此错误一般出现在安装新版本 Windows 10(如 Insider Preview 等等)失败(也可能成功)后欲回退或重装 Windows 失败时。这个错误是 EFI 变量中的「Revoke」信息导致的,下文记录个人解决该错误的操作步骤。

准备用料

  1. 一个正常运行的操作系统:也许你在设备上安装了多系统且有可启动的其他系统,也许你可以借朋友的正常计算机,也许你备有系统启动盘;
  2. 一个 U 盘;
  3. EFI shell:从 edk2 项目下载 EFI shell(64 位32 位)。

制作 EFI shell 启动介质

  1. 将 U 盘格式化为 fat32 格式,并创建文件夹 /EFI/Boot/
  2. 将 64 位 EFI shell 重命名为 bootx64.efi,将 32 位 EFI shell 重命名为 bootla32.efi,并将它们复制到 U 盘的 /EFI/Boot/ 目录下。

进入 EFI shell

  1. 咨询设备制造商,进入 BIOS,关闭「安全启动」模式;
  2. 在 BIOS 中调整设备启动顺序使 U 盘优先启动,或许你的计算机和我一样支持开机时进入「选择启动设备」界面;
  3. 进入 U 盘并选择对应位的 EFI shell。

删除 Revoke 信息

  1. 显示 Revoke 信息,执行

    1
    dmpstore -b *Revoke*
  2. 使用 dmpstore 命令删除列出的 Revoke 信息,类似于:

    1
    2
    dmpstore -d RevokeSiSPolicySigners
    dmpstore -d RevokeSiPolicyVersion
  3. 退出 EFI shell

    1
    reset -s

如下图。

Operation

启动或重装操作系统

  1. 在 BIOS 打开「安全启动」选项;
  2. 按下电源键开机,进入原操作系统,可能需要等待系统修复;或者从 U 盘启动并重装新的操作系统。

以上是解决 error 0xc0e90002 的操作步骤。

📖 [Ref] Microsoft Community

Author : gadflysu
本文采用「知识共享署名 - 非商业性使用 - 相同方式共享 4.0 国际许可协议 (CC BY-NC-SA 4.0)」进行许可。你可自由分享演绎,惟须遵照:署名非商业性使用相同方式共享不得增加额外限制
Link to this article : https://blog.gadflysu.com/issue/windows-error-0xc0e90002/

This article was last updated on days ago, and the information described in the article may have changed.