在 Ubuntu 上配置 Overlay(overlayfs),常用于容器、Live CD、只读根文件系统、系统升级等场景。下面从使用方式、内核/版本要求、常见坑几个方面说明需要注意的点。
OverlayFS 需要:
: 分隔)overlay(早期叫 overlayfs)cat /proc/filesystems | grep overlay
modprobe overlay
mount -t overlay overlay \
-o lowerdir=/ro,upperdir=/rw/upper,workdir=/rw/work \
/merged
目录要求:
/ro (只读,lower)
/rw/upper (可读写)
/rw/work (空目录)
/merged (挂载点)
workdir 不能和 upperdir 相同mkdir -p /rw/upper /rw/work /merged
❌ 错误示例:
upperdir=/mnt/sda1/upper
workdir=/mnt/sdb1/work
✅ 正确:
upperdir=/mnt/sda1/upper
workdir=/mnt/sda1/work
-o lowerdir=/a:/b:/c
-o userxattr
Ubuntu 默认用 AppArmor:
dmesg | grep apparmor
Docker 默认就用 overlay2:
docker info | grep Storage
注意:
overlay2 而非旧 overlayext4 / xfs必须:
umount /merged
不能直接删目录,否则可能卡死。
Overlay 是临时挂载:
/etc/fstab:overlay /merged overlay \
lowerdir=/ro,upperdir=/rw/upper,workdir=/rw/work 0 0
mount | grep overlay
dmesg | tail
strace mount ...
如果你能说下具体用途(比如 Docker、根目录只读、PXE、嵌入式),我可以给你更针对性的配置示例。