当前位置: 首页 > news >正文

红帽企业 Linux 9 启动过程详解:从按下电源到登录提示符

前言:

本文将用通俗易懂的方式解析 RHEL 9 的完整启动流程,帮你彻底理解每个环节的作用和配置方法。


一、启动过程核心阶段概览

红帽企业 Linux 9 的启动过程可以概括为以下五个关键阶段:

  1. 硬件初始化 → 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.cfg

    • UEFI 系统:/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 接管与根切换

关键步骤

  1. 内核执行 /sbin/init → 指向 systemd (PID 1)

  2. initramfs 中的 systemd 执行 initrd.target

  3. 挂载真正的根文件系统到 /sysroot

  4. 根切换:从 initramfs 切换到硬盘上的根文件系统

  5. 重新执行 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

三、启动时特殊操作

临时选择启动目标

  1. 启动时在 GRUB 菜单按 e 编辑

  2. 在 linux 行末尾添加:systemd.unit=rescue.target

  3. 按 Ctrl+x 启动

关机与重启命令

# 关机
systemctl poweroff
# 或简写
poweroff# 重启
systemctl reboot
# 或简写
reboot# 系统挂起(不断电)
systemctl halt

四、启动过程框图

text

┌─────────────────┐    ┌─────────────────┐    ┌─────────────────┐
│   硬件初始化      │    │   启动加载器     │    │   内核加载       │
│                 │    │                 │    │                 │
│ • BIOS/UEFI     │───▶│ • GRUB2         │───▶│ • 内核          │
│ • POST自检      │    │ • 菜单选择       │    │ • initramfs    │
│ • 硬件初始化     │    │ • 加载内核       │    │ • 驱动加载      │
└─────────────────┘    └─────────────────┘    └─────────────────┘│▼
┌─────────────────┐    ┌─────────────────┐    ┌─────────────────┐
│   systemd接管    │    │   目标启动       │    │   系统就绪       │
│                 │    │                 │    │                 │
│ • PID 1进程     │───▶│ • 默认目标       │───▶│ • 登录提示符     │
│ • 根文件系统切换 │    │ • 服务启动       │    │ • 用户环境       │
│ • 服务管理       │    │ • 依赖解析       │    │ • 应用程序       │
└─────────────────┘    └─────────────────┘    └─────────────────┘

五、故障排查要点

  1. GRUB 问题:检查 /boot/grub2/grub.cfg 配置

  2. 内核参数:通过 GRUB 编辑临时调试

  3. initramfs 问题:使用 dracut 重新生成

  4. 启动目标问题:使用救援模式或紧急模式修复

理解这个完整的启动链条,对于系统运维和故障排查至关重要。每个环节都有相应的配置文件和调试方法,掌握它们就能从容应对各种启动问题。

http://www.dtcms.com/a/604958.html

相关文章:

  • 合肥建设厅网站建设一个一般网站需要多少钱
  • 麻省理工学院未来研发更高温超导体打开了新路径
  • Android studio修改app 桌面logo和名称
  • 【MCU控制 初级手札】2.1 电学基础知识 【电学基础】
  • C#1113变量类型
  • RabbitMq消费消息遇到的坑
  • SAP FICO应付账款账龄分析表
  • Pinia Store 生命周期与状态持久性详解
  • 大数据时代时序数据库选型指南:为何Apache IoTDB是最优解
  • 做网站的一个专题在线上传图片生成链接
  • 图论专题(三):“可达性”的探索——DFS/BFS 勇闯「钥匙和房间」
  • 图论专题(一):Hello, Graph! 掌握“建图”与“遍历”的灵魂
  • 做彩票网站能挣到钱吗中国最好的购物平台
  • 南京做网站群的公司岳西县住房和城乡建设局网站
  • 前端高频面试题之Vue(高级篇)
  • 【附源码】告别静态密码!openHiTLS 开源一次性密码协议(HOTP/TOTP),推动动态认证普及
  • UniApp 小程序中使用地图组件
  • 25华北理工大学考情数据分析
  • Unity Shader Graph 3D 实例 - 基础的模型贴图渲染
  • 17.TCP编程
  • Java高级特性:单元测试、反射、注解、动态代理
  • python机器学习工程化demo(包含训练模型,预测数据,模型列表,模型详情,删除模型)支持线性回归、逻辑回归、决策树、SVC、随机森林等模型
  • 逻辑回归在个性化推荐中的原理与应用
  • 织梦网站后台怎么登陆郑州知名做网站公司有哪些
  • 免费做网站的软件跨境电商自建站平台
  • 本机oracle连接延时41970 毫秒
  • 不到一块钱的带USB 2.4G收发 SOC芯片,集成2.4G射频 32位MCU
  • Ubuntu 24.04 安装 PostgreSQL
  • 数据科学每日总结--Day18--数据库
  • 【ZeroRange WebRTC】WebRTC 基于 STUN 的 srflx 直连原理与实现