免重装完整迁移ubuntu18.04系统方法

需求

年迈的120G sata固态捉襟见肘,这次升级到500G nvme但不想重装系统配环境。
计划对ubuntu18.04进行全盘迁移。

方法

从小硬盘迁移到大硬盘理论上不存在问题,需要注意几个细节。
准备一个ubuntu18.04的系统U盘做引导(类似winPE的作用),开机选择Try Ubuntu without install
使用lsblk命令获取硬盘序号,注意最后一列挂载信息必须为空,否则无法迁移。

sda           8:0    0 121.6G  0 disk 
├─sda1        8:1    0 512.4M  0 part 
└─sda2        8:2    0 121.1G  0 part
nvme0n1     259:0    0 465.8G  0 disk 

那么对应的磁盘复制命令为(类似早年ghost磁盘对拷)
dd if=/dev/sda of=/dev/nvme0n1 bs=1G
默认bs=512速度较慢,外置ngff硬盘盒道内置nvme大约120MB/s,可视情况可适当提高数值。
完成后500G硬盘的前120G会出现和原来一致的efi和rootfs分区,后面为unallocated free space
使用gparted对分区进行扩展,保存退出即可。
这样的好处的新旧磁盘UUID不会发生变化,也就无需编辑新磁盘中的/etc/fstab开机挂载参数。
若要同时保留原磁盘则需重新生成UUID并对应修改fstab进行适配。