温馨提示×

ubuntu overlay怎样迁移

小樊
49
2026-09-27 23:44:32
栏目: 智能运维

在 Ubuntu 里常说的 overlay 通常指 OverlayFS(常见于容器、Live CD、Docker、systemd 等场景)。下面按常见使用场景说明“迁移”方法,你可对号入座。


一、如果你是 Docker 的 overlay2 存储迁移(最常见)

场景

Docker 默认使用 /var/lib/docker/overlay2,想迁移到新磁盘或新目录。

步骤

  1. 停止 Docker
sudo systemctl stop docker
  1. 复制数据(保留权限)
sudo rsync -aP /var/lib/docker /new/path/docker
  1. 修改 Docker 配置 编辑或新建:
sudo nano /etc/docker/daemon.json

内容示例:

{
  "data-root": "/new/path/docker"
}
  1. 重命名旧目录(确认无误后再删)
sudo mv /var/lib/docker /var/lib/docker.bak
  1. 启动 Docker
sudo systemctl start docker
docker info | grep "Docker Root Dir"

✅ 验证容器、镜像是否正常


二、如果你是 systemd 的 overlay(如 /etc 覆盖)

场景

使用:

mount -t overlay overlay -o lowerdir=,upperdir=,workdir= /target

迁移方法

overlay 不能直接“移动”,必须:

  1. 卸载 overlay
sudo umount /target
  1. 迁移 upperdir / workdir / lowerdir
sudo rsync -aP /old/upper /new/upper
sudo rsync -aP /old/work  /new/work
  1. 重新挂载
sudo mount -t overlay overlay \
  -o lowerdir=/lower,upperdir=/new/upper,workdir=/new/work \
  /target

⚠️ workdir 必须为空目录,且不能和 upperdir 在同一文件系统问题(建议同盘)


三、Ubuntu Live / 持久化 overlay 迁移(U 盘 → 硬盘)

场景

casper-rw + overlay 持久化

方法

  1. 复制 casper-rw
dd if=/old/casper-rw of=/new/casper-rw bs=4M

或

cp /old/casper-rw /new/casper-rw
  1. 修改 grub 启动参数
persistent persistent-path=/new/

四、迁移注意事项(非常重要)

  • ❌ overlay 不能跨文件系统直接 mv
  • ✅ 必须 rsync / cp
  • ✅ workdir 必须为空
  • ✅ upperdir 权限不能丢
  • ✅ 容器场景优先用 Docker 官方 data-root

五、你可以告诉我

  • 是 Docker / Kubernetes?
  • 还是 Ubuntu 系统 overlay(/etc、/var)?
  • 还是 Live USB 持久化?

我可以直接给你精确命令。

0 踩