无忧启动论坛

 找回密码
 注册
搜索
系统gho:最纯净好用系统下载站投放广告、加入VIP会员,请联系 微信:wuyouceo
查看: 3262|回复: 5
打印 上一主题 下一主题

thinkpad的恢复功能部分原理分析

  [复制链接]
跳转到指定楼层
1#
发表于 2017-5-25 13:22:15 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
thinkpa的F11键或蓝键恢复系统

thinkpa的F11键或蓝键按下后启动的是隐藏分区的tvtos\winpe.wim,它要配合隐藏分区的的其它文件才能进行恢复,如果选择完全恢复,那么将自动重启后启动隐藏分区的Recovry\WindowsRE\winRE.wim进入完全恢复的界面,由此有两个问题产生:

1、为什么重启后会自动启动启动隐藏分区的Recovry\WindowsRE\winRE.wim,而不是启动windows系统

2、为什么能进入完全恢复的界面,而不是修复界面,因为winRE.wim实际就是win7的修复计算机的文件,也就是按F8启动的文件,运行的\sources\recovery\RecEnv.exe,能进入完全恢复的界面说明它里面有thinkpad的恢复工具,在\sources\recovery确实里面有tool文件夹,那是怎样判断什么情况下启动\sources\recovery\RecEnv.exe和什么情况下启动\sources\recovery\tool下的还原工具呢,查看了一下\Windows\System32\winpeshl.ini,内容为:
[LaunchApp]
AppPath=x:\windows\system32\lrecenv.exe
而一般情况下是
[LaunchApp]
AppPath=x:\sources\recovery\RecEnv.exe

说明lrecenv.exe可以启动修复和恢复,它能进行判断,具体是怎么判断的呢

第1个问题
可以根据bcd文件中有一项/bootsequence   为启动管理器设置一次性启动序列。(也就是在下次启动时启动被设置的启动项,启动完成后,下次再重启时就按原来的启动了,也就是说只有一次优先启动),来判断在winpe中选择完全恢复时就向隐藏分区的boot\下的bcd写入了/bootsequence,事实如此,在winpe中选择完全恢复时插入一个启动u盘,设置u盘启动,启动后查看隐藏分区的boot\下的bcd,确实写入了/bootsequence 后面的内容指向winre的标识。

第2个问题

\sdrivebackup.wim解压\preboot\Recovery\下面有recover.cmd和OVRWINRE
OVRWINRE可用winhex.exe查看或者把OVRWINRE改名为OVRWINRE.txt查看内容为X:\sources\recovery\tools\recov7.exe,说明有可能是winre启动后读取了这个文件,同样进行第1个问题判断bcd内容的方式在winpe中选择完全恢复时插入一个启动u盘,设置u盘启动,启动后查看隐藏分区根目录下确实有一个OVRWINRE,但是不是没选择完全恢复它就存在里面了的呢,那就取下u盘,重启,进入完全恢复后界面,选择取消重启插入一个启动u盘,设置u盘启动,启动后查看隐藏分区根目录下已经没有了,说明选择取消或是进行恢复都会删除OVRWINRE,也就是说隐藏分区根目录平时不会存在OVRWINRE。

如果OVRWINRE确实是起到判断的条件,那么我们可以拷贝OVRWINRE到隐藏分区根目录下,按下F8键,本来应该启动到修复界面,但实际进入完全恢复界面,事实如此,你可以试一下,太让人惊喜了。


那又是怎么想到会去查看OVRWINRE文件呢,因为找第2个问题的原因只能分析在隐藏分区根目录下的文件,\preboot\Recovery\下面有recover.cmd的文件名和恢复有关,在winpe中选择完全恢复时可能就启动了这个文件,先看下里面的内容其中有
for /F "usebackq tokens=1,*" %%I IN (`bcdedit /enum osloader ^| find /I "recoverysequence"`) DO bcdedit /bootsequence %%J
这句验证了对第1个问题的判断,向隐藏分区的boot\下的bcd写入了/bootsequence
copy /Y %tvtdrive%\preboot\recovery\OVRWINRE %tvtdrive%\OVRWINRE
把OVRWINRE拷贝到了隐藏分区的根目录,这句可以说验证了对第2个问题的判断
以下是lrecenv.exe文件中的内容说明了lrecenv.exe可以启动recenv.exe和recov7.exe
x:\sources\recovery\recenv.exe \ runas %c:\ Could not get volume label of volume %s.
Opened %s.
Got exe file path from ovrwinre file: %s.
意思是从ovrwinre中获取要启动的程序路径,ovrwinre中的内容是X:\sources\recovery\tools\recov7.exe

ovrwinre在恢复界面中用户选择取消或是进行恢复都会被删除,以下内容是recov7.exe中的,可以说明是被recov7.exe删除的
if exist %s:\OVRWINRE del %s:\OVRWINRE

评分

参与人数 3无忧币 +11 收起 理由
hero8000 + 5 赞一个!
lbw2007 + 5 赞一个!
2012雨晨绿软 + 1 支持探索

查看全部评分

2#
发表于 2017-5-25 14:51:18 来自手机 | 只看该作者
支持技术研究
回复

使用道具 举报

3#
发表于 2017-5-26 10:51:23 | 只看该作者
学习了,感谢分享!

点评

谢谢各位 帖子里的内容是我2014年夏天折腾thinkpad时所作的记录,那时不太懂启动方面的知识,很折腾了些时间,运气好,弄明白了一些原理 内容有些混乱,见谅!  详情 回复 发表于 2017-5-26 11:14
回复

使用道具 举报

4#
 楼主| 发表于 2017-5-26 11:14:57 | 只看该作者
lbw2007 发表于 2017-5-26 10:51
学习了,感谢分享!

谢谢各位

帖子里的内容是我2014年夏天折腾thinkpad时所作的记录,那时不太懂启动方面的知识,很折腾了些时间,运气好,弄明白了一些原理

内容有些混乱,见谅!
回复

使用道具 举报

5#
发表于 2017-5-27 07:53:19 | 只看该作者
不错,算是技术内容。。
回复

使用道具 举报

6#
发表于 2021-12-2 00:38:07 来自手机 | 只看该作者
重装win10系统后,如何重建F11
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|捐助支持|无忧启动 ( 闽ICP备05002490号-1 )

闽公网安备 35020302032614号

GMT+8, 2024-11-14 16:28

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表