温馨提示×

ubuntu分卷后如何迁移数据

小樊
48
2026-01-04 19:23:38
栏目: 智能运维

Ubuntu 分卷后迁移数据的实用方案

一、先明确目标与准备

  • 明确迁移目标:是迁移整个系统(/、/home 等)还是仅迁移单个目录(如 /home、/var、/usr)。
  • 做好备份:先备份关键数据与配置(如 /home、/etc、/var),避免误操作造成数据丢失。
  • 识别设备与分区:用 lsblk、sudo blkid 确认设备名(如 /dev/sda1、/dev/sdb1)与文件系统类型(如 ext4、btrfs),记录UUID挂载点
  • 准备环境:优先从 Ubuntu Live USB 启动执行迁移,避免运行中文件被占用;目标分区需提前创建并格式化为相同文件系统(或使用 LVM 新建 LV)。

二、方法一 文件级迁移 rsync(推荐,安全灵活)

  • 适用:同版本系统迁移、只迁移部分目录、跨磁盘/跨文件系统。
  • 步骤:
    1. 从 Live USB 启动,挂载源/目标分区:
      sudo mkdir -p /mnt/old /mnt/new
      sudo mount /dev/sda1 /mnt/old
      sudo mount /dev/sdb1 /mnt/new
    2. 执行同步(排除虚拟文件系统与缓存):
      sudo rsync -aAXv --info=progress2 --exclude={‘/dev/‘,’/proc/’,‘/sys/‘,’/run/’,‘/tmp/‘,’/home//.cache’} /mnt/old/ /mnt/new/
    3. 仅迁移 /home 的简例(已挂载好目标分区到 /mnt/newhome):
      sudo rsync -aAXv /home/ /mnt/newhome/
    4. 同步完成卸载:sudo umount /mnt/old /mnt/new
    5. 如迁移到新盘并作为 /home 使用,获取新分区 UUID:sudo blkid /dev/sdb1,写入 /etc/fstab(在目标系统的 chroot 或 Live 环境中编辑):
      UUID=新UUID /home ext4 defaults 0 2
      然后执行 mount -a 验证并重启。
  • 说明:-aAX 保留权限/ACL/扩展属性;目标为大磁盘时迁移后可按需扩容文件系统。

三、方法二 块级克隆 dd 或 Clonezilla(整盘/整分区镜像)

  • 适用:需要逐位克隆整盘或整分区(如 HDD→SSD、同结构替换)。
  • 步骤:
    1. 确认设备名(如 /dev/sda → /dev/sdb),避免写反;建议用 lsblk 复核。
    2. 执行 dd(推荐较大块与进度显示):
      sudo dd if=/dev/sda of=/dev/sdb bs=64K conv=noerror,sync status=progress
    3. 目标盘更大时,用 GParted 扩展分区,再用文件系统工具扩容(ext4 用 resize2fs)。
    4. 克隆会复制 UUID,若新旧盘共存需避免冲突:
      • 方案 A:为新盘生成新 UUID(ext4):sudo tune2fs /dev/sdbX -U random,然后更新目标系统 /etc/fstab 中的 UUID。
      • 方案 B:在目标系统 chroot 中执行 update-grub 后重启测试。
    5. 图形化替代:用 Clonezilla 制作启动盘,选择 device-device 或 device-image 模式克隆,操作直观、适合新手。
  • 说明:dd/Clonezilla 适合“原样复制”;若硬件差异较大或仅需迁移数据,优先 rsync。

四、方法三 使用 LVM 在线迁移与扩容(已用 LVM 的场景)

  • 适用:系统已采用 LVM(PV/VG/LV),需要在线将数据迁至新磁盘或扩容。
  • 步骤:
    1. 新盘分区并设为 LVM 类型(MBR 为 8e,GPT 为 8e00),创建 PV:sudo pvcreate /dev/sdb1。
    2. 将 PV 加入现有 VG:sudo vgextend vg0 /dev/sdb1。
    3. 在线迁移数据到新 PV:sudo pvmove /dev/sda2(示例源 PV)。
    4. 迁移后可移除旧 PV:sudo vgreduce vg0 /dev/sda2;随后按需扩展 LV 与文件系统(如 resize2fs)。
  • 说明:LVM 支持跨磁盘聚合与在线迁移,适合服务器与需要弹性扩容的环境。

五、迁移后关键设置与验证

  • 更新 /etc/fstab:用 blkid 获取新分区 UUID,替换 fstab 中旧 UUID;如使用卷标,也可改为 LABEL= 方式。
  • 修复 GRUB 引导(更换硬盘或无法启动时):
    1. Live USB 挂载目标根分区与 EFI 分区(如有):
      sudo mount /dev/sdb1 /mnt
      sudo mount /dev/sdb2 /mnt/boot/efi
    2. 挂载虚拟文件系统并 chroot:
      sudo mount --bind /dev /mnt/dev
      sudo mount --bind /proc /mnt/proc
      sudo mount --bind /sys /mnt/sys
      sudo chroot /mnt
    3. 重装 GRUB 并更新:
      grub-install /dev/sdb
      update-grub
    4. 退出并重启:exit → sudo umount -R /mnt → reboot。
  • 扩容文件系统(目标分区大于源分区时):
    • ext4:sudo resize2fs /dev/sdb1
    • 使用 GParted 图形化调整更直观。
  • 验证:重启后检查挂载点(df -h)、用户文件(ls /home)、日志与关键服务状态,确认无误再清理旧盘数据。

0