ubuntu

Ubuntu分区如何进行数据迁移

小樊
48
2025-10-03 13:02:06
栏目: 智能运维

Ubuntu分区数据迁移指南

数据迁移是将Ubuntu系统或数据从一个分区/磁盘复制到另一个分区的过程,适用于升级硬盘、调整分区布局或迁移系统场景。以下是常用方法及详细步骤,覆盖不同需求:

一、迁移前准备

  1. 备份关键数据
    使用tar命令打包/home/etc/var等核心目录(排除缓存文件),避免操作失误导致数据丢失:
    sudo tar -czvf backup.tar.gz --exclude={'/home/*/.cache','/tmp/*'} /home /etc /var
    
  2. 记录系统信息
    记录原分区的挂载点(如//home)、文件系统类型(如ext4btrfs)、UUID(通过sudo blkid获取),便于后续修改配置。
  3. 准备目标分区
    使用GParted(图形化)或fdisk(命令行)创建与原分区大小一致或更大的分区,格式化为相同文件系统(如ext4)。
  4. 连接目标设备
    将目标分区(如新硬盘、外接U盘)连接到计算机,确保系统能识别(通过lsblk查看设备名,如/dev/sdb1)。

二、常用迁移方法

1. rsync(文件级同步,推荐)

适用于同系统版本迁移(如Ubuntu 22.04→22.04),保留文件权限、时间戳和符号链接,效率高且安全。

2. dd(块级复制,完整镜像)

适用于完整克隆分区/磁盘(如机械硬盘→固态硬盘),生成与原系统完全一致的镜像,但会覆盖目标分区所有数据,需谨慎使用。

3. Clonezilla(图形化克隆工具)

适用于新手或复杂场景(如多分区、跨硬件迁移),提供“设备-镜像”模式,操作直观且安全。

三、迁移后关键设置

  1. 更新UUID与fstab
    ddClonezilla会复制原分区的UUID,需修改目标分区的UUID以避免冲突:
    (1)获取新分区UUID:sudo blkid /dev/sdb1
    (2)挂载目标根分区:sudo mount /dev/sdb1 /mnt
    (3)编辑/etc/fstab(位于/mnt/etc/fstab),将旧UUID替换为新UUID:

    sudo nano /mnt/etc/fstab
    

    修改示例:

    UUID=新UUID / ext4 errors=remount-ro 0 1
    

    (4)保存并退出(Ctrl+XYEnter)。

  2. 修复GRUB引导
    若更换硬盘或系统无法启动,需重新安装GRUB:
    (1)从Live USB启动,挂载目标根分区(/dev/sdb1)和/boot/efi分区(若有):

    sudo mount /dev/sdb1 /mnt
    sudo mount /dev/sdb2 /mnt/boot/efi  # 若/boot/efi是单独分区
    

    (2)挂载虚拟文件系统:

    sudo mount --bind /dev /mnt/dev
    sudo mount --bind /proc /mnt/proc
    sudo mount --bind /sys /mnt/sys
    

    (3)进入chroot环境:

    sudo chroot /mnt
    

    (4)重新安装GRUB:

    grub-install /dev/sdb  # 目标磁盘(如/dev/sdb)
    update-grub
    

    (5)退出chroot并重启:

    exit
    sudo umount -R /mnt
    sudo reboot
    
  3. 调整分区大小(可选)
    若目标分区比原分区大,可使用GParted扩展分区:
    (1)打开GParted,选择目标分区(如/dev/sdb1)。
    (2)右键选择“Resize/Move”,拖动滑块至最大可用空间,点击“Apply”。
    (3)调整文件系统大小:sudo resize2fs /dev/sdb1(适用于ext4文件系统)。

四、注意事项

以上方法覆盖了Ubuntu分区数据迁移的常见场景,选择时需根据数据量、系统版本、硬件差异灵活调整。操作前做好备份是避免数据丢失的关键!

0
看了该问题的人还看了