无忧启动论坛

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

开机按F8出现修复计算机选项原理

  [复制链接]
跳转到指定楼层
1#
发表于 2018-11-13 12:58:57 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
开机按 F8出现“修复计算机”选项
reagentc配置winre正确后,在开机按 F8出现“修复计算机”选项
其实开机按 F8出现“修复计算机”选项并不是reagentc自身的作用实现的,是reagentc配置winre时,向bcd中操作系统标识{比如win7}项写入了数据

recoverysequence {xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx}
{xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx}是winre在bcd中的标识

BCDEDIT是编辑bcd的工具,用它可实现开机按 F8出现“修复计算机”选项
随便写一个结构正确的bcd启动标识,比如:{00000000-0000-0000-0000-000000000000}
执行下面命令:
BCDEDIT -set {比如win7} recoverysequence {00000000-0000-0000-0000-000000000000}
开机按 F8也会出现“修复计算机”选项,当然它不能启动任何内容

按上面原理,把bcd中配置好的pe启动项的标识写入bcd{current}中
PE启动的标识{xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx}
BCDEDIT -set {比如win7} recoverysequence {xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx}
开机按 F8出现“修复计算机”选项,选择“修复计算机”,就可启动PE了

再增加一条命令
BCDEDIT -set {比如win7} recoveryenabled  Yes   当系统启动出现故障时,会自动启动winre
recoveryenabled的值如果为No 当系统启动出现故障时,不会自动启动winre,只能手动开机按F8

你可以测试一下,把C:\windows\system32的winload.exe改为其它名称,当recoveryenabled为Yes时,启动win7,会自动启动winre,当recoveryenabled为No时,启动win7,不会自动启动winre

评分

参与人数 5无忧币 +16 收起 理由
ge + 5 很给力!
chishingchan + 2 赞一个!
pio9999 + 5 很给力!
2010techon + 3 赞一个!
maomihuacha + 1

查看全部评分

2#
发表于 2018-11-13 14:37:41 | 只看该作者
学习了!
回复

使用道具 举报

3#
发表于 2018-11-13 14:50:01 来自手机 | 只看该作者
技术好贴
回复

使用道具 举报

4#
发表于 2018-11-13 14:52:54 来自手机 | 只看该作者
所以说bcd是动态的,不可靠。
回复

使用道具 举报

5#
发表于 2018-11-14 09:24:35 | 只看该作者
学习了,谢谢!
回复

使用道具 举报

6#
发表于 2018-11-14 10:12:05 | 只看该作者
谢谢分享
回复

使用道具 举报

7#
发表于 2018-11-14 10:40:21 | 只看该作者
谢谢分享,辛苦啦
回复

使用道具 举报

8#
发表于 2018-11-14 12:24:06 | 只看该作者
怎么取得PE的标识{xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx}?

点评

创建pe启动项时就会产生标识{xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx} Windows 启动加载器 ------------------- 标识符 {xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx} device ram  详情 回复 发表于 2018-11-14 22:13
回复

使用道具 举报

9#
 楼主| 发表于 2018-11-14 22:13:09 | 只看该作者
being 发表于 2018-11-14 12:24
怎么取得PE的标识{xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx}?

创建pe启动项时就会产生标识{xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx}

Windows 启动加载器
-------------------
标识符                  {xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx}
device                  ramdisk=[boot]\winpe.wim,{ramdiskoptions}
path                    \windows\system32\boot\winload.exe
description             Win8PE
回复

使用道具 举报

10#
发表于 2018-11-14 22:58:04 | 只看该作者
一问题只涉一项不会错
一问题涉及千头万绪必有错
回复

使用道具 举报

11#
发表于 2018-12-7 15:56:18 | 只看该作者
好贴,收藏了
回复

使用道具 举报

12#
发表于 2018-12-7 15:56:19 | 只看该作者
好贴,收藏了
回复

使用道具 举报

13#
发表于 2018-12-7 15:56:21 | 只看该作者
好贴,收藏了
回复

使用道具 举报

14#
发表于 2018-12-8 10:55:14 | 只看该作者
{比如win7} 这里看不懂,能不能列个标准一点的示例?

点评

比如你安装了win7,那么bcd中有win7的启动项,有winre启动项,winre主要是用来为系统服务的,它的启动标识符会出现在win7的启动项中,win7启动出现问题时便会任标识符以调用winre 我说的BCDEDIT -set {比如win7}  详情 回复 发表于 2018-12-8 20:02
回复

使用道具 举报

15#
 楼主| 发表于 2018-12-8 20:02:39 | 只看该作者
本帖最后由 yjqd 于 2018-12-8 20:04 编辑
chishingchan 发表于 2018-12-8 10:55
{比如win7} 这里看不懂,能不能列个标准一点的示例?


比如你安装了win7,那么bcd中有win7的启动项,有winre启动项,winre主要是用来为系统服务的,它的启动标识符会出现在win7的启动项中,win7启动出现问题时便会凭标识符以调用winre

我说的BCDEDIT -set {比如win7} recoverysequence {00000000-0000-0000-0000-000000000000}中的{比如win7},意思是bcd中win7的启动项的标识符
如果你启动的win7是当前系统,就可以:

BCDEDIT -set {current} recoverysequence {e8e6343d-f6d6-11e8-9f8d-c0f8dab23362} 红色的是winre启动项标识符

Windows 启动加载器
-------------------
标识符                  {current}
device                  partition=C:
path                    \windows\system32\winload.exe
description             Windows 7
locale                  zh-CN
inherit                 {bootloadersettings}
recoverysequence       {e8e6343d-f6d6-11e8-9f8d-c0f8dab23362}
recoveryenabled         Yes
osdevice                partition=C:
systemroot              \windows
resumeobject            {6caac07e-ddb6-11e8-9cf4-b2480dc20ac0}
nx                      OptIn

点评

明白了  发表于 2018-12-8 23:38

评分

参与人数 1无忧币 +1 收起 理由
chishingchan + 1 赞一个!

查看全部评分

回复

使用道具 举报

16#
发表于 2018-12-8 23:44:30 | 只看该作者
如果运行 bcdedit 后显示以下的内容:
Windows 启动加载器
-------------------
标识符                  {current}
device                  partition=C:
path                    \windows\system32\winload.exe
description             Windows 7
locale                  zh-CN
inherit                 {bootloadersettings}
recoverysequence        {e8e6343d-f6d6-11e8-9f8d-c0f8dab23362}
recoveryenabled         Yes
osdevice                partition=C:
systemroot              \windows
resumeobject            {6caac07e-ddb6-11e8-9cf4-b2480dc20ac0}
nx                      OptIn


BCDEDIT -set {current} recoverysequence {e8e6343d-f6d6-11e8-9f8d-c0f8dab23362}
运行上面这行是不是等于没有被更改过?因为系统现时默认就是 {e8e6343d-f6d6-11e8-9f8d-c0f8dab23362}

点评

如果BCDEDIT -set {current} recoverysequence 后面的标识和当前系统中 {current}下面的recoverysequence 后面的标识一样,当然是没被更改  详情 回复 发表于 2018-12-10 12:02
回复

使用道具 举报

17#
 楼主| 发表于 2018-12-10 12:02:04 | 只看该作者
chishingchan 发表于 2018-12-8 23:44
如果运行 bcdedit 后显示以下的内容:
Windows 启动加载器
-------------------

如果BCDEDIT -set {current} recoverysequence 后面的标识和当前系统中 {current}下面的recoverysequence 后面的标识一样,当然是没被更改
回复

使用道具 举报

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

本版积分规则

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

闽公网安备 35020302032614号

GMT+8, 2025-12-24 21:25

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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