在 Ubuntu 下,overlay(OverlayFS)常用于容器、Live CD、只读根文件系统或临时修改层。下面按常见使用场景给你说明配置方法。
OverlayFS 需要 4 个目录:
lowerdir:只读层(底层)upperdir:可读写层(修改会写这里)workdir:工作目录(内核内部使用,必须和 upperdir 同文件系统)结构示意:
merged = lower + upper(upper 优先)
sudo mkdir -p /mnt/lower /mnt/upper /mnt/work /mnt/merged
echo "lower file" | sudo tee /mnt/lower/test.txt
sudo mount -t overlay overlay \
-o lowerdir=/mnt/lower,upperdir=/mnt/upper,workdir=/mnt/work \
/mnt/merged
ls /mnt/merged
echo "new file" | sudo tee /mnt/merged/new.txt
cat /mnt/upper/new.txt
编辑 /etc/fstab:
overlay /mnt/merged overlay defaults,lowerdir=/mnt/lower,upperdir=/mnt/upper,workdir=/mnt/work 0 0
⚠ 注意:
workdir 不能和 lowerdir 相同upperdir 和 workdir 必须同分区Ubuntu + Docker 默认使用:
overlay2查看:
docker info | grep Storage
一般不需要手动改,除非:
sudo nano /etc/docker/daemon.json
{
"storage-driver": "overlay2"
}
sudo systemctl restart docker
常用于:
典型结构:
lower = 系统只读镜像
upper = 可写分区
merged = 实际根目录
可通过 initramfs 或 systemd 实现。
✅ 解决:放到同一磁盘分区
✅ 用 sudo,或检查 SELinux/AppArmor
lsmod | grep overlay
如为空:
sudo modprobe overlay
我可以给你精确配置,比如:
你现在是想用在哪?