不管是 Windows 还是 Linux 操作系统,底层设备一般均为物理硬件,操作系统启动之前会对硬件进行检测,然后硬盘引导启动操作系统,如下为操作系统启动相关的各个概念。
一、BIOS
基本输入输出系统(Basic Input Output System,BIOS)是一组固化到计算机主板上的只读内存镜像(Read Only Memory image,ROM)芯片上的程序,它保存着计算机最重要的基本输入输出的程序、系统设置信息、开机后自检程序和系统自启动程序。主要功能是为计算机提供最底层的、最直接的硬件设置和控制。
二、 MBR
全新硬盘在使用之前必须进行分区格式化,硬盘分区初始化的格式主要由两种,分别是:MBR 格式和 GPT 格式。
使用 MBR 格式,操作系统将创建主引导记录扇区(Main Boot Record,MBR),MBR 位于整块硬盘的 0 磁道 0 柱面 1 扇区,主要功能是操作系统对磁盘进行读写时,判断分区的合法性以及分区引导信息的定位。主引导扇区总共为 512 字节,MBR 只占用了其中的 446 个字节,另外的 64 个字节为硬盘分区表 (Disk Partition Table,DPT),最后两个字节"55,AA"是分区的结束标志。
因为 MBR 分区标准决定了 MBR 只支持在 2TB 以下的硬盘,对于后面的多余空间只能浪费。为了支持能使用大于 2T 硬盘空间,微软和英特尔公司在可扩展固件接口(Extensible Firmware Interface,EFI)方案中开发了全局唯一的标识符(Globallyunique identifier,GUID),进而全面支持大于 2T 硬盘空间在企业中使用。
三 、GPT
全局唯一的标识符(Globally unique identifier,GUID)。全局唯一标识分区表(GUID Partition Table,缩写:GPT),正逐渐取代 MBR 成为新标准。它和统一的可扩展固件接口 (Unified Extensible Firmware Interface,UEFI)相辅相成。UEFI 用于取代老旧的 BIOS,而 GPT 则取代老旧的 MBR。之所以称为"GUID 分区表",是因为驱动器上的每个分区都有一个全局唯一的标识符。
在 GPT 硬盘中,分区表的位置信息储存在 GPT 头中。出于兼容性考虑,第一个扇区同样有一个与 MBR 类似的标记,叫做受保护的主引导记录(Protected Main BootRecord,PMBR)。PMBR 的作用是当使用不支持 GPT 的分区工具时,整个硬盘将显示为一个受保护的分区,以防止分区表及硬盘数据遭到破坏,而其中存储的内容和 MBR 一样,之后才是GPT 头。
GPT 优点支持 2T 以上磁盘,如果使用 Fdisk 分区,最大只能建立 2TB 大小的分区,创建大于 2TB 的分区,需使用 parted,同时必须使用 64 位操作系统。
GPT分区表内容
四、GRUB
GNU 项目的多操作系统启动程序(GRand Unified Bootloader,GRUB),可以支持多操作系统的引导,它允许用户可以在计算机内同时拥有多个操作系统,并在计算机启动时选择希望运行的操作系统。
GRUB 可用于选择操作系统分区上的不同内核,也可用于向这些内核传递启动参数。它是一个多重操作系统启动管理器。Linux常见的引导程序包括:LILO、GRUB、GRUB2,CentOS 7 Linux 默认使用 GRUB2 引导程序,引导系统启。
GRUB2 是基于 GRUB 开发成更加安全强大的多系统引导程序,最新 Linux 发行版都是使用 GRUB2 作为引导程序。同时 GRUB2 采用了模块化设计,使得 GRUB2 核心更加精炼,使用更加灵活,同时也就不需要像 GRUB 分为 stage1,stage1.5,stage2 三个阶段。
GRUB 加载引导流程