赞
踩
EFI的全称是Extensible Firmware Interface(可扩展固件接口)。它与传统的BIOS(基本输入/输出系统)的主要区别和联系如下:
区别:
体系结构和设计理念:
启动过程:
驱动程序和兼容性:
用户界面和配置:
安全性:
联系:
总的来说,EFI/UEFI是对传统BIOS的重大改进,旨在解决BIOS在面对现代复杂计算环境时所面临的局限性和挑战。随着技术的发展,越来越多的现代计算机和操作系统已经转向UEFI作为标准的固件接口。
=======
BIOS自检(POST,Power-On Self Test)是在计算机启动时进行的一系列硬件检测步骤。它主要检查以下几个方面:
基本硬件存在性与功能性:
关键系统组件:
扩展硬件资源:
初始化设置:
通过这一系列的检测,BIOS确保了计算机的基础硬件环境能够在操作系统加载前达到稳定且可操作的状态。如果在自检过程中发现任何严重错误,系统将停止启动并报告错误;对于非严重错误,则可能会给出警告,但允许系统尝试继续启动。
==============
EFI(Extensible Firmware Interface,可扩展固件接口)和UEFI(Unified Extensible Firmware Interface,统一可扩展固件接口)是现代计算机启动过程中的固件标准,它们都是用来取代传统的PC BIOS的。
EFI:
UEFI:
总的来说,UEFI是一种更加先进且功能丰富的固件接口规范,它通过定义操作系统与平台固件之间的标准接口来简化和优化启动过程,使得计算机系统具备更高的启动速度、更好的兼容性和安全性。
=========
UEFI(Unified Extensible Firmware Interface)与传统的BIOS(Basic Input/Output System)在功能、原理和开机启动过程上存在显著的区别:
扩展性:UEFI是一个可扩展的架构,允许固件开发者增加新的接口和服务,而BIOS的功能相对固定且不易扩展。
安全性:UEFI支持安全启动(Secure Boot),它通过验证操作系统加载程序的数字签名来防止恶意软件篡改启动过程。BIOS不具备这样的内置安全机制。
驱动程序支持:UEFI可以加载并执行EFI驱动程序,这些驱动程序能够在操作系统加载之前运行,提供对现代硬件的支持。相比之下,BIOS中的驱动是固定的,并且通常不支持复杂的硬件初始化。
启动方式:UEFI支持从GPT分区引导操作系统,并可以直接读取文件系统加载引导程序;BIOS则依赖MBR分区表,并需要一个特定扇区内的引导加载程序。
用户界面:UEFI提供了图形化用户界面,操作更为直观和易用;BIOS大多使用文本界面,菜单结构简单,设置选项较少。
.efi
文件)执行。总的来说,UEFI相较于BIOS具有更现代化的设计、更强的安全性、更好的兼容性和更高的性能。随着技术发展,UEFI已经成为当前计算机系统主流的固件标准。
==========
在分区时会提示创建ESP(EFI系统分区)和MSR(Microsoft保留分区)是因为这些分区对于使用GPT分区表的磁盘来说是非常重要的。具体分析如下:
此外,如果硬盘作为非系统盘使用,即不作为启动盘,那么可以不创建MSR和ESP分区。但在大多数情况下,尤其是当硬盘用作系统启动盘时,创建这两个分区是必须的。
总的来说,创建ESP和MSR分区是在硬盘初始化和分区过程中的一个重要步骤,它们对于确保操作系统能够正确安装和启动至关重要。
=======
在EFI系统分区(ESP,EFI System Partition)中,通常包含以下目录结构和作用:
EFI 目录:
EFI/Boot
:这个目录下通常会有一个基本的启动文件(如BOOTX64.EFI或BOOTIA32.EFI),用于没有明确指向操作系统的UEFI固件进行默认启动时使用。EFI/<OS_VENDOR>
:每个支持UEFI引导的操作系统厂商都会在这里创建一个子目录,例如EFI/Microsoft/
存放Windows的引导文件,EFI/Linux
或者EFI/ubuntu
等存放Linux发行版的引导加载器文件。Microsoft 目录(对于Windows系统):
bootmgfw.efi
) 和 Boot Loader (bcdboot.exe
创建的 BCD 文件) 等。其他操作系统特定目录:
第三方引导管理器:
驱动程序:
工具和恢复数据:
这些目录及其中的文件共同构成了UEFI环境下的启动链,允许计算机从多个操作系统或其他特殊用途的软件中选择启动。
=======
UEFI(Unified Extensible Firmware Interface,统一可扩展固件接口)与传统的BIOS(Basic Input/Output System,基本输入输出系统)在启动过程中的主要区别如下:
体系结构和模式:
引导方式:
启动加载器:
.efi
文件格式的引导加载器),这些加载器可以直接加载现代操作系统的PE(Portable Executable)格式内核。安全性:
用户体验:
性能:
可扩展性:
================
安全启动(Secure Boot)是UEFI规范中的一项安全特性,旨在防止恶意软件在操作系统启动之前加载。该功能要求系统在启动过程中仅加载那些使用合法密钥签名过的固件、驱动程序和操作系统组件。
认证过程基于数字签名机制:
对于盗版GHOST系统或其他非官方修改的操作系统版本,由于它们通常没有得到原操作系统开发商的官方签名,因此无法通过安全启动的认证流程。除非用户禁用了安全启动功能,或者手动添加了信任这些非法或非官方签名的密钥到UEFI的信任数据库中,否则这样的系统是不能在安全启动开启的情况下成功安装和运行的。不过,这种做法将严重削弱安全启动的安全防护效果。
Bootmgfw.efi和Winload.efi
在UEFI环境中,当提及“操作系统的引导加载程序”时,通常是指具有有效数字签名的UEFI应用程序文件。对于Windows操作系统来说,这个具体文件可能是:
Bootmgfw.efi
:这是Windows Boot Manager (BOOTMGR) 的UEFI版本,负责管理多个启动项和继续加载实际的操作系统内核。
Winload.efi
:这是Windows操作系统的实际引导加载器,在Boot Manager之后被加载,用于加载操作系统的核心组件。
这两个文件(或其他类似的.efi
文件)必须带有由受信任的证书颁发机构(CA)签名的证书,并且该证书需要存在于UEFI固件的安全启动数据库中,才能通过安全启动(Secure Boot)验证并顺利启动操作系统。如果使用的是Linux或其他非Windows操作系统,则对应的UEFI引导加载程序可能为GRUB2的grubx64.efi
或特定发行版提供的.efi
引导加载程序。这些同样需要经过适当的签名以便在启用安全启动的UEFI系统上正确启动。
grubx64.efi/boot.efi/loader.efi
不同的操作系统使用不同的EFI引导加载程序(.efi文件)。以下是一些常见操作系统的UEFI引导加载程序:
Linux发行版:
shim.efi
或者grubx64.efi
。shim.efi
是一个轻量级的引导加载程序,主要用于支持安全启动(Secure Boot)功能,并随后加载grubx64.efi
(GRUB2),GRUB2是更为复杂的引导加载器,它可以加载Linux内核和初始化RAM磁盘(initrd),进而启动操作系统。macOS(苹果系统):
boot.efi
的引导加载程序,它位于ESP分区下的EFI/Apple/
目录下。FreeBSD、OpenBSD等类UNIX系统:
loader.efi
。其他嵌入式或定制操作系统:
.efi
的扩展名格式。每个操作系统的引导加载程序都是针对该系统的特点和要求设计的,其主要任务是与UEFI固件交互,为操作系统内核提供适当的参数并最终加载内核开始启动过程。
winload.efi在windows中的路径
winload.efi
文件通常位于Windows操作系统安装分区的特定目录下,对于使用UEFI引导的系统来说,其路径通常是:
1C:\Windows\System32\Boot\EFI\winload.efi
在用户通过 bootmgfw.efi
(即Windows Boot Manager)选择了一个启动项后,Windows Boot Manager会根据存储在BCD(Boot Configuration Data)中的配置信息来加载相应的内核加载程序。具体流程如下:
bootmgfw.efi-->
Windows Boot Manager-->BCD-->winload.efi
EFI/Boot/bootx64.efi
或EFI/Microsoft/Boot/bootmgfw.efi
文件。bootmgfw.efi
,它将被加载到内存中执行,即开始运行Windows Boot Manager。winload.efi
。winload.efi
被加载到内存,并负责加载操作系统的内核以及其他必要的驱动程序和启动服务,最终使操作系统能够启动并运行。因此,从bootmgfw.efi
到winload.efi
的过程是一个有序且基于配置数据的引导链路,确保了操作系统的正确加载与。
ESP分区中,同时存在EFI/Boot/bootx64.efi和EFI/Microsoft/Boot/bootmgfw.efi文件,那么当计算机启动时,他会如何选择?
在UEFI引导过程中,计算机启动时会选择加载哪个EFI应用(如bootx64.efi
或bootmgfw.efi
)主要取决于UEFI固件的配置和Boot Manager的设置。
通常情况下:
默认启动项:UEFI固件会检查其内部存储的启动顺序列表,并尝试从预设的默认启动项中加载文件。这个默认启动项可能指向EFI/Boot/bootx64.efi
,也可能是EFI/Microsoft/Boot/bootmgfw.efi
,具体由用户或制造商在BIOS/UEFI设置界面中设定。
Windows Boot Manager (bootmgfw.efi):在大多数现代Windows系统中,UEFI固件的默认启动项通常是EFI/Microsoft/Boot/bootmgfw.efi
,因为它是Windows操作系统自带的Boot Manager。Boot Manager可以显示一个启动菜单,让用户选择要启动的操作系统或者恢复环境等。
应急启动:EFI/Boot/bootx64.efi
文件有时被用作备用引导程序或应急启动方案。如果EFI/Microsoft/Boot/bootmgfw.efi
无法正常工作,或者用户手动更改了启动顺序和路径,UEFI固件可能会去尝试加载EFI/Boot/bootx64.efi
。
因此,当计算机启动时,它首先按照UEFI固件中的启动顺序查找并加载指定的EFI应用程序。对于多启动环境或自定义启动配置的情况,可能需要用户通过UEFI设置界面进行更详细的配置以控制启动流程。
在Microsoft的BOOT文件夹里:Bootmgfw.efi和
Bootmgr.efibootmgfw.efi
是 Windows Boot Manager 的全称,其中 mgfw
通常被解释为“Microsoft Boot Manager for UEFI Firmware”。这个文件是用于支持UEFI启动模式下的Windows操作系统加载过程的引导管理器。
bootmgfw.efi:
winload.efi
。bootmgr.efi:
ntldr
,对于支持EFI BIOS但不使用UEFI模式时则可能是另一个版本的引导管理器)。总结起来,bootmgfw.efi
是专门为UEFI启动设计的引导管理器,而 bootmgr.efi
则是用于传统BIOS或早期混合启动环境的引导管理器。随着技术的发展和UEFI的普及,现代Windows操作系统更倾向于使用 bootmgfw.efi
进行引导
Bootmgfw.efi:
Bootx64.efi:
Winload.efi:
Grubx64.efi:
grubx64.efi
是GRUB2在UEFI环境下的引导加载程序。虽然Grub是开源软件,理论上可以编译和定制,但通常情况下,个人用户不是通过直接编辑.efi
文件来配置GRUB,而是通过编辑其配置文件(如/boot/grub/grub.cfg
)来更改引导菜单、内核选项等。如果确实需要修改源代码,那也是先修改源代码然后重新编译生成新的.efi
文件。Boot.efi 和 Loader.efi:
boot.efi
有时是macOS中的引导加载程序名称,对应于boot.efi
或OpenCore.efi
(对于黑苹果系统)。类似于上述情况,直接编辑这些文件存在风险,而且并非常规操作。loader.efi
在不同的上下文中可能有不同的含义,比如在某些Linux系统或者自定义引导加载程序中。如果是开源项目的一部分,那么可以通过修改源代码后重新编译来定制,而不是直接编辑.efi
文件。总结来说,除非你具备相应的专业知识,并了解修改带来的潜在风险和后果,否则不建议个人用户直接编辑以上提到的.efi
文件。正确的做法通常是通过官方提供的工具或配置文件来进行设置和调整。对于开源项目,遵循社区指南和文档来进行安全的定制和编译。
bootmgfw.efi
签名的流程:构建和签名:
bootmgfw.efi
(即Windows Boot Manager)这一引导加载程序。bootmgfw.efi
文件进行数字签名。这个签名过程确保了文件的完整性,并证明该文件来自受信任的源头——微软公司。包含在安装介质中:
bootmgfw.efi
被包含在官方发布的Windows安装媒体(如ISO镜像、U盘安装包等)中。UEFI固件的信任链:
安装过程中的签名验证:
bootmgfw.efi
是否带有有效的数字签名,并且该签名是否可以追溯到预置的信任链中的一个或多个证书。bootmgfw.efi
,从而继续Windows的安装流程。写入ESP分区:
bootmgfw.efi
以及其他必要的启动文件,确保它们符合UEFI和Secure Boot的要求。综上所述,在安装Windows系统时,微软预先对bootmgfw.efi
进行了签名,并确保在安装过程中能够顺利通过UEFI固件的安全启动机制验证。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。