目录
**一、BIOS/UEFI初始化阶段**
**二、引导加载程序(GRUB)的启动过程**
**1. BIOS模式下的GRUB分阶段加载**
**2. UEFI模式下的GRUB加载**
**三、操作系统内核加载与初始化**
**四、关键组件与配置文件**
**五、故障排查与恢复**
**总结**
常见问题
如何在UEFI模式下修复GRUB引导加载程序?
BIOS与UEFI在硬件初始化阶段有哪些具体的不同?
GRUB配置文件`/boot/grub/grub.cfg`的详细编辑指南是什么?
initramfs的作用及其在系统启动过程中的具体步骤是什么?
initramfs的作用
initramfs在系统启动过程中的具体步骤
initramfs与initrd的区别
实际应用
在多操作系统环境中,如何配置GRUB以支持多系统启动?
一、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)到内存。
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传递给内核。
内核初始化
内核接管系统控制权,初始化硬件(如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