温馨提示×

如何迁移centos overlay

小樊
45
2026-10-06 03:44:31
栏目: 智能运维

在 CentOS 中,“overlay”通常指 OverlayFS(overlay 文件系统),常见于:

  • Docker 的存储驱动(overlay2)
  • 手工挂载的 overlay 文件系统(用于只读根 + 可写层)
  • LiveCD / 容器场景

下面按最常见场景说明如何“迁移 overlay”。


一、迁移 Docker 的 overlay2 存储(最常见)

场景

把 Docker 默认的 /var/lib/docker 从原磁盘迁移到新磁盘或新目录。

步骤

1. 停止 Docker

systemctl stop docker

2. 复制数据(必须保留权限)

mkdir -p /new/path/docker
rsync -aP /var/lib/docker/ /new/path/docker/

⚠️ 不要用 cp,容易丢权限和 xattr

3. 修改 Docker 配置

vi /etc/docker/daemon.json

示例:

{
  "data-root": "/new/path/docker"
}

4. 启动 Docker

systemctl start docker

5. 验证

docker info | grep "Docker Root Dir"

二、迁移手工挂载的 overlay 文件系统

查看当前 overlay 挂载

mount | grep overlay

示例:

overlay on /mnt/merged type overlay (lowerdir=/ro,upperdir=/rw/upper,workdir=/rw/work)

迁移步骤

1. 卸载 overlay

umount /mnt/merged

2. 迁移目录

rsync -aP /ro /new/ro
rsync -aP /rw /new/rw

3. 重新挂载

mount -t overlay overlay \
  -o lowerdir=/new/ro,upperdir=/new/rw/upper,workdir=/new/rw/work \
  /mnt/merged

4. 写入 fstab(可选)

overlay /mnt/merged overlay lowerdir=/new/ro,upperdir=/new/rw/upper,workdir=/new/rw/work 0 0

三、迁移 CentOS 根文件系统的 overlay(Live / 嵌入式)

如果是 CentOS 启动时使用 overlay(如 LiveOS):

  1. 修改 grub 启动参数
  2. 修改 lowerdir / upperdir / workdir
  3. 确保新分区有:
    • 正确文件系统(ext4/xfs)
    • 足够空间
    • 正确的 SELinux 标签

四、常见坑

  • ❌ 直接 mv overlay 目录
  • ❌ 忽略 workdir
  • ❌ SELinux 上下文丢失
  • ❌ Docker 未完全停止就复制

五、请补充信息以便精准回答

你可以告诉我:

  1. 是 Docker overlay2 还是 系统 overlay?
  2. CentOS 版本(7 / 8 / Stream)
  3. 迁移目的(换盘 / 扩容 / 容灾)

我可以给你精确命令脚本。

0 踩