Linux 开机流程

🧠 Linux 开机流程总体分为 4 个阶段:


第一阶段:BIOS/UEFI 初始化

  • 🔌 触发点:按下电源键

  • 📦 工作内容

    • 加载 BIOS/UEFI,执行硬件自检(POST)
    • 读取启动顺序,找到第一个可启动设备
  • 💥 常见问题点

    • 找不到启动设备(BIOS 设置错)
    • 硬件检测失败(内存条没插好等)

第二阶段:Boot Loader(如 grub2)加载

  • 🔁 从启动设备读取 MBR 或 EFI 区块

  • 🚀 Boot Loader 功能

    • 提供启动菜单
    • 选择并加载对应的 Linux 内核(vmlinuz)
  • 💥 常见问题点

    • grub 配置错误
    • MBR 损坏或被覆盖(安装 Windows 后)

第三阶段:内核加载(Kernel)

  • 🧬 功能

    • 内核解压缩到内存中,开始运行
    • 识别硬件信息,加载相应驱动
  • 🔧 输出:进入一个「最精简的操作系统」

  • 💥 常见问题点

    • 找不到根文件系统(rootfs)
    • initramfs 错误导致内核 panic

第四阶段:用户空间初始化(systemd)

  • 🧩 由内核启动 systemd(以前是 init)
  • 🧭 执行流程(target 是 systemd 的阶段定义):
    1. sysinit.target:基础初始化(挂载文件系统、设置时钟)
    2. basic.target:准备系统基础功能(网络等)
    3. multi-user.target:启动服务器服务,如 sshd、network 等
    4. /etc/rc.local:用户自定义启动脚本
    5. getty.target:启动终端登录服务
    6. graphical.target:图形界面(若安装桌面环境)
  • 💥 常见问题点

    • systemd 配置错、服务启动失败
    • 服务依赖配置错(启动顺序错)

总结成一句话:

开机流程是从 BIOS → Boot Loader → 内核加载 → systemd 初始化,一环扣一环,systemd 在后期占比最大,是系统能否正常启动的关键。


Linux 开机流程
https://luffy997.github.io/2025/04/14/Linux-开机流程/
作者
Luffy997
发布于
2025年4月14日
许可协议