注:方法总结写在了最后,是探索过程。 升级了Windows 10开发者预览版,Build版本号16193。升级之后由于重重原因,打算回退Windows 10 Creator正式版。进行系统恢复时发现,原可以引导系统的U盘,出现了错误。 具体的错误现象:停滞在windows Boot Manager界面,错误代码:0xc0e90002。查询宏映射得知0xc0e90002被映射为:STATUS_SYSTEM_INTEGRITY_POLICY_VIOLATION。看来是权限的问题。于是,关闭了secure boot,还是不行。 我想,是不是这个版本的windows 10修改了UEFI的RAM代码,导致只能认16193以及更高的版本。我的电脑上正好有Fedora 26 Alpha测试版,调整好启动项,Fedora顺利开机。于是,排除了只认windows的可能。进而想到,应该不是修改了UEFI的RAM代码。(仅仅是应该,不确定是不是只识别16193更高版本)那么问题来了,怎么能把这个系统重装…… Dism++这个软件开发团队设计了一个功能,在windows RE中运行Dism++。Windows RE是一个Windows应急恢复环境。 ![]() 图1 RE中运行Dism++选项 在Windows RE中果然恢复成功。(恢复的是我以前备份过的Creator正式版系统)。出于好奇,我又试了一下U盘启动,还是0xc0e90002。 是不是应该更新一下U盘中的Windows PE。一天过去了,无论如何(U+,量产)都不能正确引导。 ![]() 图2 Windows PE 我的电脑只有UEFI没有BIOS,所以必须把U盘制作成FAT32格式,然而这个格式又不能放大于4G的文件,所以……很头疼。先不管格式了,全盘格式成FAT32. 用UltraISO这个软件进行U+启动盘制作。所有的都试过了。仍然不好使。PE已经用到了Creator更新的PE。 上网搜了一个制作U+的PE。微PE。这个PE在知乎上评价很高,在此也推荐给大家。 ![]() 图3 WEPE网站 ![]() 图4安装界面 在安装界面可以看到,直接安装到硬盘是可以的。为了排除U盘的干扰,这里直接安装到了硬盘。没有时间点击完成安装,直接操作Win+X——U——R(意思是重启)。屏幕上:Surface——进度条——选择一个操作系统——“winPE”——【重启】——Surface——进度条——Windows BOOT Management——0xc0e90002,再次GG。 既然是权限的问题,那么就跟证书有关。进入EFI分区,看到若干证书,修改时间是升级Insider的时间,还有BCD文件,修改时间就是安装微PE工具箱的时间。由于新版windows 10 Creator(Build版本号1703)没办法正常映射EFI分区。用磁盘工具DiskGenius强制映射一下,提示系统错误,没有指定权限……是不是权限不足?管理员身份运行,“系统错误”。于是用起了windows自带的diskpart。 先看看图,和图下的文字说明,没什么可以打字的。 ![]() 图5 diskpart ![]() 图6 DiskPart分配盘符 ![]() 图7表面上看起来很好的E盘 ![]() ![]() 图8,图9迷惑性的可以取得权限 ![]() 图10傻眼了吧,根本没有安全选项卡 ![]() 图11一键添加超级管理员权限的代码 ![]() 图12驱动器上根本没有取得管理员权限选项 想到System权限吗?Windows XP及以前的时代,可以直接System权限运行个explorer.exe,方法大家上网搜吧。Windows Vista后,不能像XP那么简单获取System权限了。Windows 7以前(windows 8 8.1没有测试过)可以通过创建服务的方式来取得System权限。代码还是给你们放出来。 ![]() 图13 Win7 System权限获取代码 ![]() 图14 Microsoft :休想随便取得System权限 糟糕,可是我还有一个最后的办法取得System权限。替换讲述人(Narrator.exe)。 ![]() 图15讲述人的原型 ![]() 图16取得Narrator的超级管理员权限 ![]() 图17分配修改权限 ![]() ![]() 图18 19替换成功的Narrator.exe ![]() 图20成功取得system权限 ![]() 图21休想在System权限运行explorer.exe ![]() 图22终于可以了(这个是现在正常的样子,故障的时候哪里想得到截图) 用C:\Windows\Boot替换EFI分区里面的关键文件 替换完成后,心惊胆战的重启了一下,进入系统了,长舒一口气。 测试PE,仍然0xc0e90002。 尝试bcdboot ![]() 图23想用bcdboot修复EFI分区 ![]() 图24正常状态下可以修复的EFI分区(故障的时候这个直接提示权限不足) ![]() 图25 System权限下也不能修复 真正的解决方案——mountvol ![]() 图26 mountvol界面 看了一眼说明之后,mountvol H: /s 奇迹出现了,EFI分区可以进去了,我把它备份了一下,彻底格式化(因为毕竟要返厂了,无所谓了),在一连串bcdboot c:\windows /l zh-cn /s h: /f UEFI 重启 果然,不能进系统了。 抱着碰碰运气的心里关闭了“安全启动”(secure boot)。 Surface——进度条——选择一个操作系统——Windows 10——正在寻找你——欢迎 哇! 重启——Surface——进度条——选择一个操作系统——Windows PE——重启——Surface——Windows Boot Management——Loading Files——进度条——Windows PE正在启动 !!! 插入以前做好的U盘,Surface——Windows Boot Management——Loading Files——进度条——Windows PE正在启动 尘埃落定。 总结一下:步骤 1.用mountvol这个微软自带工具,将EFI分区映射为本地磁盘。 在以管理员身份运行的命令提示符窗口输入mountvol H: /s H就是待映射的盘符,这里举个例子为H盘。 给出mountvol官方文档: Mountvol创建、删除或列出卷装入点。 用法 MOUNTVOL [drive:]path VolumeName MOUNTVOL [drive:]path /D MOUNTVOL [drive:]path /L MOUNTVOL [drive:]path /P MOUNTVOL /R MOUNTVOL /N MOUNTVOL /E MOUNTVOL drive: /S path 指定装入点将驻留的现有NTFS目录。 VolumeName 指定装入点的目标的卷名称。 /D 从指定的目录中删除卷装入点。 /L 列出指定目录的已装入的卷名称。 /P 从指定目录删除卷装入点,卸下此卷并使此卷无法装入。您可以创建 一个卷来再次使此卷可以装入。 /R 删除不在系统中的、卷的装入点目录和注册表设置。 /N 禁用新卷的自动装入。 /E 再次启用新卷的自动装入。 /S 将EFI系统分区装载到提供的驱动器。 2.用DiskGenius格式化EFI分区,格式FAT32 3.在以管理员身份运行的命令提示符窗口输入bcdboot c:\windows /l zh-cn /s H: /f UEFI C:\Windows要替换成你安装的Windows所在磁盘 H替换成你映射EFI的盘符 给出bcdboot官方文档 Bcdboot - Bcd启动文件创建和修复工具。 bcdboot.exe命令行工具用于将关键启动文件复制到系统分区以及创建新的系统BCD存储 bcdboot[/l [/m [{OS Loader ID}]] source 指定windows系统根目录的位置。 /l 指定在初始化BCD存储时使用的可选区域设置参数。 默认值为“简体中文”。 /s 指定一个可选的卷号参数,该参数用于指定要将启动环境文件复到 的目标系统分区。默认值为固件标识的系统分区。 /v 启用详细模式。 /m 如果提供了操作系统加载器GUID,则此选项可以将给定的加载器 对象与系统模板合并起来,以产生可启动条目。否则,只合并全局 对象。 示例: bcdboot c:\windows /l en-us bcdboot c:\windows /s h: bcdboot c:\windows /m {d58d10c6-df53-11dc-878f-00064f4f4e08} 4.重启计算机 |
| 本文出处: http://www.toutiao.com/a6427373938465210625/ |
|
声明:文章版权归原作者所有 部分文章转自互联网 如有侵权请联系
[邮箱地址] 删除
|