温馨提示×

ubuntu overlay配置怎样做

小樊
37
2026-10-06 18:05:46
栏目: 智能运维

在 Ubuntu 下,overlay(OverlayFS)常用于容器、Live CD、只读根文件系统或临时修改层。下面按常见使用场景给你说明配置方法。


一、OverlayFS 基本原理(先了解)

OverlayFS 需要 4 个目录:

  • lowerdir:只读层(底层)
  • upperdir:可读写层(修改会写这里)
  • workdir:工作目录(内核内部使用,必须和 upperdir 同文件系统)
  • 挂载点:你看到的最终目录

结构示意:

merged = lower + upper(upper 优先)

二、手动挂载 Overlay(最常用)

1️⃣ 准备目录

sudo mkdir -p /mnt/lower /mnt/upper /mnt/work /mnt/merged

2️⃣ 放入测试文件(可选)

echo "lower file" | sudo tee /mnt/lower/test.txt

3️⃣ 挂载 overlay

sudo mount -t overlay overlay \
  -o lowerdir=/mnt/lower,upperdir=/mnt/upper,workdir=/mnt/work \
  /mnt/merged

4️⃣ 验证

ls /mnt/merged
echo "new file" | sudo tee /mnt/merged/new.txt
cat /mnt/upper/new.txt

三、开机自动挂载(fstab)

编辑 /etc/fstab:

overlay /mnt/merged overlay defaults,lowerdir=/mnt/lower,upperdir=/mnt/upper,workdir=/mnt/work 0 0

⚠ 注意:

  • workdir 不能和 lowerdir 相同
  • upperdir 和 workdir 必须同分区

四、Docker 中的 overlay(不用手动配)

Ubuntu + Docker 默认使用:

  • overlay2

查看:

docker info | grep Storage

一般不需要手动改,除非:

sudo nano /etc/docker/daemon.json
{
  "storage-driver": "overlay2"
}
sudo systemctl restart docker

五、Ubuntu Live / 只读系统(高级)

常用于:

  • 工控机
  • 公共终端

典型结构:

lower = 系统只读镜像
upper = 可写分区
merged = 实际根目录

可通过 initramfs 或 systemd 实现。


六、常见问题排查

❌ mount: workdir and upperdir must be on same filesystem

✅ 解决:放到同一磁盘分区

❌ permission denied

✅ 用 sudo,或检查 SELinux/AppArmor

❌ overlay 不生效

lsmod | grep overlay

如为空:

sudo modprobe overlay

七、你可以告诉我你是哪种需求

我可以给你精确配置,比如:

  • ✅ Ubuntu 根目录只读 + 可写层
  • ✅ Docker / Kubernetes overlay
  • ✅ 嵌入式 / Live USB
  • ✅ 多 lowerdir 合并

你现在是想用在哪?

0 踩