温馨提示×

怎样编写debian overlay

小樊
37
2026-09-19 21:08:57
栏目: 智能运维

在 Debian(以及其它 Linux 发行版)里,overlay 通常有两种常见含义,我先说明一下,再分别给你讲“怎么写/怎么用”。


一、如果你指的是 OverlayFS(overlay 文件系统)

这是 Linux 内核提供的联合文件系统,常用于:

  • Live CD
  • Docker 存储驱动
  • 只读根文件系统 + 可写层
  • 系统定制 / 调试

1. 基本结构

OverlayFS 需要至少两个目录:

  • lowerdir:只读层(可以是多个)
  • upperdir:可写层
  • workdir:工作目录(必须和 upperdir 同文件系统)
  • merged:挂载后的统一视图

2. 示例目录结构

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

假设:

/overlay/lower   # 原始系统或只读内容
/overlay/upper   # 修改写入这里
/overlay/work    # overlay 内部使用
/overlay/merged # 最终看到的内容

3. 挂载 overlay

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

挂载后:

  • 读文件:优先 upper,再 lower
  • 写文件:写入 upper
  • 删除文件:在 upper 创建 whiteout

4. 在 Debian 开机自动挂载(fstab)

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

二、如果你指的是 Debian 的 overlay 软件源(APT overlay)

有时“overlay”指:

  • 第三方源
  • 自己打包的 Debian 仓库
  • Live 系统构建(如 live-build)

1. 添加第三方 overlay 源

echo "deb http://example.com/debian bookworm main" \
  > /etc/apt/sources.list.d/overlay.list

apt update

2. 使用 apt pinning(避免冲突)

/etc/apt/preferences.d/overlay
Package: *
Pin: origin example.com
Pin-Priority: 450

三、如果你指的是 Debian Live / Initramfs 中的 overlay

常见于:

  • 只读根文件系统
  • 工厂设备 / 嵌入式系统

在 initramfs 中通常会写类似:

mount -t overlay overlay \
  -o lowerdir=/rootfs,upperdir=/rw/upper,workdir=/rw/work \
  /merged

然后 switch_root /merged


四、常见坑提醒

  1. workdir 必须为空
  2. upperdir / workdir 不能和 lowerdir 在同一目录
  3. overlay 不是备份方案
  4. Docker 默认就用 overlay2

如果你能告诉我:

  • 系统挂载
  • 还是 Docker / 容器
  • 还是 Debian 源 / 打包

我可以给你更精确的“编写方式”或示例脚本。

0