

























我把HDD上的Linux迁移到SSD上,重装系统太麻烦了,所以我直接拷贝整个系统,然后重建引导恢复,以下是记录。
首先把SSD换上去,HDD用硬盘盒连接。
从U盘启动后,将SSD分区做好,分别将SSD系统盘和HDD系统盘挂载到某个路径,例如:
对于SSD,我分为 /dev/sda1 和 /dev/sda2,前者用于EFI引导,后者为系统盘。
然后用rsync同步数据:
# rsync -av --progress /mnt/ /data/
等待同步完成之后,进入 /data/etc 编辑 fstab 文件,将原有路径替换为新的。可以使用 blkid 或者 lsblk -f来查看UUID。
接下来就是重建引导。
这一段加于2020.06.18
如果是一块硬盘,想要做到换个文件系统之类的,比如我就从btrfs切换到了ext4,方案如下:
cd /opt && tar cvf data.tgz /mntsudo umount /mnt && mkfs.ext4 /dev/<btrfs文件系统所在盘符例如我的是sda2>tar xvf data.tgz -C /等待解压完成之后,进入 /mnt/etc 编辑 fstab 文件,将原有路径替换为新的。可以使用 blkid 或者 lsblk -f来查看UUID。
接下来就是重建引导。
更新grub之前要先挂载一些东西,否则会报错:
$ sudo mount --bind /dev /data/dev
$ sudo mount --bind /sys /data/sys
$ sudo mount --bind /proc /data/proc
$ sudo mount /dev/sda1 /data/boot/efi
然后chroot进去,并且更新EFI引导:
$ sudo chroot /data
$ sudo apt-get install --reinstall grub-efi
$ sudo grub-install /dev/sda
$ sudo update-grub
由于我用的ext4,为SSD优化,更改fstab,加入以下选项 discard,noatime,所以大概长这样:
UUID=刚才更新的UUID / ext4 discard,noatime,errors=remount-ro 0 1
首先检查fstab是不是有问题,如果有的话,改之;然后检查 /etc/initramfs-tools/conf.d/resume 的UUID有没有问题,有的话,改之。
然后执行 sudo update-initramfs -u 之后重启。
搞定!这样比重装系统还是快多了,懒得重装然后重新配置。
参考资料:
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。