Linux启动过程解析

Mar 04, 2026

  1. 开机

    • 计算机开机时启动引导过程。
    • 系统硬件初始化,并将控制权交给BIOS或UEFI。
    • BIOS/UEFI存储在非易失性存储器中,并执行开机自检(POST)以检查硬件完整性。
  2. BIOS/UEFI 初始化

    • 检测并初始化硬件设备,如 CPU、内存、磁盘驱动器和外设。
    • 确定可启动设备(如硬盘、USB 或网络)。
    • 一旦硬件检测完成,控制权将移交给引导加载程序(Bootloader)。
  3. 启动设备选择

    • BIOS/UEFI 根据配置顺序选择启动设备。
    • 启动设备包含引导加载程序(例如 GRUB)。
    • 系统读取启动扇区以定位引导加载程序。
  4. GRUB(引导加载程序)

    • GRUB(GRand Unified Bootloader)从所选设备加载。
    • 读取配置文件 /etc/grub2.cfg。
    • 显示启动菜单(如果已配置),以选择所需的内核或操作系统版本。
    • 将选定的Linux内核加载到内存中。
    • 加载启动所需的基本内核模块和库。
  5. 内核初始化

    • Linux 内核解压自身并初始化系统组件。
    • 检测硬件组件并挂载根文件系统(/)。
    • 启动第一个用户空间进程——通常是systemd。
    • 从内核模式切换到用户模式。
  6. 执行systemd

    • systemd 是用户空间中的第一个进程(PID 1)。
    • 负责初始化所有其他服务和目标。
    • 从 /etc/systemd/system/ 读取配置文件。
    • 激活目标文件,如:
      • basic.target
      • multi-user.target
      • getty.target
      • ssh.service
  7. 运行启动脚本

    • 执行系统范围和用户特定的启动脚本。
    • 例如:
      • /etc/profile
      • /systemd-logind
      • ~/.bashrc
    • 这些脚本用于设置用户环境和后台服务。
  8. 用户登录

    • 一旦所有启动脚本和目标执行完毕,登录界面将出现。
    • 用户现在可以通过终端、GUI或SSH登录。
    • 系统现在处于完全可运行的多用户状态。

Linux启动过程解析

Linux启动过程

stufflinuxBIOSUEFIPOSTBootloaderGRUBsystemdbashrcGUISSH

Tailscale子网路由使用实例