引言
UbuntuServer系统的Sata硬盘老旧出现故障了, 新买的nvme硬盘已经到货,准备进行更换,以下是数据转移操作步骤。

整个硬盘拷贝到新硬盘里
1
|
$ sudo dd if=/dev/sda of=/dev/nvme0n1 bs=4M status=progress
|
更新硬盘GUID
因为dd命令会把硬盘的GUID也会拷贝过去,为了区别新老硬盘,使用下面命令进行更新。
1
2
|
# randomize-guids
$ sudo sgdisk -G /dev/nvme0n1
|
更新硬盘EXT4分区UUID
同上
1
2
3
4
5
|
# 强制检查ext4格式的分区
$ sudo e2fsck -f /dev/nvme0n1p2
# 生成uuid并设置到ext4分区
$ uuidgen | xargs tune2fs /dev/nvme0n1p2 -U
|
修复硬盘挂载点
上一步硬盘已经可用了,现在把系统文件中相关通过uuid挂载硬盘的地方修复一下。
1
2
3
4
5
6
7
8
9
|
# 系统文件挂载点
$ vim /etc/fstab -> /dev/disk/by-uuid/2df0b934-xxxx-4aa6-xxxx-e84ff577926d / ext4 defaults 0 1
# 引导挂载点
$ vim /boot/grub/grub.cfg -> :%s/2df0b934-xxxx-4aa6-xxxx-e84ff577926d/4857f440-xxxx-4a85-xxxx-e8c35a7145d8/g
# 重启更新
$ sudo reboot
|
硬盘扩容
因为dd命令会把容量信息也会写到新硬盘里,如果新硬盘的大小大于老硬盘,这时我们要更新扩展一下分区的大小
1
2
3
|
# 新硬盘容量大于老硬盘使用,这里新硬盘是1T,老硬盘是256G,下面命令直接将分区填满剩余空间
$ sudo growpart /dev/nvme0n1 2
$ sudo resize2fs /dev/nvme0n1p2
|
参考
记一次Ubuntu完美迁移系统盘的折腾
每天学一个 Linux 命令(81):e2fsck
Boot-Repair(GUI迁移工具)
1
2
3
4
5
6
|
$ man sgdisk
$ man e2fsck
$ man e2fsck
$ man tune2fs
$ man fstab
$ man growpart
|