第二天:系统从BIOS/UEFI到GRUB/bootloader的启动过程

一、BIOS/UEFI初始化阶段

  1. 硬件自检(POST)

    • BIOS/UEFI通电后首先执行硬件自检(Power-On Self Test),检查CPU、内存、硬盘等设备的运行状态,确保硬件正常。
    • UEFI相比传统BIOS更先进,支持**GPT分区表、安全性增强(如Secure Boot)**和更快的启动速度。
  2. 硬件初始化与配置加载

    • BIOS/UEFI初始化系统硬件,读取CMOS(或NVRAM)中的配置参数,如启动顺序、时间设置等。
    • UEFI还会加载**内置驱动程序(如网络驱动、USB驱动)**以支持更多外设。
  3. 启动设备搜索

    • 根据配置的启动顺序(如硬盘、光驱、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的中继。

三、操作系统内核加载与初始化

  1. 内核加载

    • GRUB将内核镜像(如vmlinuz)和initramfs加载到内存。
    • 内核参数(如root=/dev/sda1 ro quiet splash)通过GRUB传递给内核。
  2. 内核初始化

    • 内核接管系统控制权,初始化硬件(如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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值