本教程针对于UEFI启动来叙述的,根据普遍的支持UEFI的机器来叙述。

标题简要说明:
Windows Boot Manager  --------安装完Windows系统后而出现的启动选项(相关的信息存储在NVRAM),可以删除和建立,和bcdboot.exe有关
Bootmgfw.efi  --------引导Windows的引导文件  
Bootx64.efi ---------UEFI的必需引导文件
bcdboot.exe--------修复UEFI启动的命令行工具,微软出品

开始前先引进两个概念:

计算机默认引导  -----------就是不管你的计算机有没有操作系统,定义了UEFI启动后将通过Bootx64.efi 引导你的计算机,并进入各种模式,维护、安装计算机或者系统。
                                          这里是 Bootx64.efi ,它只是一个通用名,权限丰富且大于Windows 默认,就是说如果你的Windows 默认的启动文件不在了,
                                          启动计算机默认的引导文件Bootx64.efi 也是可以启动计算机的。使用计算机默认文件随时可以在各种环境下启动计算机,EFI SHELL、ISO、
                                          Windows、Linux...都可以,通吃型.

Windows默认引导 -------就是你为计算机安装了操作系统,或者修复了UEFI引导后,启动菜单会有 Windows Boot Manager 选项,该选项默认从bootmgfw.efi 启动系统
                                          bootmgfw.efi  该位置的该文件只能用于启动Windows,不是通用名,权限单一

0、
对于UEFI启动环境来说,Bootx64.efi 用处更大,这里Bootx64.efi 是个通用名,就是所任意有效的efi改成Bootx64.efi 都被计算机启动加载,并启动。
bootmgfw.efi 不是通用名,只适合启动Windows。

当然对于UEFI启动Windows来说Bootx64.efi 和bootmgfw.efi 其实是同一个文件,二者的循环冗余校验CRC值是一样的。
他们都有启动windows的能力,但是身处的位置不一样,

efi\boot\bootx64.efi 
efi\microsoft\boot\bootmgfw.efi

对系统的引导产生的影响肯定也不一样,下面我们来验证....

从三个方向来讲:(以下结论都经过事实验证,经得住任何怀疑和猜测!!)
========================================================
1、光盘介质UEFI启动【已验证】:

通过分析微软原装镜像的UEFI引导记录(efisys.bin)我发现,最初出光盘的引导文件是efi\boot\bootx64.efi,因为此项验证较简单,我总共验证了:
win7 x64 ;win8 x86 ;win8 x64 三者的光盘引导文件分别是 bootx64.efi  bootia32.efi  bootx64.efi

结论:UEFI在光盘上的启动不依赖于操作系统,可认为是无操作系统环境,故 bootx64.efi 是计算机默认引导文件========================================================

2、移动磁盘介质UEFI启动【已验证】:

普遍的,可以从论坛上看到通过bootx64.efi 启动U盘

结论:UEFI在移动磁盘介质上的启动不依赖于操作系统,可认为是无操作系统环境,故 bootx64.efi 是计算机默认引导文件
========================================================

3、本地磁盘介质UEFI启动【已验证】:

::原生ESP(or efi)分区引导文件分析

在微软win10 x64的操作系统,分析efi分区的全部文件,分别存在: 
efi\boot\bootx64.efi 
efi\microsoft\boot\bootmgfw.efi

我们不禁思考:哪个文件测试真正用到的呢?计算机默认启动哪个呢?系统默认启动哪个呢?

那好很简单,我们依次删除他们看看系统能否启动就知道了....

1、删除 bootmgfw.efi ,保留 bootx64.efi

>结果:
选择 从本地硬盘启动 系统仍然可以引导进入
选择 Windows Boot Manager 进入失败

2、删除 bootx64.efi ,保留 bootmgfw.efi

>结果:
选择 从本地硬盘启动 进入失败
选择 Windows Boot Manager 系统仍然可以引导进入

结论:
bootx64.efi 是计算机默认引导文件
bootmgfw.efi 是 Windows默认引导文件

4、bcdboot 和 “Windows Boot Manager ” “ Bootmgfw.efi” “  Bootx64.efi ” 之间的联系

bcdboot 修复系统引导的命令格式: bcdboot 系统位置 /l 语言

例:

 bcdboot c:\windows /l zh-cn

我们执行完这段代码后:

bcdboot.exe 会修复系统引导,而且会同时修复计算机默认引导和Windows 默认引导,在efi分区同时出现bootx64.efi和bootmgfw.efi,

并且bootx64.efi是由bootmgfw.efi 改名而来的。与此同时在Boot Menu启动选择菜单那里生成“Windows Boot Manager”,

Windows Boot Manager 及其包含的信息是保存在主板上的NVRAM里面的,而不是保存在硬盘上,故删除Windows Boot Manager需要到BIOS设置区删除。

::这里我们如果通过bcdedit查看bcd文件的话,我们可以发现,bootmgfw.efi 是 Windows默认引导文件。所以我们的结论同原生ESP分区测试的结论一样。

UEFI规范中,关于NVRAM的正解:
NVRAM是BIOS ROM中的一段区域,一般定义为64k byte, 现在EFI把所有的变量都存在这里。

结论:
bootx64.efi 是计算机默认引导文件
bootmgfw.efi 是 Windows默认引导文件

最后:
写这篇帖子最主要的原因,是能够让那些不是很明白Bootx64.efi和Bootmgfw.efi区别的、或者模糊知道的朋友,清楚了解二者之间的关联以及区别不要再有 Bootx64.efi就是Bootmgfw.efi改名而来的、Bootx64.efi就是Bootmgfw.efi
像这些不正确的说法,以免误导后来的朋友.....
准确的说:“Bootx64.efi 可以是 Bootmgfw.efi,也可以是其他任意有效的efi程序”

另:
通过上面的验证可以知道UEFI下修复Windows 引导可以分为:修复计算机默认引导和Windows默认引导。

比较通用的是修复计算机默认引导,如果你能够会UEFI下手动/自动修复计算机默认引导,那么修复Windows 默认引导也不在话下,

从UEFI层面上说,Windows其实是计算机的一个efi应用,它被计算机包含了。所以修复计算机默认引导才是万能的。

当然,在不会手动修复的时候,bcdboot还是很有用的,正常情况下都能修复。只要你的系统没有经过过度精简,bcdboot应该都能搞定,
能够学会手动修复就不用担心这些了。

下方是一个手动修复计算机默认引导的视频教程,在一楼底部,视频看起来很直观,一看就懂。修复计算机默认引导后,我们可以直接引导Windows,
而可以不必理会Windows默认引导是否存在或者是否正确。

http://bbs.wuyou.net/forum.php?mod=viewthread&tid=303679&page=3#pid2789441

http://bbs.wuyou.net/forum.php?mod=viewthread&tid=299643&page=1

Windows Boot Manager、Bootmgfw.efi、Bootx64.efi、bcdboot.exe 文件的关系的更多相关文章

  1. [转载] 关于Windows Boot Manager、Bootmgfw.efi、Bootx64.efi、bcdboot.exe 的详解

    原帖: http://bbs.wuyou.net/forum.php?mod=viewthread&tid=303679 前言:1.本教程针对于UEFI启动来叙述的,根据普遍的支持UEFI的机 ...

  2. bios中只有windows boot manager下用U盘启动

    在重装系统的时候,很多时候都是先进入bios设置成U盘启动项,然后进行安装,如果年代久远一点的,就设置成光驱启动,再进行:随着时间的推行,光驱已经开始淘汰了,也怀念以前的光驱装机的时光!-:) 开始进 ...

  3. 用U盘安装 win7 ”找不到任何设备驱动程序“ 和 系统出现 windows boot manager 解决方案

    用U盘安装win7系统时,系统交替的出现了如下的2个错误,捣鼓了半天,记录下来: 问题1描述: 安装win7时  ”找不到任何设备驱动程序“  问题2描述: 安装win7时,用U盘启动后, 系统出现 ...

  4. 关于Windows Boot Manager、Bootmgfw.efi、Bootx64.efi、bcdboot.exe 的详解

    1. http://bbs.wuyou.com/forum.php?mod=viewthread&tid=303679&fromuid=396698

  5. Windows Boot Manager改成中文菜单

    用管理员身份运行"命令提示符",依次执行以下命令 bcdedit /deletevalue {bootmgr} device bcdedit /deletevalue {bootm ...

  6. Windows 7/8/8.1 误删EFI启动项,无法开机解决方式(U盘+原版镜像)

    今天手贱把Windows 7的启动项删了.由于是GPT分区,EFI引导的,又不像MBR那般easy解决 想想重装系统也麻烦,并且仅仅是删了个启动项而已.就不是必需去费那个时间 想了一下,Windows ...

  7. Windows 10 Manager v2.3.3

    Windows 10 Manager 是专门用于微软 Windows10 的集所有功能于一身的实用工具,它包括了40多个不同的实用程序来优化.调整.清理.加快和修复您的 Windows 10,可以让你 ...

  8. (转)The windows boot configuration data file dose not contain a valid OS entry

    开价蓝屏,显示: Windows failed  to start. A recent hardware or software change might be the case.to fix the ...

  9. FAQ: SBS 2011. The Windows SBS Manager service terminated unexpectedly

    Symptoms The Windows SBS Manager service is stopped with EventID 7034 every half an hour on SBS 2011 ...

随机推荐

  1. SpringBoot+SpringSecurity之多模块用户认证授权同步

    在之前的文章里介绍了SpringBoot和SpringSecurity如何继承.之后我们需要考虑另外一个问题:当前微服务化也已经是大型网站的趋势,当我们的项目采用微服务化架构时,往往会出现如下情况: ...

  2. yarn storm spark

    单机zookeeper http://coolxing.iteye.com/blog/1871009 storm http://os.51cto.com/art/201309/411003_2.htm ...

  3. 大二暑假第四周总结--开始学习Hadoop基础(三)

    简单学习云数据库系统架构(以UMP系统为例) 一.UMP系统概述 低成本和高性能的MySQL云数据库方案 二.UMP系统架构 架构设计遵循以下原则: 保持单一的系统对外入口,并且为系统内部维护单一的资 ...

  4. HDU—4699 Editor 双向链表+子集和

    惨.今天聪哥选了2013 多校10做训练,结果一题都没做出来.这个题目是数据结构,正好是我强项 如果只是插入 删除 光标左右移动,那都小菜,用链表全解决,关键是那个Q k 要求 a1到aq的连续子序列 ...

  5. 学术Essay写作关键:避免冗余

    “冗余”(Redundant)意味着多余的.不必要的.在Essay写作中,redundant expression(即冗余表达)指的是在一个短语或一句句子中有一个单词完全重复了同一短语或句子中的另一个 ...

  6. LIS是什么?【标本分拣】

    接之前[LIS是什么?]中,提到几点需要补充描述的部分. Ⅰ.标本分管处理 标本的分管处理,在医院和第三方实验室有多种叫法,例如:分拣.合管等等.这里我称之为分拣,分拣实际上分为两个部分:系统中标本分 ...

  7. 吴裕雄--天生自然TensorFlow2教程:合并与分割

    import tensorflow as tf # 6个班级的学生分数情况 a = tf.ones([4, 35, 8]) b = tf.ones([2, 35, 8]) c = tf.concat( ...

  8. 2020/2/1 PHP代码审计之任意文件读取及删除漏洞

    在开始学习之前先简单记录一下自己现在的思路吧..现在接触的基本都是无防护的漏洞也就是最简单的一些漏洞.我的想法就是以代审思路为主,之前一直在打CTF,白盒的思维我觉得和CTF这种黑盒有很大区别.自己的 ...

  9. ✨vue引入组件 axios和icont矢量图标

    axios 在vue项目开发中,我们使用axios进行ajax请求,很多人一开始使用axios的方式,会当成vue-resoure的使用方式来用,即在主入口文件引入import VueResource ...

  10. python 流行库、库的基本用法

    进入github,输入python 点击see topic 进入python流行的库  链接 https://github.com/topics/python 1.QuantLib 金融衍生品数据库 ...