在 Ubuntu 上配置 OverlayFS(overlay) 通常有两种常见场景:
下面分别说明。
sudo mkdir -p /lower /upper /work /merged
说明:
/lower:只读层(原始文件)/upper:可写层(修改内容)/work:工作目录(overlay 必须)/merged:最终挂载点echo "lower file" | sudo tee /lower/test.txt
sudo mount -t overlay overlay \
-o lowerdir=/lower,upperdir=/upper,workdir=/work \
/merged
cat /merged/test.txt
echo "new file" | sudo tee /merged/new.txt
ls /upper
sudo umount /merged
overlay /merged overlay \
lowerdir=/lower,upperdir=/upper,workdir=/work 0 0
⚠ 注意:
/lower、/upper、/work 必须提前存在/ 本身(除非 initramfs)常见于 Ubuntu Core / 工业设备。
/ 只读/upper 在可写分区[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,否则风险很高)
overlay: workdir and upperdir must be same fs
✅ 解决:upper 和 work 必须在同一文件系统
sudo chmod 777 /upper /work
mount | grep overlay
Docker 默认就用 overlay2:
docker info | grep Storage
如果你能说明 具体用途(例如:容器、树莓派、系统保护、开发测试),我可以给你更精确的配置方案。