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