温馨提示×

ubuntu overlay如何挂载目录

小樊
50
2026-09-30 22:05:55
栏目: 智能运维

在 Ubuntu 中,**overlay(OverlayFS)**常用来把多个目录“叠加”成一个统一视图,最典型场景是 Docker、Live CD、只读根文件系统 + 可写层。

下面按常见用法说明如何挂载目录。


一、OverlayFS 基本原理

OverlayFS 至少需要两个目录:

  • lowerdir(下层,只读)
  • upperdir(上层,可写)
  • workdir(工作目录,必须和 upperdir 同文件系统,且为空)
  • 最终挂载出一个 merged(合并视图)

关系示意:

lowerdir  (只读)
     + upperdir (可写)
        = merged (你看到的目录)

二、手动挂载 overlay 目录(命令行)

1️⃣ 准备目录

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

假设:

  • /mnt/lower 是原始目录(只读)
  • /mnt/upper 是你修改内容存放的地方
  • /mnt/work 是 overlay 内部使用
  • /mnt/merged 是挂载点

2️⃣ 挂载 overlay

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

挂载成功后:

  • 读取 /mnt/merged 会看到 lower + upper 合并内容
  • 写入 /mnt/merged 实际写入 /mnt/upper

三、多个 lowerdir(多层叠加)

OverlayFS 支持多个下层:

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

⚠ 注意:

  • lowerdir 用 : 分隔
  • 前面的优先级更高

四、开机自动挂载(/etc/fstab)

示例:

overlay /mnt/merged overlay \
  noauto,x-systemd.automount,lowerdir=/mnt/lower,upperdir=/mnt/upper,workdir=/mnt/work 0 0

或(传统方式):

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

五、卸载 overlay

sudo umount /mnt/merged

六、常见用途示例

✅ 1. 只读系统 + 可写层

lowerdir=/ (根)
upperdir=/overlay/upper

✅ 2. 修改软件但不动原系统

lowerdir=/usr
upperdir=/overlay/usr

✅ 3. chroot / 容器基础

Docker 本质上就是 overlay2


七、常见错误

❌ workdir 和 upperdir 不在同一文件系统
❌ workdir 不为空
❌ lowerdir 不存在
❌ 内核不支持 overlay(旧版 Ubuntu < 14.04 不支持)

检查支持:

lsmod | grep overlay
cat /proc/filesystems | grep overlay

如果你有具体场景(比如:给根目录加可写层、Docker、Live USB、chroot),我可以直接给你一份可用的挂载命令。

0 踩