在 Ubuntu 中,“overlay”通常有两种常见含义,迁移方式也不同:
下面分别说明。
你使用了 overlay 挂载,例如:
mount -t overlay overlay \
-o lowerdir=/lower,upperdir=/upper,workdir=/work \
/merged
mount | grep overlay
cat /proc/mounts | grep overlay
umount /merged
overlay 的数据分散在:
真正需要迁移的是:
示例:
rsync -aHAX /upper/ /new_upper/
rsync -aHAX /lower/ /new_lower/
mount -t overlay overlay \
-o lowerdir=/new_lower,upperdir=/new_upper,workdir=/new_work \
/new_merged
编辑 /etc/fstab:
overlay /new_merged overlay defaults,lowerdir=/new_lower,upperdir=/new_upper,workdir=/new_work 0 0
如果你是指 Docker overlay2 存储:
systemctl stop docker
默认位置:
/var/lib/docker
迁移示例:
rsync -aP /var/lib/docker/ /data/docker/
编辑:
/etc/docker/daemon.json
添加:
{
"data-root": "/data/docker"
}
systemctl start docker
如果你是指 Ubuntu 的 overlay 软件源(如 ubuntu-sdk-team/overlay):
# 查看源
cat /etc/apt/sources.list.d/*.list
# 修改或迁移到新系统
cp /etc/apt/sources.list.d/xxx.list /新系统/etc/apt/sources.list.d/
apt update
fuser -km /merged
umount /merged
确保:
workdir ≠ upperdir
workdir 为空目录
如果你能补充说明:
我可以给你更精确的迁移方案。