[Note] 2017 年的旧文,近期 (Jul. 2019) 寻回并整理。
在一次从 Windows 10 家庭版升级至 Windows 10 Insider Preview 的过程中,系统自动重启时无法从硬盘启动,之后我尝试从 Legacy 模式启动,亦尝试从装载 Windows 的 U 盘启动时,才出现蓝屏,并报告 error 0xc0e90002
。
网上还有一些别的导致 error 0xc0e90002
的实例:
- 升级至 16193 版本后出问题,欲回退至 15063 失败
- 安装并使用 Insider Preview 一段时间后,欲回退至原来的 Windows 版本
- 从 1703 预览版回退失败后重装 1703 或 1607
可见此错误一般出现在安装新版本 Windows 10(如 Insider Preview 等等)失败(也可能成功)后欲回退或重装 Windows 失败时。这个错误是 EFI 变量中的「Revoke」信息导致的,下文记录个人解决该错误的操作步骤。
准备用料
- 一个正常运行的操作系统:也许你在设备上安装了多系统且有可启动的其他系统,也许你可以借朋友的正常计算机,也许你备有系统启动盘;
- 一个 U 盘;
- EFI shell:从 edk2 项目下载 EFI shell(64 位 或 32 位)。
制作 EFI shell 启动介质
- 将 U 盘格式化为 fat32 格式,并创建文件夹
/EFI/Boot/
; - 将 64 位 EFI shell 重命名为
bootx64.efi
,将 32 位 EFI shell 重命名为bootla32.efi
,并将它们复制到 U 盘的/EFI/Boot/
目录下。
进入 EFI shell
- 咨询设备制造商,进入 BIOS,关闭「安全启动」模式;
- 在 BIOS 中调整设备启动顺序使 U 盘优先启动,或许你的计算机和我一样支持开机时进入「选择启动设备」界面;
- 进入 U 盘并选择对应位的 EFI shell。
删除 Revoke 信息
显示 Revoke 信息,执行
1
dmpstore -b *Revoke*
使用
dmpstore
命令删除列出的 Revoke 信息,类似于:1
2dmpstore -d RevokeSiSPolicySigners
dmpstore -d RevokeSiPolicyVersion退出 EFI shell
1
reset -s
如下图。
启动或重装操作系统
- 在 BIOS 打开「安全启动」选项;
- 按下电源键开机,进入原操作系统,可能需要等待系统修复;或者从 U 盘启动并重装新的操作系统。
以上是解决 error 0xc0e90002
的操作步骤。
📖 [Ref] Microsoft Community