在 Ubuntu(以及其它使用 Linux 内核的发行版)里,**OverlayFS(overlay)**常用于容器、Live CD、只读根文件系统等场景。配置时需要注意以下关键点:
OverlayFS 至少需要两个目录:
: 分隔挂载示例:
mount -t overlay overlay \
-o lowerdir=/lower,upperdir=/upper,workdir=/work \
/merged
upperdir 和 workdir 必须在同一文件系统workdir 不能是 upperdir 的子目录upperdir 不能是 lowerdir 的子目录错误示例:
upperdir=/a/upper,workdir=/b/work # 不同文件系统,错误
lowerdir=/lower1:/lower2:/lower3
OverlayFS 要求:
mount调试:
dmesg | tail
aa-status
umount /merged
Ubuntu 上常见:
storage-driver=overlay2检查:
docker info | grep Storage
| 现象 | 原因 |
|---|---|
mount: wrong fs type |
内核未支持 overlay |
workdir and upperdir 报错 |
不在同一文件系统 |
| 文件看不到 | lowerdir 顺序错误 |
| 删除无效 | whiteout 未正确生成 |
启用调试:
mount -t overlay overlay -o ...,debug /merged
如果你是在 Docker / LXC / 系统根目录只读 / 定制 Live 系统 场景下用 overlay,可以告诉我具体用途,我可以给更针对性的配置示例。