插件窝 干货文章 Linux系统启动过程的5个阶段是什么

Linux系统启动过程的5个阶段是什么

启动 内核 阶段 系统 970    来源:    2025-05-02

Linux系统的启动过程可以分为以下5个关键阶段,每个阶段完成特定的初始化任务:


1. BIOS/UEFI阶段

  • 硬件初始化:加电自检(POST),检测硬件设备(CPU/内存/磁盘等)。
  • 引导设备选择:根据配置顺序(如硬盘、USB、光盘)查找可启动设备。
  • 加载引导程序:读取磁盘的MBR(主引导记录)UEFI引导分区,将控制权交给下一阶段(如GRUB)。

2. Bootloader阶段(如GRUB)

  • 加载引导菜单:显示可选内核列表(多系统时)。
  • 加载内核和initramfs
    • Linux内核(如vmlinuz-xxx)加载到内存。
    • 加载initramfs(临时根文件系统),包含启动必需的驱动和工具(如磁盘控制器驱动)。

3. 内核初始化阶段

  • 解压并运行内核:初始化CPU、内存、设备驱动等。
  • 挂载根文件系统:根据内核参数(如root=/dev/sda1)挂载真正的根目录(/),释放initramfs。
  • 启动第一个用户进程:执行/sbin/init(现代系统通常为systemd)。

4. Systemd/sysvinit阶段

  • 系统初始化
    • Systemd(主流发行版):并行启动服务单元(unit),处理依赖关系。
    • SysVinit(旧系统):按/etc/inittab顺序串行启动服务脚本(/etc/rc.d/rc*.d/)。
  • 加载运行级别/目标
    • Systemd:默认进入multi-user.targetgraphical.target
    • SysVinit:运行级别(如runlevel 5为图形界面)。

5. 登录界面启动

  • 启动显示管理器(如GDM、LightDM):提供图形登录界面。
  • 或启动终端登录:生成getty进程,提示命令行登录。
  • 用户登录:验证成功后启动用户会话(Shell或桌面环境)。

补充说明

  • 关键文件
    • /boot/grub2/grub.cfg(GRUB配置文件)
    • /etc/default/grub(GRUB参数)
    • /etc/fstab(文件系统挂载表)
    • /etc/systemd/system/default.target(Systemd默认目标)
  • 调试工具
    • dmesg查看内核日志。
    • systemd-analyze blame分析启动耗时服务。

通过这5个阶段,Linux系统从硬件加电到用户可用的完整环境就准备就绪了。不同发行版可能在细节上有差异(如使用Upstart或OpenRC),但整体流程一致。