在 Debian 里,“overlay”通常指 OverlayFS,用来把多个目录叠加成一个统一的挂载点(常见于 Live CD、容器、临时修改根目录等)。下面按常见场景说明 如何挂载 overlay。
一、OverlayFS 基本原理
OverlayFS 至少需要两个目录:
- lowerdir:只读层(可以多个)
- upperdir:可写层
- workdir:工作目录(必须为空)
- merged:最终挂载点
merged
├── 来自 upperdir(可写)
└── 来自 lowerdir(只读)
二、手动挂载 OverlayFS(最常用)
1️⃣ 准备目录
mkdir -p /mnt/overlay/{lower,upper,work,merged}
假设你已经有:
/mnt/overlay/lower(只读)/mnt/overlay/upper(可写)/mnt/overlay/work(工作目录)
2️⃣ 挂载 overlay
mount -t overlay overlay \
-o lowerdir=/mnt/overlay/lower,upperdir=/mnt/overlay/upper,workdir=/mnt/overlay/work \
/mnt/overlay/merged
✅ 成功后:
- 对
/mnt/overlay/merged的修改会写入upperdir lowerdir不会被修改
三、多个 lowerdir(层叠)
mount -t overlay overlay \
-o lowerdir=/lower1:/lower2:/lower3,upperdir=/upper,workdir=/work \
/merged
⚠️ 冒号 : 分隔,/lower1 优先级最高。
四、查看是否支持 overlay
lsmod | grep overlay
如果没有加载:
modprobe overlay
确认内核支持:
uname -r
cat /proc/filesystems | grep overlay
Debian 官方内核 默认支持 overlay。
五、写入 /etc/fstab(开机自动挂载)
overlay /mnt/overlay/merged overlay defaults,lowerdir=/mnt/overlay/lower,upperdir=/mnt/overlay/upper,workdir=/mnt/overlay/work 0 0
⚠️ 注意:
lowerdir / upperdir / workdir必须在系统启动后存在- 不适合太早挂载(如 initramfs 阶段)
六、常见使用场景
✅ 1. 临时修改根目录(Live 系统)
mount -t overlay overlay -o lowerdir=/,upperdir=/overlay/upper,workdir=/overlay/work /newroot
✅ 2. chroot + overlay
mount -t overlay overlay -o lowerdir=/realroot,upperdir=/rw,workdir=/work /target
chroot /target
✅ 3. Docker / Podman 底层原理
Docker 默认使用 overlay2(基于 OverlayFS)。
七、常见问题
❌ workdir 不为空
overlayfs: workdir is in-use
✅ 解决:清空 workdir 或换目录
❌ lowerdir 不存在
mount: wrong fs type, bad option
✅ 检查路径是否存在
八、卸载 overlay
umount /mnt/overlay/merged
如果你能说明 具体用途(比如:
- 给根目录做 overlay
- 给 Docker / LXC
- 给 Live Debian
- 给嵌入式系统
我可以给你 更精确的挂载方案。
