ubuntu overlay启动顺序
导读:Ubuntu 中 Overlay 的启动顺序与生效时机 一、先明确 Overlay 的类型 文件系统层的 OverlayFS:用于把多个目录层叠为一个统一视图,常见于“根文件系统写时覆盖”(如 overlayroot)或容器镜像层叠。 容...
Ubuntu 中 Overlay 的启动顺序与生效时机
一、先明确 Overlay 的类型
- 文件系统层的 OverlayFS:用于把多个目录层叠为一个统一视图,常见于“根文件系统写时覆盖”(如 overlayroot)或容器镜像层叠。
- 容器网络的 Overlay 网络:用于跨主机的 Docker 容器互联,属于网络插件/驱动范畴,和文件系统无关。若你关心的是 Docker 的 overlay 网络,请参考 Docker 的 Swarm/Overlay 网络配置流程。
二、系统启动到根文件系统挂载的关键顺序
- BIOS/UEFI → GRUB:加载内核与 initramfs(早期用户空间)。
- 内核解压并启动 initramfs 的初始化脚本:准备必需驱动与早期挂载能力。
- initramfs 阶段挂载“真实根文件系统”:依据内核参数(如 root=)完成根分区挂载,随后执行 pivot_root/switch_root 切换到真实根。
- 转入用户空间:启动 systemd,进入默认目标(如 graphical.target/multi-user.target),系统完成启动。
- 上述流程决定了“任何基于文件系统的 Overlay(例如覆盖根分区)必须在真实根被挂载之后、由用户空间服务或 init 脚本应用”,而不是在 initramfs 阶段直接生效。
三、OverlayFS 在系统中的实际生效点
- 作为根文件系统覆盖(overlayroot)
- 生效时机:在切换到真实根之后,由 init 进程(如 systemd) 或专用的初始化脚本应用 OverlayFS,将 upperdir/workdir/lowerdir 组合为新的 merged 视图,再 pivot 到该视图作为最终根。
- 配置要点:通常通过 /etc/overlayroot.conf 启用与设定层目录;如需持久化,可结合 /etc/fstab 或 initramfs 钩子在切换根后挂载。
- 作为普通目录的联合挂载(非根)
- 生效时机:系统启动完成后,由 /etc/fstab 或 systemd 单元在用户空间挂载,例如:
- 创建目录:mkdir -p /lower /upper /work /merged
- 挂载命令:mount -t overlay overlay -o lowerdir=/lower,upperdir=/upper,workdir=/work /merged
- fstab 条目:/merged overlay overlay defaults,lowerdir=/lower,upperdir=/upper,workdir=/work 0 0
- 验证:mount | grep overlay;ls /merged 查看合并结果。
- 生效时机:系统启动完成后,由 /etc/fstab 或 systemd 单元在用户空间挂载,例如:
四、实践建议与常见坑
- 不要将 overlay 挂载应用到正在使用的目录:会导致“设备或资源忙”,应先切换到临时挂载点或使用维护模式操作。
- 确保目录与权限正确:upperdir/workdir 必须事先存在且可写;lowerdir 建议为只读源;workdir 必须是空目录。
- initramfs 与 Overlay 的边界:initramfs 的职责是“把真实根挂载起来”,复杂覆盖(尤其是覆盖根)应放在真实根之后由用户空间完成,避免早期挂载依赖问题。
- Docker 的 Overlay 网络是另一回事:它依赖 Docker 引擎与集群(Swarm)控制面,和网络命名空间/VTEP 等组件相关,非文件系统 OverlayFS。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: ubuntu overlay启动顺序
本文地址: https://pptw.com/jishu/748337.html
