Linux 系统启动过程

从上电到登录提示符之间发生了什么:BIOS/UEFI、GRUB、内核、initramfs、systemd。

Intermediate
Key Points上电 → UEFI → GRUB → 内核 + initramfs → 挂真实根文件系统 → systemd 拉起服务 → 登录。

六个阶段

Text
1. 固件(BIOS / UEFI)     自检,找可启动设备
2. 引导程序(GRUB2)       选内核,加载内核与 initramfs
3. 内核初始化             驱动、挂载 initramfs 为临时根
4. initramfs              加载磁盘/RAID 驱动,挂载真实根
5. systemd(PID 1)       按 target 拉起服务
6. 登录(getty / sshd)    出现登录界面

各阶段能查什么

StageCheckTypical failure
FirmwareBoot menu, efibootmgrWrong boot order
GRUBgrub2-mkconfig, /boot/grub2/grub.cfgKernel missing after upgrade
Kerneldmesg, journalctl -kMissing driver, panic
initramfslsinitrd / lsinitramfsRoot not found
systemdsystemctl list-units --failedService failed to start

启动耗时分析

Bash
systemd-analyze
systemd-analyze blame | head -10
systemd-analyze critical-chain
journalctl -b -p err          # 本次启动的错误日志

常用的两种修复

Bash
# 1. GRUB 菜单不出现:开机按住 Shift(BIOS)或 Esc(UEFI)
# 2. 进入 rescue 模式改配置:启动时在 GRUB 里给内核加参数
#    systemd.unit=rescue.target
#    rd.break                 (RHEL 系改 root 密码)
When a server fails to come back, read journalctl -b -1 -p err (errors from the previous boot) before guessing.

Friends & Partners