直接回答:上电后 CPU 从固定地址执行固件代码,启动链条大致是:固件自检 → 引导加载器 → 加载内核与 initramfs → 内核初始化 → 启动 PID 1 → 拉起用户态服务。

展开解析:传统 BIOS 先做 POST 硬件自检,再从启动盘 MBR 读入 512 字节的引导代码;现代 UEFI 直接读取 ESP 分区(FAT 格式)里的 .efi 程序,突破 MBR 大小限制,并支持 Secure Boot 逐级校验签名。引导加载器(通常是 GRUB2)读取 /boot 下的配置,把内核镜像 vmlinuz 和 initramfs 载入内存,解析内核命令行参数后跳转执行。内核解压后初始化内存管理、调度器和驱动,先挂载 initramfs 这个临时根文件系统,用其中的驱动挂载真正的根分区,再 pivot_root 切换过去。内核入口 start_kernel 完成各子系统初始化后创建 kernel_init 线程,它执行 /sbin/init 成为第一个用户态进程(PID 1,现代发行版是 systemd),它按 unit 之间的依赖关系并行拉起各服务,最终达成 multi-user 或 graphical target,出现登录界面。

实践要点:排查启动慢用 systemd-analyze blame 看各服务耗时,内核日志用 dmesgjournalctl -k;内核启动参数经 GRUB 传入,可在 /proc/cmdline 看到。

追问方向:initramfs 为什么不能省略?Secure Boot 的信任链是怎样的?PID 1 崩溃会发生什么(kernel panic)?