Debian12系统使用rsync方式迁移磁盘踩坑记录

ZhangJian 2026-03-13 n次浏览 学习记录 编辑

我的NAS Debian12系统运行在1T机械硬盘上,硬盘运行时间已达到好几万个小时,接近寿命,怕突然损坏,刚好遇到io瓶颈突然就卡死,就开始折腾起迁移系统,升级成固态。

由于从大硬盘迁移到小磁盘 -> 500G SSD,直接打包磁盘所有内容这个方式好像不可以。尝试用clonezilla把分区备份出来,但是没成功恢复起来。

下面将使用rsync软件,总体来说迁移拷贝文件过程不难,前后花了两天时间搞定。

使用rsync软件的原因 可以排除不需要备份的目录,我的系统盘上有200g的数据不需要迁移,迁移成功的数据只有20多g。

总结:第一天卡在了分区格式不对上,第二天卡在无法启动。

我的启动方式是UEFI,通过这次学习了解了分区结构,UEFI和传统启动方式。在最开始前给新硬盘格式化分区,要注意先创建EFI分区

#提前做好格式化
fdisk /dev/sdb
g   #新建GPT分区表
n   # 新建分区   输入1 回车,+300M 回车
t    # 修改分区类型  选择分区1 输入 uefi 回车 (重要,第一天少打个t 格式不对不成功)
n   # 创建根分区 剩余全部空间分给/目录   输入2 回车 ,默认回车
w   # 保存分区表

给两个分区格式化 注意EFI分区格式

mkfs.fat -F32 /dev/sdb1
mkfs.ext4 /dev/sdb2

把新硬盘挂载到临时目录 /mnt/newroot,注意挂载顺序,先挂载根分区

mkdir /mnt/newroot
mount /dev/sdb2 /mnt/newroot
mkdir -p /mnt/newroot/boot/efi
mount /dev/sdb1 /mnt/newroot/boot/efi

拷贝系统文件 (不需要的拷贝目录 在exclude里面添加排除)

apt install rsync -y   #安装软件
rsync -aAXHv --exclude={"/dev/*","/proc/*","/sys/*","/tmp/*","/run/*","/mnt/*","/media/*","/lost+found","/root/smb/*"} / /mnt/newroot

-aAXHv 保留权限、ACL、硬链接等 --exclude 排除动态目录等

更新磁盘uuid文件

查看磁盘id blkid 并在 /mnt/newroot/etc/fstab 中正确挂载新磁盘的uuid

进入 chroot 环境修复引导 我尝试不成功,就不描述了。

启动不成功 看样子像是 uuid还是以前磁盘的。但是我确认fstab文件修改正确,说明启动还有其他配置文件导致不进系统。 /mnt/newroot/boot/grub/grub.cfg 这个文件里面的主分区要改成新磁盘的uuid,全部替换后,重启开机就正常了。

统计
文章数目 :
总字数 :
总浏览数:
建立时长 :