Debian 分卷迁移实操指南
一、适用场景与准备
- 适用对象:使用 LVM 或普通分区的 Debian 系统,需要将 /home、/var 等分卷迁移到新磁盘或新分区。
- 关键准备:
- 完整备份重要数据(至少一份离线或异机备份)。
- 准备 LiveCD/救援盘(如 Debian 安装介质)以便在离线环境操作根分区相关步骤。
- 确认新盘已连接并被识别(如 /dev/sdX),规划好目标分区大小与文件系统(常用 ext4/xfs)。
- 预留维护窗口,避免在线迁移对业务造成影响。
二、方案一 LVM 场景迁移到新磁盘或新卷
- 步骤概览:
- 查看现状并规划
- 查看磁盘与分区:lsblk、blkid
- 查看卷组与逻辑卷:vgs、lvs、pvs
- 在新盘创建分区并初始化为物理卷
- 分区(示例):parted /dev/sdX mklabel gpt mkpart primary 1MiB 100%
- 初始化:pvcreate /dev/sdX1
- 扩展现有卷组或创建新卷组
- 扩展:vgextend <VG名> /dev/sdX1
- 或新建:vgcreate <新VG名> /dev/sdX1
- 迁移数据到新空间
- 在线迁移(不停机):pvmove /dev/旧PV
- 迁移某个 LV 到新 PV:先在新 VG 中 lvcreate -L <大小> -n <LV名> <新VG>;再用 dd if=/dev/旧LV of=/dev/新LV bs=4M status=progress conv=fsync 或 rsync -aAX --info=progress2 /源挂载点/ /新挂载点/ 完成数据拷贝。
- 调整逻辑卷大小(如需扩容)
- 扩容 LV:lvextend -L +<大小> /dev// 或 lvextend -l +100%FREE /dev//
- 扩容文件系统(ext4):resize2fs /dev//;(xfs):xfs_growfs /挂载点
- 验证与清理
- 检查:df -h、lvs、vgs
- 确认无误后,从卷组中移除旧 PV:vgreduce <VG名> /dev/旧PV;如需回收整盘,可 pvremove /dev/旧PV。
- 要点提示:
- 迁移过程中保持 卷组名称与 LV 路径不变,可减少应用与 fstab 的改动。
- 若跨 VG 迁移,通常需要调整 /etc/fstab 的挂载点或 UUID。
三、方案二 非 LVM 场景迁移到新分区
- 步骤概览:
- 查看现状:lsblk、df -h、blkid
- 在新盘创建分区并格式化
- 分区:parted /dev/sdX mklabel gpt mkpart primary 1MiB 100%
- 格式化(示例):mkfs.ext4 /dev/sdX1
- 挂载新分区并迁移数据
- 挂载新分区:mount /dev/sdX1 /mnt/new
- 迁移数据(保持权限与属性):rsync -aAX --info=progress2 /源挂载点/ /mnt/new/
- 备份并更新 /etc/fstab
- 获取新分区 UUID:blkid /dev/sdX1
- 编辑 /etc/fstab,将源分区的挂载行替换为新分区的 UUID(推荐)或设备路径。
- 切换根分区时的特别说明
- 若迁移的是 /,需使用 LiveCD/救援盘 挂载新旧根分区,完成 rsync 后 chroot 到新根,执行 update-grub 与 grub-install /dev/sdX,再重启切换。
- 验证与回滚
- 重启后检查:df -h、mount | grep <挂载点>
- 确认无误后再清理旧分区数据。
四、关键注意事项与验证清单
- 一致性与安全性
- 全程保持 至少一份可用备份;迁移前停止相关服务(如数据库、邮件等)以减少写入。
- 使用 UUID 管理分区更可靠,避免因设备名变化导致挂载失败。
- 文件系统与工具选择
- 迁移工具优先 rsync -aAX(保留 ACL、xattr 与属性);整分区克隆可用 dd(注意目标盘容量与块大小)。
- 扩容命令区分文件系统:resize2fs(ext2/3/4),xfs_growfs(xfs,需挂载后执行)。
- 引导与验证
- 涉及 /boot 或根分区迁移时,务必在 chroot 中执行 update-grub 与 grub-install。
- 重启后逐项验证:服务状态、用户家目录或数据目录可写、日志无异常、磁盘空间使用符合预期。
以上流程覆盖 LVM 与 非 LVM 的主流迁移路径,并兼顾不停机与停机两种策略。若提供你当前的 lsblk、df -h、vgs/lvs/pvs 输出与目标盘容量,我可以据此给出精确命令清单与回滚方案。