按照Linux系统从打开电源到进入系统的顺序,整个启动过程可分为以下阶段。
- BIOS阶段,Ubuntu的启动过程-CSDN博客
- 引导程序阶段,本文讲解这一阶段
- 内核阶段
- 进入系统
在介绍引导程序之前,首先简单地了解一下硬盘的构造。硬盘的构造比较复杂,但是存储数据的部分是由多个类似于CD的盘片堆叠而成的,盘片正反两面都可以记录数据。每个盘片被分成许多扇形的区域,称为扇区。通常情况下,一个扇区的大小为512字节。盘片以中心为圆心,不同半径的同心圆称为磁道。不同盘片相同半径的磁道所组成的圆柱称为柱面。
启动设备的0磁道0柱面1扇区称为引导扇区。引导扇区中包含两个部分:第1部分为主引导记录,即通常所说的MBR,大小为446字节;第2部分为磁盘分区表,即通常所说的DPT,大小为64字节。DPT中每个磁盘分区项需要占用16字节来描述,所以最多可以描述4个分区,这就是一个磁盘最多包含4个基本分区的原因。最后2字节为十六进制的55AA,这2字节是结束标志。如果某个磁盘该位置的值不为55AA,则表示该磁盘不含有MBR,即不可以从该磁盘启动计算机。
引导程序是指用来加载操作系统的程序。引导程序通常分为两部分,第一部分就是前面所讲的主引导记录。主引导记录不是直接跟操作系统打交道,而是用来加载第二部分的引导程序。第二部分的引导程序可以位于磁盘上的其他分区,常见的有NTLDR、BOOTMGR以及GNU GRUB等。
注意:BIOS位于主板上的EEPROM或者闪存内。而引导程序包括MBR、NTLDR以及GRUB,位于磁盘上。
GNU GRUB是目前绝大部分Linux发行版的引导程序。在启动的时候,GRUB会显示一个菜单列表以供用户选项,对于Ubuntu 22.04版本,需要在启动时按Esc键和Shift键才能进入。不同版本的Linux有不同的按键进入方式,如图7-1所示。
用户可以通过上下箭头键来选择需要的菜单项,按Enter键即可引导操作系统。