Linux Systemd 完整开机启动流程详解报告

Linux Systemd 完整开机启动流程详解报告

一、前置说明

当前截图为基于systemd的现代 Linux(openEuler/Kylin/CentOS/RHEL/Debian/Ubuntu 通用)开机日志片段,系统采用systemd 初始化体系,替代传统 SysVinit。下面完整拆解从开机上电到桌面 / 命令行登录的全阶段加载内容,结合你截图里出现的服务做对应解释。

二、Linux 开机完整五大阶段

阶段 1:硬件固件自检(BIOS/UEFI)

  1. 上电后主板固件初始化 CPU、内存、硬盘、网卡、显卡等硬件;

  2. 扫描启动设备(硬盘、U 盘),读取硬盘引导程序 GRUB2;

  3. 无操作系统、硬盘损坏、引导分区丢失会卡在这一步。

    本阶段无系统日志输出,截图中看不到此环节。

阶段 2:GRUB2 引导程序

  1. 加载内核镜像vmlinuz、临时内存文件系统initramfs

  2. 传递内核启动参数(磁盘 UUID、selinux 状态、内核调试参数等);

  3. 解压

    initramfs

    到内存,启动临时微型系统,内核接管硬件。

    截图最开始的

    LVM PV scan

    就来自 initramfs 阶段。

阶段 3:Initramfs 临时根文件系统(截图开头日志来源)

initramfs是内存里的微型 Linux,作用:识别硬盘、挂载真实系统根分区,你截图第一条日志就属于该阶段:

  1. 硬件驱动加载:磁盘控制器、LVM/RAID、加密磁盘驱动;
    • Started LVM2 PV scan on device 8:3:扫描磁盘物理卷,识别 LVM 逻辑卷,找到系统根分区;
  2. 挂载临时分区:挂载/boot分区(Mounted /boot);
  3. 完成磁盘识别后,切换根目录到硬盘上真实的/,执行/sbin/init(即systemd),进入正式系统初始化。

阶段 4:Systemd 核心初始化(截图绝大部分日志属于本阶段)

systemd 采用目标单元(target)并行启动,按依赖分层加载硬件、文件系统、网络、服务、登录环境,按执行顺序拆解:

4.1 本地文件系统目标 local-fs.target

对应日志:Reached target Local File Systems

  • 挂载系统所有磁盘分区:/、/home、/var、/tmp 等;
  • 校验磁盘(fsck),修复异常文件系统;
  • 完成后标记本地存储就绪,才能启动依赖磁盘读写的服务。
4.2 临时目录与运行时环境初始化
  1. Import network configuration from initramfs:把临时系统里的网卡配置迁移到正式系统;
  2. Create Volatile Files and Directories:创建运行时临时目录/run/tmp,清空开机临时缓存,生成进程 PID 文件、运行时套接字。
4.3 底层硬件与基础审计服务
  1. Security Auditing Service:启动内核审计auditd,记录系统操作、权限变更、安全日志,等保 / 服务器安全必备;
  2. Reached target Sound Card:加载声卡驱动、音频底层设备,音频硬件就绪;
  3. Update UTMP about System Boot/Shutdown:写入开机记录到/var/run/utmpwho/last命令查看登录、开关机日志依赖此服务。
4.4 系统基础环境目标 sysinit.target

对应日志:Reached target System Initialization代表底层硬件、磁盘、安全子系统全部就绪,开始启动。

4.5 套接字、定时器、API 监听单元(并行启动)

systemd 优先启动套接字(socket)实现服务延迟唤醒,减少开机耗时:

  1. D-Bus System Message Bus Socket:系统总线,所有进程通信核心(Docker、NetworkManager、桌面程序都靠 DBus 交互);
  2. Docker Socket for the API:Docker 守护进程套接字,提供容器 API 接口,外部工具、k8s 可通过该套接字管理容器;
  3. Daily Cleanup of Temporary Directories:定时器服务,自动清理 7 天以上临时文件;
  4. Reached target Timers / Sockets:定时任务、程序通信套接字全部就绪。
4.6 基础系统目标 basic.target

日志:Reached target Basic System代表:底层通信、存储、定时器、容器接口全部就绪,进入用户层服务启动阶段。

4.7 硬件优化、虚拟化配套服务
  1. irqbalance daemon:中断均衡服务,多核服务器自动分配硬件中断到不同 CPU 核心,提升磁盘 / 网卡性能;

  2. VMware 虚拟化配套服务

    (截图独有)

    • VGAuth Service:虚拟机身份认证,实现宿主机与虚拟机文件拖拽、复制粘贴;
    • Service for virtual machines hosted on VMware:VMware Tools 核心服务,同步虚拟机时间、分辨率、磁盘扩容;
4.8 网络、登录、权限管理服务
  1. Permit User Sessions:开启用户会话权限,允许账号登录系统;
  2. Authorization Manager:权限管理,处理 sudo、本地用户权限校验;
  3. Network Manager:网络管理服务,管理网卡 IP、DHCP、网桥、VPN;
  4. Login Service:终端登录管理,提供 tty 字符登录界面;
  5. Dump dmesg to /var/log/dmesg:把内核硬件启动日志持久化到磁盘,后续排查硬件报错可查看该文件。
4.9 开机画面收尾、定时调度
  1. Wait for Plymouth Boot Screen / Terminate Plymouth Boot Screen:关闭开机图形加载动画,切换到字符终端 / 图形桌面;
  2. Command Scheduler:系统任务调度器(systemd-cron 兼容层),执行定时脚本。

阶段 5:启动最终目标 + 用户登录界面

systemd 根据系统运行级别启动最终 target:

  1. 服务器无图形:multi-user.target,启动字符终端 tty,出现账号密码登录提示符;
  2. 带桌面工作站:graphical.target,启动 GNOME/KDE 显示管理器,弹出图形登录界面;
  3. 登录成功后加载用户环境变量、shell 配置、自启动脚本,开机流程全部完成。

三、截图内关键服务分类汇总(便于报告摘抄)

表格

服务 / 日志条目加载作用业务意义
LVM2 PV scan扫描磁盘逻辑卷识别硬盘分区,保障系统正常挂载根目录
Mounted /boot挂载内核启动分区存放内核、GRUB 引导文件
Security Auditing Service系统安全审计记录操作日志,满足服务器安全合规
D-Bus Message Bus进程通信总线系统所有服务交互基础
Docker Socket API容器通信接口提供容器创建、管理能力
irqbalanceCPU 中断均衡多核服务器硬件性能优化
VMware Tools 相关服务虚拟化增强工具虚拟机与宿主机互通、时间同步
NetworkManager网络管理网卡、IP、网络连接管控
Plymouth 开机画面启动图形动画屏蔽底层启动日志,提升人机交互

四、核心总结(结尾结论)

  1. Linux 开机遵循固件→引导→临时内存系统→systemd 分层并行初始化→用户登录流程;
  2. systemd 采用并行启动机制,按「磁盘底层→硬件安全→通信套接字→业务服务→登录环境」分层加载;
  3. 截图展示的是磁盘就绪后、登录前的后台服务加载阶段,涵盖存储、安全、容器、网络、虚拟化配套全组件;
  4. 每一项[ OK ]代表对应硬件 / 服务初始化无报错;若出现[ FAILED ],则对应功能失效,可通过journalctl查看详细故障日志。

补充:可附加排障拓展

若开机出现启动失败,可通过以下命令回溯完整开机加载日志,定位异常单元:

# 查看本次完整开机日志 journalctl -b # 查看指定服务启动日志(示例docker) journalctl -u docker # 查看磁盘挂载启动日志 journalctl -t systemd-fsck