V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
acess
V2EX  ›  Windows

Windows 系统重置功能的小问题

  •  
  •   acess · 2016-05-25 15:55:31 +08:00 · 2064 次点击
    这是一个创建于 3086 天前的主题,其中的信息可能已经有所发展或是发生改变。

    背景

    Win8 以来,就开始有“恢复电脑而不影响我的文件”功能了,看上去就是利用隐藏分区里的恢复镜像自动重装+迁移文件。如果是预装的系统,分区设置都很合理:有独立的 EFI 分区来存放引导文件,还有独立的恢复分区用来存放 WinRE 镜像和恢复镜像。

    也就是说,哪怕 C 盘的文件系统因为读写数据时非正常关机、在 Cygwin 里无脑 dd 等等原因挂了,连正常挂载都不能,用户都可以进得去 WinRE 。

    可以扔掉一键 GHOST 了?

    貌似,并不能。
    我用虚拟机安装了 64 位 Win10Pro ,测试了一下(故意重命名 ntdll.dll ,导致系统无法启动)……发现微软居然给这么棒的功能留下了一个超级蛋疼的弱点:
    ReAgent.xml 仍然存放在 C 盘。
    这本身不算什么。

    问题在于,如果没了这个文件,系统重置就 SB 了:
    我重命名了 C:\Windows\System32\Recovery\ReAgent.xml ,然后重启,重新进入 WinRE ,尝试运行保留个人文件的系统重置。
    它会在 1%左右卡几秒,然后回来告诉你碰到了问题,不能继续。
    然后……就没有然后了。
    哪怕你可以在 WinRE 输入用户名和密码成功登录,哪怕……你决定放弃个人文件,如果 ReAgent.xml 丢了,你仍然会卡在这里。

    如何绕过问题?

    也许可以先在 WinRE 里打开命令提示符,然后用 reagentc.exe 重新生成一个 ReAgent.xml
    但是,如果连 reagentc.exe 本身也没了呢? WinRE 里貌似并没有这个东西。
    对了……其实恢复分区里就有一份 ReAgent.xml ,它的路径通常是\Recovery\WindowsRE\ReAgent.xml ,直接 copy 过去不就可以了?
    实际上,这么干的确让系统重置恢复正常了(很遗憾,这么 copy 一下拯救不了提示“无法保留个人文件”的情况)。但是……有多少 Windows 用户愿意折腾这个 ReAgent.xml ?
    另外,如果你真的格掉了 C 盘,即使拷回 ReAgent.xml 也无济于事,只有重装一条路(可以手动运行 dism /apply-image 把恢复镜像解压出来,但这也算是重装……)

    结论

    我也不清楚结论应该是什么……装机工仍然有生意可做?
    我相信微软这么安排是有原因的……但我猜不到是出于什么样的原因。

    2 条回复    2016-05-25 16:07:22 +08:00
    longaiwp
        1
    longaiwp  
       2016-05-25 16:03:23 +08:00
    这个恢复有可能会失败的,因为你可以清理掉安装的镜像,而且最有趣的是你还会因为某些核心失败的原因导致不能恢复,所以这个恢复功能只是一般用户重置系统环境的,因为一般要重置都是出现蓝屏了什么的
    acess
        2
    acess  
    OP
       2016-05-25 16:07:22 +08:00
    @longaiwp
    Win10 的重置可以脱离恢复镜像,但我测试时使用 reagentc 启用了恢复镜像。
    也许这导致使用重置时,系统不能被破坏得太严重(比如至少注册表文件还能用)?
    不知道 Win8.1 能不能做到即使格盘也能重装回来……
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3412 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 11:03 · PVG 19:03 · LAX 03:03 · JFK 06:03
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.