overlayfs联合挂载核心是lowerdir(只读多层栈,左高右低)、upperdir(可写层,需xattr支持)、workdir(临时工作区,须与upper同文件系统),挂载后通过merged提供统一视图。

Linux 运维中配置 OverlayFS 实现多目录层叠挂载,核心是明确三层角色、确保文件系统兼容性、正确挂载顺序。它不是简单拼接路径,而是通过内核机制把只读基底和可写覆盖层逻辑合并为一个统一视图。
明确 lowerdir、upperdir 和 workdir 的职责
OverlayFS 要求三个关键目录各司其职:
-
lowerdir:只读层,可指定多个(用英文冒号 : 分隔),如
/base:/common;左侧优先级更高,同名文件以左为准 - upperdir:可写层,所有新增、修改、删除操作都记录在此;必须支持扩展属性(xattr),推荐 ext4 或 xfs 格式
- workdir:工作目录,必须与 upperdir 同一文件系统、且为空;挂载后内容由内核管理,用户不可见、不可直接操作
准备目录与文件系统基础
避免挂载失败,需提前检查并创建合规目录结构:
Linux 性能分析与调优专家,覆盖 CPU、内存、磁盘 I/O、网络、内核参数、编译优化、容器/K8s。适用场景:系统卡顿/高负载、内存不足/OOM/Swap 高、CPU 异常/iowait 高。
- 用
mkdir -p /overlay/{lower,upper,work,merged}建立完整路径 - 确认
/overlay/upper和/overlay/work所在分区支持 xattr(可运行touch /overlay/upper/test && setfattr -n user.test -v "1" /overlay/upper/test && echo ok验证) - 若 lowerdir 来自 squashfs(如嵌入式固件),需先挂载该镜像到临时点,再将其路径作为 lowerdir 参数使用
执行挂载并验证行为
使用标准 mount 命令挂载,之后立即验证读写逻辑是否符合预期:
- 挂载命令示例:
sudo mount -t overlay overlay -o lowerdir=/overlay/lower,upperdir=/overlay/upper,workdir=/overlay/work /overlay/merged - 测试覆盖逻辑:在
/overlay/merged中新建文件 → 查看是否出现在/overlay/upper;访问 lower 中已有但 upper 中无的文件 → 确认能正常读取 - 注意:删除操作会在 upperdir 生成对应 .wh. 文件标记“已隐藏”,并非真正删掉 lower 中的内容
生产环境常用简化与持久化方案
运维中常结合场景做轻量适配,而非每次都手动挂载:
- 仅需只读叠加时,可省略 upperdir 和 workdir,命令变为:
mount -t overlay overlay -o lowerdir=/a:/b:/c /mnt,此时 /mnt 为只读合并视图 - 写入频繁场景建议将 upperdir 和 workdir 放在 tmpfs(内存)或专用 SSD 分区,减少 Flash 损耗
- 需开机自动挂载,把完整 mount 命令加入
/etc/fstab,格式如:overlay /overlay/merged overlay lowerdir=/overlay/lower,upperdir=/overlay/upper,workdir=/overlay/work 0 0










