红帽企业 Linux 9 启动过程详解:从按下电源到登录提示符
前言:
本文将用通俗易懂的方式解析 RHEL 9 的完整启动流程,帮你彻底理解每个环节的作用和配置方法。
一、启动过程核心阶段概览
红帽企业 Linux 9 的启动过程可以概括为以下五个关键阶段:
硬件初始化 → 2. 启动加载器 → 3. 内核加载 → 4. initramfs 阶段 → 5. systemd 接管
下面我们逐一拆解每个阶段。
二、详细启动流程解析
阶段 1:硬件初始化 (BIOS/UEFI)
核心概念:系统固件
作用:电脑通电后运行的第一个程序,负责硬件自检和初始化
类型:
BIOS:传统模式,使用 MBR 分区表
UEFI:现代模式,使用 GPT 分区表,支持安全启动
关键任务:
执行 POST(开机自检)
初始化硬件设备
搜索可启动设备
配置方法:启动时按 F2 或指定键进入配置界面
阶段 2:启动加载器 (GRUB2)
核心概念:GRUB2 (GRand Unified Bootloader version 2)
作用:操作系统"引路人",负责加载内核和 initramfs
配置文件路径:
BIOS 系统:
/boot/grub2/grub.cfgUEFI 系统:
/boot/efi/EFI/redhat/grub.cfg
配置生成:
# 编辑配置后重新生成 grub2-mkconfig -o /boot/grub2/grub.cfg
⚠️ 重要提醒:UEFI 系统不要直接使用 grub2-install,会破坏安全启动签名!
阶段 3:内核与 initramfs 加载
核心概念:
内核 (Kernel):操作系统核心,直接管理硬件资源
initramfs:临时内存文件系统,包含启动所需的所有驱动和工具
initramfs 关键作用:
提供根文件系统所需的硬件驱动
包含 systemd 单元和初始化脚本
挂载真正的根文件系统
管理命令:
# 查看 initramfs 内容
lsinitrd /boot/initramfs-$(uname -r).img# 重新生成 initramfs
dracut -f阶段 4:systemd 接管与根切换
关键步骤:
内核执行
/sbin/init→ 指向 systemd (PID 1)initramfs 中的 systemd 执行
initrd.target挂载真正的根文件系统到
/sysroot根切换:从 initramfs 切换到硬盘上的根文件系统
重新执行 systemd(硬盘上的版本)
配置点:
根文件系统挂载:
/etc/fstab内核参数:通过 GRUB2 配置传递
阶段 5:目标启动与系统就绪
核心概念:systemd 目标 (target)
定义:一组系统服务的集合,定义系统应达到的状态
常用目标:
| 目标 | 用途 | 适用场景 |
|---|---|---|
graphical.target | 图形界面模式 | 桌面环境 |
multi-user.target | 多用户文本模式 | 服务器 |
rescue.target | 救援模式 | 系统修复 |
emergency.target | 紧急模式 | 严重故障修复 |
目标管理命令:
# 查看当前目标
systemctl get-default# 设置默认目标
systemctl set-default multi-user.target# 运行时切换目标
systemctl isolate graphical.target# 查看目标依赖关系
systemctl list-dependencies graphical.target三、启动时特殊操作
临时选择启动目标
启动时在 GRUB 菜单按
e编辑在
linux行末尾添加:systemd.unit=rescue.target按
Ctrl+x启动
关机与重启命令
# 关机
systemctl poweroff
# 或简写
poweroff# 重启
systemctl reboot
# 或简写
reboot# 系统挂起(不断电)
systemctl halt四、启动过程框图
text
┌─────────────────┐ ┌─────────────────┐ ┌─────────────────┐ │ 硬件初始化 │ │ 启动加载器 │ │ 内核加载 │ │ │ │ │ │ │ │ • BIOS/UEFI │───▶│ • GRUB2 │───▶│ • 内核 │ │ • POST自检 │ │ • 菜单选择 │ │ • initramfs │ │ • 硬件初始化 │ │ • 加载内核 │ │ • 驱动加载 │ └─────────────────┘ └─────────────────┘ └─────────────────┘│▼ ┌─────────────────┐ ┌─────────────────┐ ┌─────────────────┐ │ systemd接管 │ │ 目标启动 │ │ 系统就绪 │ │ │ │ │ │ │ │ • PID 1进程 │───▶│ • 默认目标 │───▶│ • 登录提示符 │ │ • 根文件系统切换 │ │ • 服务启动 │ │ • 用户环境 │ │ • 服务管理 │ │ • 依赖解析 │ │ • 应用程序 │ └─────────────────┘ └─────────────────┘ └─────────────────┘
五、故障排查要点
GRUB 问题:检查
/boot/grub2/grub.cfg配置内核参数:通过 GRUB 编辑临时调试
initramfs 问题:使用
dracut重新生成启动目标问题:使用救援模式或紧急模式修复
理解这个完整的启动链条,对于系统运维和故障排查至关重要。每个环节都有相应的配置文件和调试方法,掌握它们就能从容应对各种启动问题。
