60 对UEFI引导的深入探究:efi引导程序的位置一定是死的吗?

news/2025/11/30 23:45:26/文章来源:https://www.cnblogs.com/swodni/p/19290869

对UEFI引导的深入探究:efi引导程序的位置一定是死的吗?

对于Windows系统,bootx64.efi和bootmgfw.efi是同一个文件,只是名字不同.他们本质都是bootmgfw.efi,用于引导Windows系统,无法引导其他系统.

所以,即便是Windows系统安装后在EFI分区里产生了bootx64.efi,由于它和bootmgfw.efi相同,所以它也不能引导其他系统(如Linux)启动.

引导Linux系统启动还需要Linux专用的bootx64.efi.虽然名字一致,但其文件本身已经发生了变化.

由于Linux系统是使用grub引导器引导启动,所以在Linux下,计算机的一种可行的启动流程是UEFI->bootx64.efi->grub.相当于bootx64.efi启动了grub(grub也是efi程序),grub引导Linux.

此外,由于grub的强大引导能力,他可以同时引导Windows,Linux,苹果系统等等系统类型.所以,使用Linux和Windows双系统的计算机一般可以使用grub作为引导器,而不是用Windows boot manager.


UEFI启动菜单里的启动项目是存储在主板上的NVRAM(非易失性随机存储介质)里面的,并不存储在硬盘中,所以不能通过操作硬盘处理编辑,但可以通过在UEFI固件里面的设置来更改.

在UEFI启动菜单中,每一个启动项都指向一个efi程序.

  • Windows boot manager指向bootmgfw.efi

  • 硬盘启动项指向bootx64.efi

  • 如果安装了Linux,UEFI启动菜单里面可能会有一个Linux启动项,笔者没用过,不知道

    由此可见,Windows计算机有两种可行的启动过程:

  1. UEFI->bootmgfw.efi(Windows boot manager)->读取BCD文件->启动
  2. UEFI->bootx64.efi(硬盘启动项)->读取BCD文件->启动

对efi引导程序位置影像系统启动的探究

bootx64.efi一定要放在EFI\boot文件夹里面吗?bootmgfw.efi一定要放在EFI\Microsoft\boot文件夹里面吗?如果移动了他们,会发生什么?

为了弄清楚efi引导程序的基本工作原理,笔者进行了控制变量实验.


bootx64.efi

首先,笔者删除了bootmgfw.efi,留下了bootx64.efi.然后,笔者把bootx64.efi复制到了EFI分区里的各个位置.包括:

  • EFI分区根目录(\)

  • *\EFI*

  • *\EFI\Microsoft*

  • *\EFI\Microsoft\Recovery*

  • *\EFI\Microsoft\Boot*

    笔者删除了bootx64.efi本来存在的地方,防止干扰.

    使用VMWare,笔者测试了在UEFI固件中使用每一份bootx64.efi的启动情况.结果如下:

除了\EFI\Microsoft\Recovery\里面的bootx64.efi,其余所有的bootx64.efi都可以引导计算机启动.

笔者把\EFI\Microsoft\boot\文件夹里面的所有名字里面含有"BCD"的文件移动到EFI分区里面的其他位置,发现任何bootx64.efi都无法启动.

那么,为什么\EFI\Microsoft\Recovery\里面的bootx64.efi无法引导启动?

为探究其原因,笔者将\EFI\Microsoft\Recovery\里面的BCD文件全部删除,使得该文件夹里面只剩bootx64.efi这一个文件.然后从这个文件成功启动了Windows.


对bootx64.efi的总结

bootx64.efi引导Windows启动的过程主要总结如下:

  • bootx64.efi首先检测他所在的文件夹里是否有BCD文件,若有,则直接读取它,然后根据这个BCD引导启动.

  • 若它所在的目录里没有BCD文件,则他开始在EFI分区中按照\EFI\Microsoft\boot\BCD这个固定的顺序寻找BCD文件.然后从这个文件引导启动.

  • 如果\EFI\Microsoft\boot\里面没有有效的BCD文件,那么无法引导启动系统.

    所以,刚刚的问题就可以解释了.Recovery文件夹里面本来是有BCD文件的,bootx64.efi优先读取这个BCD.

    但是这个BCD文件并不是Windows系统的BCD,而是WindowsRE恢复环境的BCD文件.笔者做测试的虚拟机没有WindowsRE,所以无法启动.


bootmgfw.efi

笔者对bootmgfw.efi进行了与bootx64.efi完全一致的研究测试.

结果表明,bootmgfw.efi与bootx64.efi的表现完全一致,这更加证明了:在Windows系统中,bootmgfw.efi和bootx64.efi是同一个文件.


希望本文能加深你对Windows引导程序的深入理解.

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/982388.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

电脑磁盘究竟如何分区才最合适?系统和软件如何管理才最好?给出推荐方案!

电脑磁盘究竟如何分区才最合适?系统和软件如何管理才最好?给出推荐方案! 2025年,仍然有很多人在网上争论,到底应该如何给电脑磁盘分区,电脑磁盘到底要不要分区,系统和软件到底安装在哪里合适. 对于这个老生常谈的问题…

2025.11.30总结

完成bs架构和cs架构的项目。项目都是酒店管理系统,其内核都一样,只不过表现形式不一样。 由于熟练度的问题,bs架构的项目要比cs的精细,视觉上更美观,功能上也更丰富,cs架构的项目就比较潦草

代码质量的根基——从“能跑”到“好用”的思维跃迁 - 20243867孙堃2405

初读《代码大全》时,最颠覆我认知的是书中对“代码质量”的重新定义。在此之前,我一直将“程序能正常运行”作为开发的核心目标,总觉得只要功能实现了,代码的“潦草”只是小问题。但这本书用大量案例证明,真正优秀…

36PE启动盘新秀:Ventoy(附各种PE的ISO下载)

PE启动盘新秀:Ventoy(附各种PE的ISO下载) 在我们以前的认知中,一个U盘只能制作包含一个系统的启动盘.比如,安装了微PE工具箱的U盘就不能安装其他什么PE工具箱了.这有时候让我们很无奈,只能买好多U盘,一个U盘一个PE系统…

115 系统坏了不想重装?吕了了手搓系统修复软件帮你修复系统

系统坏了不想重装?吕了了手搓系统修复软件帮你修复系统 Windows系统出现故障,但是不想重装? 的确,我们使用多年的Windows安装了各种软件,进行了各种个性化配置,重装系统之后又要重新来一遍,属实让人抓狂. 那么,有没有…

116Dism++备份系统,如何选择性的备份文件?

Dism++备份系统,如何选择性的备份文件? 我们在使用DISM工具备份Windows系统的系统盘C盘的时候,有时候并不想备份所有的C盘文件,但是如果不额外进行一些配置,那么Dism++是不知道我们想要在备份中排除的文件是哪些的.Di…

66重装系统被驱动难倒?几个重要的驱动安装技巧,建议收藏!

重装系统被驱动难倒?几个重要的驱动安装技巧,建议收藏! 重装系统之后,我们可能会发现自己的电脑"变聋","变哑","变瞎","变傻",这实际上大多数情况是由于没有安装合适的硬件驱…

图片压缩与格式转换:优化应用资源加载

图片压缩与格式转换:优化应用资源加载 引言 在 HarmonyOS 应用开发中,图片资源的管理对应用性能至关重要。不合理的图片处理会导致应用体积膨胀、加载速度变慢,甚至引发内存溢出问题。本文将深入讲解如何在 Harmony…

86 [深度解析] 系统的产生依赖于什么?

[深度解析] 系统的产生依赖于什么? 我们或许有一种常规的想法:这个电脑C盘没有安装系统,那么这个电脑里面没有系统. 这种说法准确吗?我们拿到一台电脑,也就是拿到了这台电脑的硬件. 这个硬件里面,包含了一个内嵌的软…

ArkTS 泛型编程指南:提升代码复用性与类型安全

ArkTS 泛型编程指南:提升代码复用性与类型安全 引言 在 HarmonyOS ArkTS 开发中,泛型是一种强大的编程工具,它允许我们编写可重用的代码,同时保持类型安全。通过泛型,我们可以创建适用于多种数据类型的组件、函数…

87 Windows 系统安装的本质是什么?

Windows 系统安装的本质是什么? 安装 Windows 系统,步骤复杂,方法多样,工具纷繁,变幻莫测.但是万变不离其宗. Windows 系统安装的本质,其实就是两点:解压wim 建立引导解压wim Windows系统安装所需的所有文件都被保存在…

内存溢出问题

内存溢出问题 最近在项目中遇到上传多图片到后端,进行压缩等比缩放,内存溢出的问题

140 Windows 11 新系统一分钟打不开一个软件?原来卡顿的真凶在这里!

Windows 11 新系统一分钟打不开一个软件?原来卡顿的真凶在这里! 前两天安装Windows11虚拟机,发现新系统竟然连一个geek都需要等待1分钟才能打开.这在Windows10中秒开的软件,为什么在Windows11中变得唯唯诺诺?幕后真凶…

124 禁用Windows更新有bug?不如先暂停它2000年!

禁用Windows更新有bug?不如先暂停它2000年! 你是否同样被Windows更新困扰?明明好端端的系统,更新后C盘爆满,出现新的bug,更新时间还长,更可怕的是还可能出现更新失败的情况,直接导致系统崩溃,重要的数据丢失.每天看见…

43 微软官方安装Windows途径

微软官方安装Windows途径 和大家讲了这么多,好像从来没讲过微软希望我们用什么方法安装Windows系统.(偷笑) 那今天就浅浅的介绍一下微软官方提供的安装Windows系统的方法吧! 1.原系统为Windows7及以下: 下载Windows10的…

82 深入解析 Windows RE:系统维护的强大工具

深入解析 Windows RE:系统维护的强大工具 在日常使用 Windows 的过程中, 用户难免会遇到系统启动故障、无法正常操作等问题.这时, 一个熟悉又陌生的工具——Windows Recovery Environment (Windows RE)——往往能够扭转…

126 激活Windows系统的四种终极方法

激活Windows系统的四种终极方法 今天讨论一个敏感话题,如何破解激活Windows系统? 要知道,我们可是从来不用正版的 : ) 我们在网上搜索Windows激活,可以搜出一大堆东西.那么,这么多眼花缭乱的激活方法,有没有一个鼻祖呢…

99 如何破解 Windows 系统密码?

如何破解 Windows 系统密码?请注意:本文不是教非法的事情.而是教实用技术.Windows系统开机密码忘了,怎么办? 下面说说一般情况下Windows系统登录的时候都有哪些情况:使用本地账户登录 使用微软账户登录无论使用本地账…

讲讲django的文件对象

一、django文件对象是什么? Django 抽象出了一套“文件处理体系”,核心是:Django 所有文件类的基类 提供统一的接口用于:读取写入迭代存储到 Storage 后端(本地/OSS/S3)使用FileField / ImageField来构造:class…

香港中文大学(深圳) PHY1001 - Mechanics 笔记

笔记包括2025年秋学期该课程的知识点笔记包括2025年秋学期该课程的知识点 不包含高中物理中有的一些常见知识点Idealized Models 理想模型 为了研究最重要的性质而建立的比现实简单的模型,如研究物体下落轨迹时会忽略…