目录
一、BIOS/UEFI初始化阶段
-
硬件自检(POST)
- BIOS/UEFI通电后首先执行硬件自检(Power-On Self Test),检查CPU、内存、硬盘等设备的运行状态,确保硬件正常。
- UEFI相比传统BIOS更先进,支持**GPT分区表、安全性增强(如Secure Boot)**和更快的启动速度。
-
硬件初始化与配置加载
- BIOS/UEFI初始化系统硬件,读取CMOS(或NVRAM)中的配置参数,如启动顺序、时间设置等。
- UEFI还会加载**内置驱动程序(如网络驱动、USB驱动)**以支持更多外设。
-
启动设备搜索
- 根据配置的启动顺序(如硬盘、光驱、USB),BIOS/UEFI识别可引导设备并加载其引导记录:
- BIOS模式:加载硬盘的主引导记录(MBR,512字节),其中包含引导代码(446字节)和分区表(64字节)。
- UEFI模式:直接加载EFI分区中的引导程序(如
EFI/BOOT/bootx64.efi
)。
二、引导加载程序(GRUB)的启动过程
1. BIOS模式下的GRUB分阶段加载
-
Stage 1:
-
BIOS将MBR中的引导代码(Stage 1)加载到内存地址0x7C00并执行。
-
Stage 1代码会跳转到MBR后的未分配空间(或分区表后的空间),加载Stage 1.5。
-
-
Stage 1.5:
- 处理文件系统(如ext4、NTFS),定位并加载Stage 2的GRUB核心模块。
- 此阶段支持GRUB的高级功能,如菜单选择、内核参数编辑。
-
Stage 2:
- 加载GRUB配置文件(如
/boot/grub2/grub.cfg
),显示启动菜单,允许用户选择操作系统或内核版本。 - 根据配置加载内核(如
vmlinuz
)和初始化内存文件系统(initramfs)到内存。
- 加载GRUB配置文件(如
2. UEFI模式下的GRUB加载
- UEFI直接加载EFI分区中的GRUB二进制文件(如
/EFI/BOOT/bootx64.efi
),跳过MBR阶段。 - GRUB在UEFI环境中同样执行Stage 2的加载流程,但无需Stage 1的中继。
三、操作系统内核加载与初始化
-
内核加载
- GRUB将内核镜像(如
vmlinuz
)和initramfs加载到内存。 - 内核参数(如
root=/dev/sda1 ro quiet splash
)通过GRUB传递给内核。
- GRUB将内核镜像(如
-
内核初始化
- 内核接管系统控制权,初始化硬件(如CPU模式切换、内存管理)、挂载根文件系统(通过initramfs)。
- 启动第一个用户空间进程(PID 1),通常是
systemd
(现代Linux)或init
(传统系统)。
四、关键组件与配置文件
- GRUB配置文件:
/boot/grub2/grub.cfg
定义了启动菜单选项及内核参数。 - initramfs:临时文件系统,用于在真实根文件系统挂载前提供驱动和工具。
- /boot目录:存放内核镜像、GRUB模块和其他引导文件。
五、故障排查与恢复
- 引导修复:若MBR损坏,可通过
grub-install
命令重新安装GRUB。 - 紧急模式:通过GRUB菜单编辑参数(如
init=/bin/bash
)进入紧急Shell。 - 密码恢复:在GRUB菜单编辑启动参数(如
rw init=/bin/bas