【转】关于Bootmgfw.efi、Bootx64.efi的详解
【转】关于Bootmgfw.efi、Bootx64.efi的详解
前⾔:
1、本教程针对于UEFI启动来叙述的,根据普遍的⽀持UEFI的机器来叙述
2、本教程以Windows 8 X64 来作为参考
标题简要说明:
Windows Boot Manager  --------安装完Windows系统后⽽出现的启动选项(相关的信息存储在NVRAM),可以删除和建⽴和有关
Bootmgfw.efi  --------引导Windows的引导⽂件
Bootx64.efi ---------UEFI的必需引导⽂件
<--------修复UEFI启动的命令⾏⼯具,微软出品
开始前先引进两个概念:
计算机默认引导-----------就是不管你的计算机有没有操作系统,定义了UEFI启动后将通过Bootx64.efi 引导你的计算机,并进⼊各种模式,维护、安装、计算机或者系统
这⾥是 Bootx64.efi ,它只是⼀个通⽤名,权限丰富且⼤于Windows 默认,就是说如果你的Windows 默认的启动⽂件不在了,
启动计算机默认的引导⽂件Bootx64.efi 也是可以启动计算机的。使⽤计算机默认⽂件随时可以在各种环境下启动计算机,EFI SHELL、ISO、
Windows、都可以,通吃型.
Windows默认引导-------就是你为计算机安装了操作系统,或者修复了UEFI引导后,启动菜单会有 Windows Boot Manager 选项,该选项默认从bootmgfw.efi 启动系统
bootmgfw.efi  该位置的该⽂件只能⽤于启动Windows,不是通⽤名,权限单⼀
========================================================uefi boot
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分区引导⽂件分析
我为此安装了微软win8 x64的操作系统,分析ESP分区的全部⽂件,分别存在:
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
复制代码
当我们执⾏了上述代码后:
< 会修复系统引导,⽽且会同时修复计算机默认引导和Windows 默认引导,在ESP分区同时出现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程序”

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。