系统的启动流程可分为以下几个关键阶段,综合硬件初始化、引导加载、内核加载及用户空间初始化等过程。

‌流程图简化:

BIOS/UEFI → GRUB → 内核 → systemd → 目标状态 → 用户登录

BIOS/UEFI 初始化

  1. 硬件自检(POST)

计算机加电后,BIOS/UEFI 首先执行硬件自检(Power-On Self Test),检测 CPU、内存、存储设备等核心硬件状态‌

  1. ‌选择启动设备

根据 BIOS/UEFI 配置的启动顺序(如硬盘、USB、网络等),加载目标设备的引导扇区代码(如 MBR 或 UEFI 分区)‌

GRUB 引导加载程序

  1. 加载 GRUB 菜单

BIOS/UEFI 将控制权移交至 GRUB(Grand Unified Bootloader),读取 /boot/grub/grub.cfg 配置文件并显示可引导的操作系统选项菜单‌

  1. ‌内核与 initrd 加载

用户选择 Debian 启动项后,GRUB 将 Linux 内核(如 vmlinuz)和初始内存磁盘镜像(initrd.img)加载至内存,启动内核执行‌

内核初始化

  1. 硬件驱动加载

内核初始化硬件设备(如磁盘控制器、网络接口),并挂载根文件系统‌

  1. 启动 systemd 进程

内核调用首个用户空间进程 systemd(PID=1),取代传统的 SysV init 作为初始化系统‌

用户空间初始化

  1. ‌目标状态(Target)管理

systemd 根据默认目标(如 multi-user.targetgraphical.target)激活基础服务(如网络、日志、定时任务)‌

  1. ‌运行级别兼容

  • 级别 0 → poweroff.target(关机)
  • 级别 1 → rescue.target(单用户维护模式)
  • 级别 2-5 → multi-user.target(多用户模式)
  • 级别 6 → reboot.target(重启)‌

用户登录

  1. 显示管理器启动‌

若目标为图形界面(graphical.target),systemd 启动显示管理器(如 GDM),进入登录界面‌

  1. ‌Shell 或桌面环境加载

用户认证通过后,启动桌面环境(如 GNOME)或命令行 Shell‌