温馨提示×

如何创建debian overlay

小樊
43
2026-09-01 15:56:32
栏目: 智能运维

在 Debian(以及其它 Linux 发行版)中,Overlay 通常指 OverlayFS(overlay filesystem),用于把多个目录“叠加”成一个统一视图,常用于:

  • Live CD / 容器
  • 只读根文件系统 + 可写层
  • 系统调试 / 定制

下面按常见使用场景说明如何在 Debian 上创建 overlay。


一、前提条件

  1. 内核支持 OverlayFS

    uname -r
    lsmod | grep overlay
    

    如果没有加载:

    sudo modprobe overlay
    
  2. 安装必要工具

    sudo apt update
    sudo apt install fuse overlayroot  # overlayroot 可选
    

二、手动创建 OverlayFS(最常用)

目录结构示例

/mnt/
 ├── lower      # 只读层(原始系统)
 ├── upper      # 可写层
 ├── work       # 工作目录(必须为空)
 └── merged     # 挂载后的统一视图

创建目录

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

挂载 Overlay

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

验证

mount | grep overlay
ls /mnt/merged

✅ 对 /mnt/merged 的修改会写入 /mnt/upper/mnt/lower 始终保持不变


三、开机自动挂载(fstab)

编辑 /etc/fstab

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

然后:

sudo mount -a

四、Debian 官方方案:overlayroot

适合 只读根文件系统

安装

sudo apt install overlayroot

配置

编辑 /etc/overlayroot.conf

overlayroot="tmpfs"

或指定设备:

overlayroot="/dev/sda2"

更新 initramfs

sudo update-initramfs -u

重启后根文件系统将是 overlay 模式。


五、容器 / Docker 场景(补充说明)

Docker 在 Debian 上默认使用 overlay2:

docker info | grep Storage

如未启用:

sudo apt install docker.io

Docker 会自动管理 overlay 层。


六、常见问题

1. workdir 不能为空目录以外的内容

❌ 错误:

overlay: workdir is not empty

✅ 解决:使用独立空目录


2. 不能嵌套 overlay

OverlayFS 不支持多层嵌套 overlay


3. 权限问题

确保:

  • upper/work 可写
  • 用户有权限访问 merged

七、典型用途总结

场景 方式
系统只读 + 可写 overlayroot
自定义 Live 系统 lower + upper
容器存储 Docker overlay2
调试系统 手动 mount

如果你能说明:

  • 根文件系统 overlay
  • 还是 某个目录 overlay
  • 是否用于 Live / 容器 / 恢复系统

我可以给你更精确的配置示例。

0