你问的“Ubuntu overlay 不生效”通常指 OverlayFS(overlay / overlay2)挂载后内容没按预期合并,或者 Docker 的 overlay2 存储驱动没起作用。下面按最常见原因给你排查清单。
如果是 Docker,请直接看第三节。
overlay 要求:
mount -t overlay overlay \
-o lowerdir=/lower,upperdir=/upper,workdir=/work \
/merged
❌ 常见错误:
workdir 和 upperdir 在同一文件系统但不是空目录workdir 放在 lowerdir 里✅ 检查:
mount | grep overlay
ls /merged
✅ 测试:
touch /upper/test
lowerdir=/a:/b
⚠️ 左边优先级更高
写反会导致“文件被覆盖但不生效”
Ubuntu 一般没问题,但:
✅ 检查:
cat /proc/filesystems | grep overlay
lsmod | grep overlay
特别是 Docker 或 snap 环境:
✅ 临时测试:
sudo apparmor_parser -R /etc/apparmor.d/*
docker info | grep Storage
如果不是 overlay2:
sudo nano /etc/docker/daemon.json
{
"storage-driver": "overlay2"
}
sudo systemctl restart docker
overlay2 要求:
ftype=1)✅ 检查 xfs:
xfs_info / | grep ftype
如果是 ftype=0,overlay2 会 fallback 或失败。
例如:
✅ 建议:
sudo mv /var/lib/docker /data/docker
sudo ln -s /data/docker /var/lib/docker
常见于:
persistent
但:
casper-rw 没创建✅ 正确示例:
boot=casper persistent
mount | grep overlay
docker info | grep -i storage
cat /proc/filesystems | grep overlay
ls -ld /upper /work /lower /merged
请告诉我:
lsb_release -a)我可以直接帮你写一条能用的 mount 命令或 Docker 配置。