Ubuntu文件系统迁移常见方法及步骤
rsync是Ubuntu系统迁移的高效工具,可保留文件权限、时间戳、符号链接等属性,适用于本地或远程迁移。
本地迁移示例:
sudo rsync -avzh --exclude={"/dev/*","/proc/*","/sys/*","/tmp/*","/run/*","/mnt/*","/media/*","/lost+found"} /source/directory/ /destination/directory/
参数说明:
-a:归档模式(递归传输+保留属性);-v:显示详细过程;-z:压缩传输;--exclude:跳过虚拟文件系统和临时目录。sudo rsync -avz -e ssh user@remote_host:/source/path /local/destination
适用场景:新旧电脑系统版本一致(如Ubuntu 22.04→22.04),且需增量同步数据。
Clonezilla是开源磁盘克隆工具,可创建系统镜像并恢复到新硬盘,支持增量备份和加密。
操作步骤:
① 下载Clonezilla ISO,用Rufus制作启动U盘;
② 从U盘启动,选择“device-image”模式(镜像→设备);
③ 选择源硬盘(如/dev/sda)和目标硬盘(如/dev/sdb),确认分区大小匹配;
④ 开始克隆(进度条显示完成);
⑤ 重启电脑,从目标硬盘启动。
注意事项:
通过tar打包系统核心目录(/home、/etc、/var),可迁移个人配置和软件环境。
备份步骤:
sudo tar -czvpf ubuntu_backup.tar.gz --exclude={'/proc','/sys','/dev','/run','/tmp'} /home /etc /var
恢复步骤:
① 新系统安装完成后,挂载目标分区(如/dev/sda1挂载至/mnt/newroot);
② 解压备份文件:
sudo tar -xzvpf ubuntu_backup.tar.gz -C /mnt/newroot
适用场景:跨版本迁移(如Ubuntu 20.04→22.04),需手动恢复软件包和引导。
dd命令按扇区复制整个磁盘或分区,生成与源磁盘完全一致的镜像,适合硬件完全一致的场景。
操作示例:
sudo dd if=/dev/source_disk of=/dev/target_disk bs=4M status=progress conv=noerror,sync
参数说明:
if:输入文件(源磁盘,如/dev/sda);of:输出文件(目标磁盘,如/dev/sdb);bs:块大小(提高速度,建议4M);conv=noerror,sync:忽略错误并同步写入。若系统使用LVM(逻辑卷管理),可灵活迁移数据到新物理磁盘,无需重新分区。
操作步骤:
① 添加新磁盘并创建物理卷:
sudo pvcreate /dev/new_disk
② 扩展卷组(VG):
sudo vgextend volume_group_name /dev/new_disk
③ 扩展逻辑卷(LV):
sudo lvextend -l +100%FREE /dev/volume_group_name/logical_volume
④ 调整文件系统大小:
sudo resize2fs /dev/volume_group_name/logical_volume # ext4文件系统
适用场景:系统使用LVM管理磁盘,需扩展存储或更换物理磁盘。
无论使用哪种方法,迁移后需完成以下步骤:
① 修复GRUB引导(双系统或更换硬盘时):
sudo update-grub
sudo grub-install /dev/target_disk # 如/dev/sdb
② 修改分区UUID(dd克隆后必做):
sudo blkid # 查看新分区UUID
sudo nano /mnt/newroot/etc/fstab # 替换旧UUID为新UUID
③ 更新硬件驱动(硬件变更时):
sudo ubuntu-drivers autoinstall
④ 验证系统完整性:
df -h # 检查挂载点
systemctl list-units --type=service # 检查服务状态