引导加载器 GRUB
引导加载器多种多样,作用是引导操作系统的内核,让内核开始接管启动的机器,当前有很多的引导加载器如:GURB、Bootmanager、LILO、NTLDR、bootmgr。
简单的来说 GRUB 的作用就是引导操系统的内核,引导加载器起到了承前[BIOS]启后[内核]的作用
在通常情况下不需要对 GRUB 进行相关的操作,当然 GRUB 也能解决一些问题比如说 root 密码忘记的问题。
▶ 从 BIOS 到 引导程序 GRUB

当 BIOS或者UEFI 完成硬件的自检后会产生一个中断,该中断会引导到一个指定的扇区,该扇区上就有一段被称为 主引导记录
,这段主引导记录加载到内存中称为 引导加载器
也叫 引导程序
,引导程序会加载内核,实现操作系统对机器的控制,下图中的 引导加载器
是 GRUB/GRUB2
。

MBR 磁盘分区表:https://www.cnblogs.com/takenika/articles/18387029
▶ 常用的引导加载器-GRUB
GRUB
全称是 GRand Unified Bootloader
翻译为 大一统引导程序
,这是一个用于加载和管理系统启动的完整程序,是 Linux 中最常见的引导程序,作为一个引导加载器 GRUB 不但能引导 Linux 也能引导如 Windows、OS/2、Solaris、FreeBSD、NetBSD。
GRUB 是目前Linux默认的引导加载器,通常使用的是第二版 GRUB2。
▷▷ 引导程序与引导管理器
都是 GRUB 既有 引导程序
功能,也有 引导管理器
的功能。
两者的区别在于 引导程序
会直接加载内核,而 引导管理器
不会急于直接加载操作系统,而是允许使用者在不同的操作系统之间进行选择。

这张图是 rocky Linux 9.4
安装的 grub2
启动的界面,此时正处于 引导管理器 的过程,允许用于是选择上面的直接进入还是进入紧急的救援模式,并不会像 引导程序 那样直接跑到单一的内核那里去。
但是区分 引导管理器 和 引导程序没什么意思 这都是 GRUB 的组成部分,GRUB 称为 引导加载器 那就一起统称 引导加载器 估计也行。
▶ GRUB 下的临时配置
在来到 GRUB 的管理界面后,通过使用 ↑
和 ↓
键来选择进入指定的内核,在高亮的就是指定选择的内核,
选择内核后按 e
可以进入内核有关配置的界面,c
则是进入 grub 的命令行界面。

grub配置中前三行的内容:
选项 | 参数 |
---|---|
load_video | 加载视频模式,可以显示文本或者是图片 |
set gfx_payload | 设置Linux内核启动时候视频的模式 gfx 是图形的意思,keep 表示保持默认图形显示的值 |
insmod gzip | 插入一个模块,载入一个 grub 的扩展模块,后面是扩展模块的名称,grub 的扩展模块保存在 /boot/grub2/i386-pc/中 |
第四行内容:
通过 Linux 命令指定一个32位的启动协议,$(root)
是一个环境变量,指的是 /boot
目录,后面的 vmlinux-5.14.0-427.13.1.e19_4.x86_64
是针对于 /boot 下的 vmlinux-5.14.0-427.13.1.e19_4.x86_64
这个内核文件,后面的是参数。
参数1
root=/dev/mapper/rl_192-root ro
一个 LVM 的逻辑卷,名字是 rl_192-root 是以 ro 方式来做 mount。
参数2
crashkernel
用来捕获内核崩溃的信息。
参数3
resume=/dev/mapper/rl_192-swap
指定一个交换分区,在恢复Linux实例的时候需要的交换分区里面的设备名称。
参数4
rd.lvm.lv
指定要激活的逻辑卷,= 后面可以有多个值,一个是 rl_192/root
另一个 rl_192/swap
这两个逻辑卷。
第五行内容:
initrd
: init 是初始化的意思,rd是rundisk,这个32位的协议为内核载入一个 rawdisk,rawdisk 是内核在引导中挂载的一个临时的根文件系统,用来支持一个多阶段的引导,里面包含可执行程序和驱动,启动完成后就没什么用,后面的 $tuned_initrd
也是跟着一个环境变量。
initrd="/boot/initramfs-5.14.0-427.13.1.el9_4.x86_64.img"
▶ 关于 GRUB
引导加载器 GRUB:https://www.cnblogs.com/takenika/articles/18390663
现代计算机的引导及启动过程:https://www.cnblogs.com/takenika/articles/18389463
Linux下的光盘安装的救援模式-缺失 GRUB 配置 https://www.cnblogs.com/takenika/articles/18391634