在 Ubuntu 里,overlay(OverlayFS)本身不是一个“服务”,而是一种联合挂载文件系统。通常我们说“启用 overlay 服务”,一般有以下几种常见场景。下面按常见情况给你说明。
如果你是在系统启动时用 overlay 挂载根目录(例如只读根 + 可写层),需要:
Ubuntu 默认内核已支持 overlay。
lsmod | grep overlay
若没有:
sudo modprobe overlay
编辑:
sudo nano /etc/initramfs-tools/modules
添加:
overlay
然后更新:
sudo update-initramfs -u
⚠️ 这种方式常用于嵌入式 / 只读系统,配置复杂,需要写 initramfs hook。
如果你只是在系统启动后挂载 overlay 目录(如 /merged),用 systemd mount 最规范。
sudo mkdir -p /lower /upper /work /merged
文件名必须对应挂载点路径:
mnt-merged.mount
sudo nano /etc/systemd/system/mnt-merged.mount
内容:
[Unit]
Description=OverlayFS Mount
After=local-fs.target
[Mount]
What=overlay
Where=/mnt/merged
Type=overlay
Options=lowerdir=/lower,upperdir=/upper,workdir=/work
[Install]
WantedBy=multi-user.target
sudo systemctl daemon-reload
sudo systemctl enable --now mnt-merged.mount
查看状态:
systemctl status mnt-merged.mount
mount | grep overlay
如果你说的是 Docker 的 overlay2 存储驱动:
docker info | grep Storage
确保:
cat /etc/docker/daemon.json
示例:
{
"storage-driver": "overlay2"
}
重启:
sudo systemctl restart docker
sudo mount -t overlay overlay \
-o lowerdir=/lower,upperdir=/upper,workdir=/work \
/merged
❌ overlay 不是 systemctl start overlay
❌ 没有名为 overlay 的“服务”
✅ overlay 是 内核文件系统,通过 mount 或 systemd 使用
如果你能说清楚你是:
我可以给你精确到配置文件级别的方案。