当前位置:首页>Linux>按下电源键后,Linux到底发生了什么?一张图彻底搞懂UEFI + systemd启动全过程

按下电源键后,Linux到底发生了什么?一张图彻底搞懂UEFI + systemd启动全过程

  • 2026-09-03 19:19:26
按下电源键后,Linux到底发生了什么?一张图彻底搞懂UEFI + systemd启动全过程

正文开始:

大家好,我是你的Linux老司机张王岩。

前几天有读者问我:“现代Linux启动为什么和以前不一样了?UEFI简化了早期阶段,systemd又取代了传统init,这到底是怎么回事?”

我当时用文字拆解了一遍,但总觉得不够直观。
今天,我直接给你一张专业级流程图(来自行业标准参考资料),配合最通俗易懂的逐框讲解,保证你看完就能完全明白——从按下电源键,到系统完全运行,Linux到底经历了哪12个关键步骤!

(插入图片位置 ↓)

配图

这张图叫《Exhibit A: Linux & UNIX boot process》(例A:Linux & UNIX引导过程),它把整个启动流程画得清清楚楚。我们就按箭头顺序,一步一步拆给你看!

1. Power On(按下电源键)

一切从这里开始。电脑通电,主板开始工作。

2. Load BIOS/UEFI from NVRAM(加载UEFI固件)

这就是你经常听到的现代UEFI!
老式BIOS又慢又复杂,现在UEFI直接从主板NVRAM里读取配置,概念上简化了早期启动阶段,这正是原文里说的“至少从概念的角度来看是这样”。

3. Probe for hardware(硬件探测)

主板开始检查CPU、内存、硬盘、显卡等设备有没有问题。

4. Select boot device(选择启动设备)

决定从哪个盘启动——机械硬盘、SSD、U盘,还是网络启动。

5. Identify EFI system partition(识别EFI系统分区)

UEFI特有的步骤,找到硬盘上那个专门存放启动文件的小分区(/boot/efi)。

6. Load boot loader (e.g., GRUB)(加载GRUB等引导加载器)

GRUB跳出来,就是那个让你选择“Ubuntu / Windows / 安全模式”的菜单界面。

7. Determine which kernel to boot(决定加载哪个内核)

GRUB告诉你:今天用哪个Linux内核版本。

8. Load kernel(加载内核)

真正的Linux核心被读进内存,开始苏醒。

9. Instantiate kernel data structures(内核初始化数据结构)

内核开始搭建各种内部表格和驱动框架。

10. Start init/systemd as PID 1(启动systemd作为1号进程)

重头戏来了!
这里就是后期阶段的最大变化!
传统UNIX用老的init,现在99%的发行版都换成了systemd(进程号永远是1)。它带来的革命性改进正是原文所说的:

  • 依赖项管理
  • 支持并发启动(并行启动多个服务)
  • 全面的日志记录(journalctl一键查看)
  • 事务性处理(启动失败自动回滚)

11. Execute startup scripts(执行启动脚本)

systemd按照依赖关系,井井有条地启动网络、图形界面、数据库、Docker等各种服务。

12. Running system(系统运行中)

登录界面出现,你可以愉快地敲代码了!

管理员到底能控制什么?

图下方那段话讲得特别清楚:
管理员对大多数步骤其实没有直接交互控制。
你只能通过修改配置文件(GRUB参数、systemd unit文件)或者给内核传递启动参数来间接影响启动过程。这也是为什么我们运维人员那么爱折腾 /etc/default/grub 和 systemctl 的原因。

实用小彩蛋:自己动手看启动过程

想亲眼看看你电脑的启动流程吗?开机后敲这三条命令就行:

systemd-analyze          # 查看总启动时间
systemd-analyze blame    # 哪个服务最慢
systemd-analyze plot > boot.svg  # 生成超级漂亮的启动时间图!

写在最后

从老BIOS + SysV init,到现在的UEFI + systemd,Linux启动过程已经变得更快、更稳定、更可控。这张图几乎浓缩了所有核心变化。

看完之后,你是不是也觉得“原来这么简单”?

欢迎在评论区告诉我:

  • 你是用Ubuntu、CentOS还是Arch?
  • 你最想深入了解启动过程中的哪一步?

点赞 + 在看 + 转发给需要的小伙伴,我们下期继续拆Linux底层黑魔法!

作者:张王岩
地点:上海
专注分享好懂的Linux、运维、开源知识
欢迎关注,回复“启动”获取更多启动相关命令合集

最新文章

随机文章