很多刚接触 Linux 的用户只会用命令,却对Linux 启动流程一头雾水:按下电源键之后,机器到底经历了什么,才把登录界面送到你面前?理解这套开机启动过程,不仅能帮你排查“开机卡住”“进不了系统”等问题,更是深入掌握 Linux 系统底层基础的第一步。本文从固件层一路讲到用户登录,把每一个关键环节讲清楚。
一、加电自检与固件层:BIOS 与 UEFI 的区别
Linux 开机启动过程的第一步,并不是内核,而是主板上那颗固件。老机器用的是 BIOS(Basic Input/Output System),它做的第一件事是 POST(加电自检),检查内存、显卡、硬盘是否就绪;新机器普遍使用 UEFI(统一可扩展固件接口),除了自检,还支持更大的硬盘(GPT 分区表)、更快的启动速度以及安全启动(Secure Boot)。
对普通用户来说,BIOS 和 UEFI 最直观的区别在于“启动模式”:BIOS 走传统的 MBR 引导,UEFI 则读取 EFI 系统分区里的 .efi 引导文件。装系统时如果引导模式和分区表不匹配(比如 UEFI 配了 MBR),就容易出现“装完无法启动”的情况。无论哪种固件,它们的使命只有一个——找到可启动设备,把控制权交给下一棒。
二、GRUB 引导加载程序如何接管启动
固件找到硬盘后,会把控制权交给引导加载程序,在绝大多数 Linux 发行版里这就是 GRUB 引导加载程序。GRUB 的工作是列出你机器上可用的操作系统(包括 Windows 双系统),让你选择或默认启动其中一个,然后加载对应的 Linux 内核到内存。
GRUB 本身分两个阶段:第一阶段极小,只负责定位第二阶段;第二阶段才真正读取配置文件 /boot/grub/grub.cfg,呈现启动菜单、加载内核镜像 vmlinuz 以及初始内存盘 initramfs。如果你遇到过“GRUB rescue”黑屏,多半是引导记录损坏或分区变动导致 GRUB 找不到配置文件,这时往往需要借助 Live CD 重新安装引导。
三、Linux 内核加载与 initramfs 的作用
内核接管后,它会解压自己、初始化 CPU 与内存管理、探测硬件设备。但问题来了:内核要挂载真正的根文件系统,可读取磁盘的驱动本身可能就放在磁盘上——这是个“鸡生蛋”的死结。解决办法就是 initramfs(初始内存文件系统):它是一段临时根环境,事先打包了必要的驱动模块,让内核能够先识别硬盘、解锁加密分区,再切换到真实的根分区。
切换完成后,内核会启动用户空间的第一个进程(PID 1),从此系统从“内核态”正式进入“用户态”。在了解这层机制后,你会发现后面所有的服务进程都依附于这个 PID 1,这也正是下一段要讲的 systemd 启动原理的起点。
四、systemd 启动原理:从 init 到用户登录
现代发行版几乎都用 systemd 作为 PID 1。理解 systemd 启动原理,关键在于“单元(unit)”和“依赖树”两个概念。systemd 不再像老式 SysVinit 那样顺序执行脚本,而是根据 .target 目标并行拉起服务,比如 multi-user.target 对应之前的运行级别 3,graphical.target 对应图形界面。
它会按依赖关系图并发启动 ssh、网络、日志等服务,因此开机更快。你可以用 systemctl list-units --type=service 查看正在运行的服务,用 systemctl status 服务名 定位某个服务为什么没起来。当你需要管理后台进程时,这份能力就和我们在Linux进程管理完全指南:从ps/top到systemd服务管控实战里讲到的进程管控一脉相承——systemd 本质也是在对进程做统一编排。
五、常见启动故障排查与实战建议
掌握了完整流程,排查启动问题就有了章法。开机卡在固件:检查启动顺序与硬盘连接;卡在 GRUB:用 Live 环境重装引导;卡在内核加载:留意 initramfs 是否包含磁盘驱动;卡在登录前:多半是某个 systemd 服务失败,可进入救援模式用 systemctl isolate 回退目标。
日常维护方面,权限与分区同样重要。如果你在重装引导或调整挂载点时涉及文件权限,建议先复习Linux文件权限完全指南:从chmod到ACL访问控制,避免因权限错配导致服务无法读取配置;而新增磁盘或调整根分区时,Linux 磁盘分区与挂载实战:从 fdisk 到 /etc/fstab这篇里关于 /etc/fstab 的写法能帮你把挂载点写稳,避免开机因挂载失败而进入紧急模式。
总结一下:Linux 启动流程是一条清晰的接力链——UEFI/BIOS 做自检,GRUB 引导加载程序交棒内核,initramfs 解开封盘难题,最后由 systemd 把用户空间服务井井有条地拉起来。吃透这条链路,你再遇到开机异常,就能顺着每一棒精准定位,而不是只会重启了事。










暂无评论内容