以下是通过网络和外部存储迁移系统的完整流程。假设你有外部 USB 硬盘/U盘或网络传输条件(如 SSH),并能在目标电脑上启动 Linux Live USB(如 Ubuntu LiveCD)。
第一步:在旧电脑准备系统备份
方案 A:用 rsync
直接备份(推荐)
# 挂载外部硬盘(假设挂载到 /mnt/backup)
sudo mkdir -p /mnt/backup
sudo mount /dev/sdX1 /mnt/backup # sdX1 是外部硬盘分区
# 使用 rsync 全量备份(排除临时文件和外部硬盘自身)
sudo rsync -aAXhv --exclude={"/dev/*","/proc/*","/sys/*","/tmp/*","/run/*","/mnt/*","/media/*","/lost+found"} /* /mnt/backup/
方案 B:打包成压缩文件(适合网络传输)
sudo tar -cvpzf /mnt/backup/backup.tar.gz --exclude=/mnt/backup --exclude=/home/*/.cache \
--exclude=/var/cache --one-file-system /
第二步:将备份文件转移到新电脑
- 外部硬盘:直接拔下硬盘挂载到新电脑
- 网络传输(例如用
scp
):# 在新电脑执行(确保已连网): scp -r username@旧电脑IP:/mnt/backup/backup.tar.gz /目标路径/
第三步:在新电脑恢复系统(需 Live USB)
- 启动目标电脑:用 Ubuntu Live USB 启动
- 准备分区:
sudo gparted # 创建分区(如 /dev/sda1 为根分区) sudo mkfs.ext4 /dev/sda1 # 格式化为 ext4 sudo mount /dev/sda1 /mnt
- 恢复备份:
- rsync 备份恢复:
sudo rsync -aAX /外部硬盘路径/ /mnt/
- 压缩包恢复:
sudo tar -xvpzf backup.tar.gz -C /mnt --numeric-owner
- rsync 备份恢复:
- 创建必要目录:
sudo mkdir -p /mnt/{proc,sys,dev,run,tmp}
第四步:修复系统引导和配置
- Chroot 到新系统:
sudo mount --bind /dev /mnt/dev sudo mount --bind /proc /mnt/proc sudo mount --bind /sys /mnt/sys sudo chroot /mnt
- 重装 GRUB 引导:
grub-install /dev/sda # sda 是目标磁盘 update-grub
- 更新硬件配置:
# 重新生成 initramfs(适应新硬件) update-initramfs -u # 若显卡驱动不同,重装驱动(可选)
第五步:解决常见问题
- 调整文件系统 UUID:
sudo blkid # 查看新分区 UUID sudo nano /mnt/etc/fstab # 替换 UUID 为实际值
- 修复网卡配置(如有):
sudo rm /etc/udev/rules.d/70-persistent-net.rules # 删除旧网卡规则
- 重启验证:
exit # 退出 chroot sudo reboot
注意事项
- 空间要求:备份设备需 ≥ 原系统已用空间的 1.2 倍
- 硬件差异:
- 若新旧电脑 CPU/显卡差异大,建议在新电脑首次启动时选择
Recovery Mode
- 服务器迁移通常更简单(无显卡驱动问题)
- 若新旧电脑 CPU/显卡差异大,建议在新电脑首次启动时选择
- 数据安全:
- 操作前用
df -h
确认分区空间 - 对关键数据额外备份(如
/home
)
- 操作前用
💡 替代工具推荐:
- Clonezilla Live(基于网络的磁盘克隆)
ddrescue
(磁盘镜像级复制)- Rescuezilla(图形化克隆工具)
按照此流程,即使硬件不同,也能成功迁移系统。重点在于正确恢复 GRUB 引导和更新硬件驱动配置。