分享

系统启动项/系统引导原理(BIOS、UEFI、GRUB)

 丝广里 2021-11-01

先说下写本文的目的。很多学生党、程序猿经常喜欢倒腾双系统(包括我)。每次瞎折腾以后,总会莫名其妙出现系统启动问题;每次重装双系统,都要网上看半天教程;本着求知精神,我们当然知其然,还要知其所以然。
知道了原理,实践就不会那么茫然了。由于目前主流方式是UEFI+GPT方案。因此本文重点介绍也偏向于此。

名词解释

UEFI
统一可扩展固件接口(英语:Unified Extensible Firmware Interface,缩写UEFI),用来替代BIOS的方案。
GPT
guid partition table,guid分区表。属于UEFI标准的一部分。
ESP分区
efi system partition,efi系统分区,一个fat32格式的分区。uefi固件从这里加载UEFI引导器和应用程序。
bootloader
系统启动引导器,作用是为了让机器知道真正的系统所在的位置,以及启动入口。
GRUB
全称 GRand Unified Bootloader。G=是一个GNU项目的多操作系统启动程序,也是目前使用最广泛的bootloader.注:bootloader的根本目的是启动内核

重要文件介绍

bootmgfw.efi
bootmgfw.efi 是 Windows默认引导文件。windows安装后,引导文件位于ESP分区如下目录:/EFI/Miscosoft/Boot/bootmgfw.efi。

grubx64.efi
使用grub加载器的引导文件。

efibootmgr
linux中的EFI启动管理器,用来管理NVRAM启动入口以及顺序。

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

bootx64.efi
bootx64.efi 是计算机默认引导文件,默认的路径是/EFI/Boot/bootx64.efi。只有当所有的启动入口都不可用,才会尝试使用该文件去启动。
该文件的内容是等同于grubx64.efi或者bootmgfw.efi

启动流程

1.首先根据启动入口,确定需要加载的启动器(.efi文件)
2.对于Linux系统,或者是使用grub引导的系统,会加载到grubx64.efi文件
3.grub加载/boot/grub下的模块及配置文件
4.加载系统启动内核

参考文献

https://wiki./index.php/GRUB#Installation

https://staight./2018/09/05/%E5%BC%95%E5%AF%BC%E6%80%BB%E7%BB%93/

https://wiki./en/About_EFI_UEFI

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多