温馨提示×

怎样配置ubuntu overlay

小樊
55
2026-09-22 00:27:12
栏目: 智能运维

在 Ubuntu 上配置 OverlayFS(overlay) 通常有两种常见场景:

  1. 手动使用 overlay 挂载(测试 / 容器底层原理)
  2. 系统启动时自动配置 overlay(常用于只读根文件系统、嵌入式系统)

下面分别说明。


一、手动配置 Overlay(最常用)

1. 准备目录

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

说明:

  • /lower:只读层(原始文件)
  • /upper:可写层(修改内容)
  • /work:工作目录(overlay 必须)
  • /merged:最终挂载点

2. 放入测试文件

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

3. 挂载 overlay

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

4. 验证

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

5. 卸载

sudo umount /merged

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

示例 fstab 配置

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

⚠ 注意:

  • /lower、/upper、/work 必须提前存在
  • 不能用于 / 本身(除非 initramfs)

三、用于“只读根文件系统 + 可写层”(高级)

常见于 Ubuntu Core / 工业设备。

基本思路

  • / 只读
  • /upper 在可写分区
  • 通过 initramfs 或 systemd 在启动早期挂载 overlay

systemd 示例(简化)

[Unit]
Description=Overlay Root
Before=local-fs.target

[Service]
Type=oneshot
ExecStart=/bin/mount -t overlay overlay -o lowerdir=/,upperdir=/upper,workdir=/work /merged
RemainAfterExit=yes

[Install]
WantedBy=multi-user.target

(真实环境建议改 initramfs,否则风险很高)


四、常见问题

1. workdir 报错

overlay: workdir and upperdir must be same fs

✅ 解决:upper 和 work 必须在同一文件系统

2. 权限问题

sudo chmod 777 /upper /work

3. 查看是否已挂载

mount | grep overlay

五、Docker 中的 overlay(顺带一提)

Docker 默认就用 overlay2:

docker info | grep Storage

如果你能说明 具体用途(例如:容器、树莓派、系统保护、开发测试),我可以给你更精确的配置方案。

0 踩