Linux——boot lodaer:grub2核心载入工具

本文详细介绍了Linux系统中grub2引导加载器的工作原理和配置方法,包括boot loader的两个阶段,grub2配置文件的解析,如/boot/grub2/grub.cfg的设置。此外,还讲解了grub2对硬盘代号的识别方式,以及如何通过/etc/default/grub和/etc/grub.d/目录维护配置。文章还提到了initramfs的重要性和应用场景,以及grub2的测试与安装步骤,包括在线编修功能和图形显示方式的调整。
摘要由CSDN通过智能技术生成

1、boot loader的两个stage

在BIOS读取完信息后,接下里就是到第一个开机装置的MBR去读取boot lodaer。

Linux将boot loader将程序代码执行与设定值加载分成两个阶段来执行(stage)

(1)stage1:执行boot loader主程序

第一阶段为执行boot loader的主程序,这个过程必须安装在开机区,即使MBR或者是boot sector 。但如前所述,因为 MBR 实在太小了,所以,MBR 或 boot sector 通常仅安装 boot loader 的最小主程序, 并没有安装 loader 的相关配置文件;
(2)Stage 2:主程序加载配置文件:
第二阶段为透过 boot loader 加载所有配置文件与相关的环境参数文件 (包括文件系统定义与主要配置文件
grub.cfg), 一般来说,配置文件都在 /boot 底下。

[root@study ~]# ls -l /boot/grub2
-rw-r--r--. device.map <==grub2 的装置对应文件(底下会谈到)
drwxr-xr-x. fonts <==开机过程中的画面会使用到的字型数据
-rw-r--r--. grub.cfg <==grub2 的主配置文件!相当重要!
-rw-r--r--. grubenv <==一些环境区块的符号
drwxr-xr-x. i386-pc <==针对一般 x86 PC 所需要的 grub2 的相关模块
drwxr-xr-x. locale <==就是语系相关的数据啰
drwxr-xr-x. themes <==一些开机主题画面数据

[root@study ~]# ls -l /boot/grub2/i386-pc
-rw-r--r--. acpi.mod <==电源管理有关的模块
-rw-r--r--. ata.mod <==磁盘有关的模块
-rw-r--r--. chain.mod <==进行 loader 控制权移交的相关模块
-rw-r--r--. command.lst <==一些指令相关性的列表
-rw-r--r--. efiemu32.o <==底下几个则是与 uefi BIOS 相关的模块
-rw-r--r--. efiemu64.o
-rw-r--r--. efiemu.mod
-rw-r--r--. ext2.mod <==EXT 文件系统家族相关模块
-rw-r--r--. fat.mod <==FAT 文件系统模块
-rw-r--r--. gcry_sha256.mod <==常见的加密模块
-rw-r--r--. gcry_sha512.mod
-rw-r--r--. iso9660.mod <==光盘文件系统模块
-rw-r--r--. lvm.mod <==LVM 文件系统模块
-rw-r--r--. mdraid09.mod <==软件磁盘阵列模块
-rw-r--r--. minix.mod <==MINIX 相关文件系统模块
-rw-r--r--. msdospart.mod <==一般 MBR 分区表
-rw-r--r--. part_gpt.mod <==GPT 分区表
-rw-r--r--. part_msdos.mod <==MBR 分区表
-rw-r--r--. scsi.mod <==SCSI 相关模块
-rw-r--r--. usb_keyboard.mod <==底下两个为 USB 相关模块
-rw-r--r--. usb.mod
-rw-r--r--. vga.mod <==VGA 显示适配器相关模块
-rw-r--r--. xfs.mod <==XFS 文件系统模块

2、grub2 的配置文件 /boot/grub2/grub.cfg 初探
grub2 的优点:
· 认识与支持较多的文件系统,并且可以使用 grub2 的主程序直接在文件系统中搜寻核心档名;
· 开机的时候,可以『自行编辑与修改开机设定项目』,类似 bash 的指令模式;
· 可以动态搜寻配置文件,而不需要在修改配置文件后重新安装 grub2 。亦即是我们只要修改完/boot/grub2/grub.cfg 里头的设定后,下次开机就生效了!
<1>磁盘与分区槽在 grub2 中的代号
安装在 MBR 的 grub2 主程序,最重要的任务之一就是从磁盘当中加载核心文件, 以让核心能够顺利的驱动整个系统的硬件。所以啰, grub2 必须要认识硬盘才行啊!那么 grub2 到底是如何认识硬盘的呢?grub2 对硬盘的代号设定与传统的 Linux 磁盘代号可完全是不同的!grub2 对硬盘的识别使用的是如下的代号:
(hd0,1) # 一般的默认语法,由 grub2 自动判断分区格式
(hd0,msdos1) # 此磁盘的分区为传统的 MBR 模式
(hd0,gpt1) # 此磁盘的分区为 GPT 模式
注意:
· 硬盘代号以小括号 ( ) 包起来;
· 硬盘以 hd 表示,后面会接一组数字;
· 以『搜寻顺序』做为硬盘的编号!(这个重要!)
· 第一个搜寻到的硬盘为 0 号,第二个为 1 号,以此类推;
· 每颗硬盘的第一个 partition 代号为 1 ,依序类推。
所以说,第一颗『搜寻到的硬盘』代号为:『(hd0)』,而该颗硬盘的第一号分区槽为『(hd0,1)』,这样说了解了吧? 另外,为了区分不同的分区格式,因此磁盘后面的分区号码可以使用类似 msdos1 与gpt1 的方式来调整! 最终要记得的是,磁盘的号码是由 0 开始编号,分区槽的号码则与 Linux 一样,是由 1 号开始编号!两者不同

硬盘搜寻顺序  在 Grub2 当中的代号
第一颗(MBR)  (hd0) (hd0,msdos1) (hd0,msdos2) (hd0,msdos3)....
第二颗(GPT)  (hd1) (hd1,gpt1) (hd1,gpt2) (hd1,gpt3)....
第三颗 (hd2)  (hd2,1) (hd2,2) (hd2,3)....

 

3、grub2 配置文件维护 /etc/default/grub 与 /etc

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值