新增SSD又懒得重装Linux折腾一番所以需要将现有的Linux直接迁移到新的硬盘中去,下面是我的做法:
首先将硬盘装好后分区,并格式化。
最好不要mount新的分区。
然后开始迁移
查看新增硬盘分区
lsblk
利用dd命令将现有分区拷贝一份镜像到新硬盘的系统分区中
dd if=/dev/nvmexxx of=/dev/sdaxx
其他分区也是同理。
然后
umount /dev/sdaxxx // 如果mount了新的分区操作之前先卸载
e2fsck -f /dev/sdaxxx
resize2fs /dev/sdaxxx
此外,dd命令会将uuid也拷贝过去。
迁移完成后新分区里的系统还不能启动。
我的做法是在cdlinux中将现有分区UUID修改成其他
uuidgen | xargs tune2fs /dev/nvmexxx -U //把刚刚dd的全部修改。。
然后chroot到新的系统分区中,我用的arch就是arch-chroot命令:
mount /dev/nvmexxx /mnt
arch-chroot /dev/mnt
然后修复下initcpio:
mkinitcpio -P
Over,Grub配置都不用更新或者修改就可启动迁移到新分区里的linux了!!!
修正2018/12/24
如果将原来的分区删除后还是需要更新Grub配置的,只需要
mkinitcpio -P
//之后
grub-mkconfig -o /boot/grub/grub.cfg