Linux Systemd 完整开机启动流程详解报告
Linux Systemd 完整开机启动流程详解报告
一、前置说明
当前截图为基于systemd的现代 Linux(openEuler/Kylin/CentOS/RHEL/Debian/Ubuntu 通用)开机日志片段,系统采用systemd 初始化体系,替代传统 SysVinit。下面完整拆解从开机上电到桌面 / 命令行登录的全阶段加载内容,结合你截图里出现的服务做对应解释。
二、Linux 开机完整五大阶段
阶段 1:硬件固件自检(BIOS/UEFI)
上电后主板固件初始化 CPU、内存、硬盘、网卡、显卡等硬件;
扫描启动设备(硬盘、U 盘),读取硬盘引导程序 GRUB2;
无操作系统、硬盘损坏、引导分区丢失会卡在这一步。
本阶段无系统日志输出,截图中看不到此环节。
阶段 2:GRUB2 引导程序
加载内核镜像
vmlinuz、临时内存文件系统initramfs;传递内核启动参数(磁盘 UUID、selinux 状态、内核调试参数等);
解压
initramfs到内存,启动临时微型系统,内核接管硬件。
截图最开始的
LVM PV scan就来自 initramfs 阶段。
阶段 3:Initramfs 临时根文件系统(截图开头日志来源)
initramfs是内存里的微型 Linux,作用:识别硬盘、挂载真实系统根分区,你截图第一条日志就属于该阶段:
- 硬件驱动加载:磁盘控制器、LVM/RAID、加密磁盘驱动;
Started LVM2 PV scan on device 8:3:扫描磁盘物理卷,识别 LVM 逻辑卷,找到系统根分区;
- 挂载临时分区:挂载
/boot分区(Mounted /boot); - 完成磁盘识别后,切换根目录到硬盘上真实的
/,执行/sbin/init(即systemd),进入正式系统初始化。
阶段 4:Systemd 核心初始化(截图绝大部分日志属于本阶段)
systemd 采用目标单元(target)并行启动,按依赖分层加载硬件、文件系统、网络、服务、登录环境,按执行顺序拆解:
4.1 本地文件系统目标 local-fs.target
对应日志:Reached target Local File Systems
- 挂载系统所有磁盘分区:/、/home、/var、/tmp 等;
- 校验磁盘(fsck),修复异常文件系统;
- 完成后标记本地存储就绪,才能启动依赖磁盘读写的服务。
4.2 临时目录与运行时环境初始化
Import network configuration from initramfs:把临时系统里的网卡配置迁移到正式系统;Create Volatile Files and Directories:创建运行时临时目录/run、/tmp,清空开机临时缓存,生成进程 PID 文件、运行时套接字。
4.3 底层硬件与基础审计服务
Security Auditing Service:启动内核审计auditd,记录系统操作、权限变更、安全日志,等保 / 服务器安全必备;Reached target Sound Card:加载声卡驱动、音频底层设备,音频硬件就绪;Update UTMP about System Boot/Shutdown:写入开机记录到/var/run/utmp,who/last命令查看登录、开关机日志依赖此服务。
4.4 系统基础环境目标 sysinit.target
对应日志:Reached target System Initialization代表底层硬件、磁盘、安全子系统全部就绪,开始启动。
4.5 套接字、定时器、API 监听单元(并行启动)
systemd 优先启动套接字(socket)实现服务延迟唤醒,减少开机耗时:
D-Bus System Message Bus Socket:系统总线,所有进程通信核心(Docker、NetworkManager、桌面程序都靠 DBus 交互);Docker Socket for the API:Docker 守护进程套接字,提供容器 API 接口,外部工具、k8s 可通过该套接字管理容器;Daily Cleanup of Temporary Directories:定时器服务,自动清理 7 天以上临时文件;Reached target Timers / Sockets:定时任务、程序通信套接字全部就绪。
4.6 基础系统目标 basic.target
日志:Reached target Basic System代表:底层通信、存储、定时器、容器接口全部就绪,进入用户层服务启动阶段。
4.7 硬件优化、虚拟化配套服务
irqbalance daemon:中断均衡服务,多核服务器自动分配硬件中断到不同 CPU 核心,提升磁盘 / 网卡性能;VMware 虚拟化配套服务(截图独有)
VGAuth Service:虚拟机身份认证,实现宿主机与虚拟机文件拖拽、复制粘贴;Service for virtual machines hosted on VMware:VMware Tools 核心服务,同步虚拟机时间、分辨率、磁盘扩容;
4.8 网络、登录、权限管理服务
Permit User Sessions:开启用户会话权限,允许账号登录系统;Authorization Manager:权限管理,处理 sudo、本地用户权限校验;Network Manager:网络管理服务,管理网卡 IP、DHCP、网桥、VPN;Login Service:终端登录管理,提供 tty 字符登录界面;Dump dmesg to /var/log/dmesg:把内核硬件启动日志持久化到磁盘,后续排查硬件报错可查看该文件。
4.9 开机画面收尾、定时调度
Wait for Plymouth Boot Screen / Terminate Plymouth Boot Screen:关闭开机图形加载动画,切换到字符终端 / 图形桌面;Command Scheduler:系统任务调度器(systemd-cron 兼容层),执行定时脚本。
阶段 5:启动最终目标 + 用户登录界面
systemd 根据系统运行级别启动最终 target:
- 服务器无图形:
multi-user.target,启动字符终端 tty,出现账号密码登录提示符; - 带桌面工作站:
graphical.target,启动 GNOME/KDE 显示管理器,弹出图形登录界面; - 登录成功后加载用户环境变量、shell 配置、自启动脚本,开机流程全部完成。
三、截图内关键服务分类汇总(便于报告摘抄)
表格
| 服务 / 日志条目 | 加载作用 | 业务意义 |
|---|---|---|
| LVM2 PV scan | 扫描磁盘逻辑卷 | 识别硬盘分区,保障系统正常挂载根目录 |
| Mounted /boot | 挂载内核启动分区 | 存放内核、GRUB 引导文件 |
| Security Auditing Service | 系统安全审计 | 记录操作日志,满足服务器安全合规 |
| D-Bus Message Bus | 进程通信总线 | 系统所有服务交互基础 |
| Docker Socket API | 容器通信接口 | 提供容器创建、管理能力 |
| irqbalance | CPU 中断均衡 | 多核服务器硬件性能优化 |
| VMware Tools 相关服务 | 虚拟化增强工具 | 虚拟机与宿主机互通、时间同步 |
| NetworkManager | 网络管理 | 网卡、IP、网络连接管控 |
| Plymouth 开机画面 | 启动图形动画 | 屏蔽底层启动日志,提升人机交互 |
四、核心总结(结尾结论)
- Linux 开机遵循固件→引导→临时内存系统→systemd 分层并行初始化→用户登录流程;
- systemd 采用并行启动机制,按「磁盘底层→硬件安全→通信套接字→业务服务→登录环境」分层加载;
- 截图展示的是磁盘就绪后、登录前的后台服务加载阶段,涵盖存储、安全、容器、网络、虚拟化配套全组件;
- 每一项
[ OK ]代表对应硬件 / 服务初始化无报错;若出现[ FAILED ],则对应功能失效,可通过journalctl查看详细故障日志。
补充:可附加排障拓展
若开机出现启动失败,可通过以下命令回溯完整开机加载日志,定位异常单元:
# 查看本次完整开机日志 journalctl -b # 查看指定服务启动日志(示例docker) journalctl -u docker # 查看磁盘挂载启动日志 journalctl -t systemd-fsck