温馨提示×

ubuntu overlay如何叠加目录

小樊
39
2026-10-24 08:51:47
栏目: 智能运维

在 Ubuntu(以及其它 Linux 发行版)里,“overlay 叠加目录”通常有两种常见含义,我分别说明,你可以按需选择。


一、使用 OverlayFS 叠加目录(内核级,推荐)

OverlayFS 是 Linux 内核自带的文件系统,可以把多个目录“叠加”成一个统一视图。

1. 基本概念

  • lowerdir:只读层(可以多个)
  • upperdir:可读写层(只能一个)
  • workdir:内部工作目录(必须与 upperdir 同文件系统)
  • merged:最终挂载后看到的目录

2. 示例操作

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

放入一些测试文件:

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

挂载 overlay:

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

查看:

ls /mnt/merged
cat /mnt/merged/file.txt
  • 若上下层有同名文件,upper 覆盖 lower
  • 在 /mnt/merged 写入文件,实际写入 /mnt/upper

卸载:

sudo umount /mnt/merged

3. 开机自动挂载(可选)

在 /etc/fstab 中添加:

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

二、使用 unionfs-fuse(用户态,不依赖内核)

如果内核不支持 overlay(极少情况),可以用 fuse 方案。

sudo apt install unionfs-fuse

示例:

mkdir -p /mnt/merged
unionfs-fuse -o allow_other,nonempty \
  /mnt/upper=RW:/mnt/lower=RO \
  /mnt/merged

卸载:

fusermount -u /mnt/merged

三、常见使用场景

  • Docker 镜像层(本质就是 overlay)
  • 系统只读 + 用户可写(如 Live CD)
  • 多目录合并成一个目录使用

如果你能说明具体用途(例如:Docker、系统定制、文件保护、开发环境),我可以给你更贴合的方案。

0 踩