Linux OverlayFS 的启动过程涉及内核模块加载、文件系统挂载以及联合挂载的实现。以下是详细分析:
overlay.ko),通常在系统启动时由 modprobe 或 udev 自动加载,或通过 mount 命令触发加载。
bash
# 手动加载模块
sudo modprobe overlay挂载命令通过 mount -t overlay 指定各层目录:
sudo mount -t overlay overlay \
-o lowerdir=/lower1:/lower2,upperdir=/upper,workdir=/work \
/merged
lowerdir:只读层(支持多层,用 : 分隔,左侧优先级高)。upperdir:可写层,用于存储修改和新增文件。workdir:临时工作目录(需空目录),用于原子操作。/merged:联合挂载点,呈现最终视图。lowerdir,由多个镜像层堆叠(通过 : 连接)。upperdir(位于 /var/lib/docker/overlay2/<id>/diff)。mount 命令合并到容器内部视图。lowerdir。upperdir,允许保存用户数据。/merged/file 时,内核按顺序检查:
upperdir → lowerdir(从左到右)。lowerdir,先复制到 upperdir 再修改。upperdir。upperdir 创建 whiteout 文件(如 .wh.<filename>)。redirect_dir=on:优化目录重定向性能。metacopy=on:减少元数据复制(需内核 ≥ 4.19)。upperdir 必须位于支持扩展属性(xattr)的文件系统(如 ext4、xfs)。mount | grep overlay 确认挂载参数。dmesg 查看模块加载和挂载错误。lowerdir 层(影响查找性能)。workdir 为空且与 upperdir 同文件系统。cat /proc/filesystems | grep overlay。lowerdir 路径正确,权限允许访问。通过理解上述流程,可以高效使用 OverlayFS 实现容器存储、系统快照等场景。