深入解析 systemd:功能、优化与故障排除
1. 启动序列概述
在探讨 systemd 如何挂载用户根文件系统之前,先来回顾一下目前已知的启动序列:
1. 引导加载程序将内核和 initramfs 加载到内存中。
2. 内核被加载到特定位置(与架构相关),而 initramfs 则被加载到任意可用位置。
3. 内核借助 vmlinuz 文件的头部信息进行自我解压。
4. 内核在主内存中解压 initramfs(init/initramfs.c),并将其挂载为主内存中的临时根文件系统(/)。
5. 内核从临时根文件系统启动 systemd 作为第一个进程,其 PID 为 1(init/main.c)。
6. systemd 会找到用户的根文件系统并切换到该文件系统。
可以用 mermaid 流程图表示如下:
graph LR
A[引导加载程序] --> B[加载内核和 initramfs 到内存]
B --> C[内核加载到特定位置]
B --> D[initramfs 加载到任意位置]
C --> E[内核自我解压]
D --> F[内核解压 initramfs]
F --> G[挂载 initramfs 为临时根文件系统]
G --> H[内核启动 systemd(PID = 1)]
H --> I[systemd 查找并切换到用户根文件系统]
2. systemd 简介
syst
超级会员免费看
订阅专栏 解锁全文
45

被折叠的 条评论
为什么被折叠?



