原来有一个512G硬盘安装了麒麟操作系统,现在要将这块硬盘中的系统拷贝到一个500G的硬盘中,因为目标磁盘空间小,所以不能直接用DD命令拷贝
方法如下
步骤一:
导出512G硬盘的分区结构表
sudo sfdisk -d /dev/sdd > disk_partition_layout.sfdisk
修改该文件,把sdc5的空间改小
把分区表导入到500G的硬盘中
sudo sfdisk /dev/sdd < disk_partition_layout.sfdisk
导入后lsblk分区信息如下:
用dd命令备份512G硬盘中各分区内容
sudo dd if=/dev/sdc1 of=./sdc1.img bs=1G status=progress
500G的硬盘分区sdd5内容是缩小的,所以512G的硬盘sdc5不能直接dd,用copy把该分区中的内容备份
将备份的img文件拷贝到500G硬盘对应的分区中,sdc5手动挂载,然后cp拷贝
sudo dd if=./sdc1.img of=/dev/sdc1 bs=1G status=progress
把500G硬盘插到底板,系统能正常启动,但是sdc5没有自动挂载,查看一下系统的/etc/fstab文件
因为sdc5没有用dd命令备份,所以uuid 和 label 名称与fstab文件中的不一致
用sudo blkid /dev/sdc5 查看分区UUID,然后替换/etc/fstab中的UUID
LABEL的名称用sudo e2label /dev/nvme0n1p5 DATA或者直接修改fstab文件,两者保持一致
修改后再次启动,系统会按fstab中的分区信息自动挂载