|
1、当 ReAgentc /info 是 Disabled 的情况下,确保 C:\Recovery\WindowsRE 下必须存在3个文件:boot.sdi、ReAgent.xml、Winre.wim,没有的话分别在 System32 和 System32\Recovery 里找;
2、ReAgentc /enable 如果显示错误,就用 bcdedit -enum -v 看一下GUID,然后 REAGENTC /enable /osguid xxxx 即可;
3、存在上述3个文件,高级重启后的高级选项里就不会缺失,但是如果启动后选择某项(比如命令提示符),像我出问题那样的一直显示 “请稍候” 或者自动重启到桌面,那么是启动项的问题:系统启动项里 Windows Recovery Environment 对象的 Path 值变成了 \windows\system32\winload.exe,只要把其修改为 \windows\system32\winload.efi 即可正常!(我怀疑这应该是 MBR+UEFI 造成的,或许微软这玩意看到是 MBR 磁盘,就想当然的当作是 BIOS 启动而不是 UEFI 启动)
4、以后不要轻易的再运行 ReAgentc /disable 和 ReAgentc /enable 了,前者会删除 C:\Recovery\WindowsRE 下的 boot.sdi、ReAgent.xml,当然后者成功执行后会自动把这俩文件复制回来倒不是什么大问题,但关键的是:后者执行完毕,在我当前的 MBR+UEFI 环境下,又会自动的把启动项里 Windows Recovery Environment 的 Path 修改为 \windows\system32\winload.exe 了,也就是你重新开启一次,就要修改一次才会正常,不然肯定是卡在“请稍候”或者自动重启;
5、这里为了方便,我整了一句命令,直接在管理员CMD执行即可修复(当然用 BOOTICE 更方便):
- FOR /F "skip=3 tokens=1,*" %i IN ('bcdedit /enum {current}') DO @IF /I "%i"=="recoverysequence" bcdedit /set %j path \windows\system32\winload.efi
复制代码
6、不排除,我这个异常也跟系统有关,因为我最开头就交代了我用的是 WIN10 LTSC,这个版本号好像是1809,就是疯传的有升级时删除用户文件夹BUG的版本,但是我从来不在文档目录存储啥东西,也就无所谓了;我没有其他版本的系统,如果感兴趣,可以在 MBR+UEFI 环境下安装别的系统测试后也告知我一下。。。
7、至于我前面提到的获取系统盘符,在批处理下查了资料没有太好的方法,只能通过枚举盘符以及判断重要系统文件来实现,比如:
- for /d %%a in (C D E F G H I J K L M N O P Q R S T U V W Y Z) do if exist %%a:\Windows\System32\config\system xxxxxxx
复制代码 |
|