美文网首页
系统启动项/系统引导原理(BIOS、UEFI、GRUB)

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

作者: 乌木山 | 来源:发表于2019-10-30 23:50 被阅读0次

    先说下写本文的目的。很多学生党、程序猿经常喜欢倒腾双系统(包括我)。每次瞎折腾以后,总会莫名其妙出现系统启动问题;每次重装双系统,都要网上看半天教程;本着求知精神,我们当然知其然,还要知其所以然。
    知道了原理,实践就不会那么茫然了。由于目前主流方式是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.archlinux.org/index.php/GRUB#Installation

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

    https://wiki.mageia.org/en/About_EFI_UEFI

    相关文章

      网友评论

          本文标题:系统启动项/系统引导原理(BIOS、UEFI、GRUB)

          本文链接:https://www.haomeiwen.com/subject/uyvhvctx.html