Linux系统的启动过程是一个多阶段的复杂流程,涉及硬件初始化、引导加载、内核启动和用户空间初始化等关键步骤。以下是详细的阶段划分及说明:
GRUB Legacy等引导程序。GRUB2或systemd-boot等UEFI应用。/boot/grub2/grub.cfg)。initramfs(临时根文件系统)加载必要的驱动(如磁盘、LVM、加密模块),最终挂载真正的根文件系统(如/dev/sda1)。/sbin/init(传统SysVinit)或systemd(现代发行版默认)。multi-user.target或graphical.target)。systemd管理。/etc/fstab)。/etc/inittab定义的运行级别(如runlevel 3或5)。/etc/rc.d/中的启动脚本(符号链接到S*和K*)。getty或agetty,显示登录提示(tty1-tty6)。| 阶段 | 关键文件/工具 | 说明 |
|---|---|---|
| BIOS/UEFI | /boot/efi/ (ESP分区) |
UEFI固件读取的引导文件 |
| GRUB2 | /boot/grub2/grub.cfg |
引导菜单配置 |
| Kernel | /boot/vmlinuz-*, initramfs-* |
内核与临时根文件系统 |
| Systemd | /etc/systemd/system/default.target |
默认启动目标 |
| SysVinit | /etc/inittab, /etc/rc.d/ |
运行级别和启动脚本 |
grub-install。dmesg或journalctl -k。init=/bin/bash进入救援模式。通过理解这些阶段,可以高效诊断启动问题(如服务依赖失败、文件系统挂载错误)或优化启动速度(如禁用冗余服务)。不同发行版(RHEL、Ubuntu、Arch)细节可能略有差异,但核心流程一致。