在 Linux 中,OverlayFS(overlay) 常用于容器、Live CD、只读根文件系统等场景。下面从原理 → 手动挂载 → 常用参数 → 示例 → 排错逐步说明。
Overlay 把多个目录“叠”在一起:
: 分隔)merged = lowerdir ∪ upperdir(upper 优先)
mkdir -p /lower /upper /work /merged
写入测试文件:
echo "lower" > /lower/file.txt
echo "upper" > /upper/file.txt
mount -t overlay overlay \
-o lowerdir=/lower,upperdir=/upper,workdir=/work \
/merged
ls /merged
cat /merged/file.txt
输出是 upper 的内容(upper 覆盖 lower)
mount -t overlay overlay \
-o lowerdir=/lower1:/lower2:/lower3,upperdir=/upper,workdir=/work \
/merged
⚠ 注意:
overlay /merged overlay \
lowerdir=/lower,upperdir=/upper,workdir=/work 0 0
Docker 默认使用:
overlay2(推荐)overlay查看:
docker info | grep Storage
创建容器时自动使用 overlay,无需手动挂载。
mount -t overlay overlay \
-o lowerdir=/ro_root,upperdir=/rw/upper,workdir=/rw/work \
/new_root
适合:
mount: wrong fs type, bad option, workdir and upperdir must be same fs
✅ 解决:
mkdir -p /data/upper /data/work
cat /proc/filesystems | grep overlay
若无输出:
setenforce 0
# 或加 mount 参数
-o context="system_u:object_r:container_file_t:s0"
umount /merged
如果你有具体使用场景(比如 容器、嵌入式、根目录 overlay、Docker 存储优化),可以告诉我,我可以给你更精确的配置方案。