128G 小盘实在不够用,每天都看还剩多少空间提心吊胆。我买了东芝 RC500 256G 把原厂盘换下来。128G 盘装进硬盘盒里当资源盘 / Win to go 还不是美滋滋?

首先大部分笔记本都没有俩M2槽,要想换成新盘就要把老盘上的系统转移过去,就必须能同时读取两个盘的数据。因为老盘是 PCIE 协议的,我就上淘宝上买了个金胜的40块钱的硬盘盒。

新盘装上,老盘拆下来装进硬盘盒。对拷期间两个盘都不能用,所以我就拿之前烧录的 ArchISO U盘当临时系统。三个盘全部插上,启动项选择 ArchISO。

我把两个对应的根目录分区挂在 /mnt/old//mnt/new 上。因为我不准备复制 /boot 所以就没挂载 EFI 分区。反正我的 /boot 里没什么配置,只是内核文件和我再不想要的 refind

我原来的分区方式是 一个 ext4 区挂载到 /,一个 EFI 区挂载到 /boot,直接使用 EFISTUB 启动。

Arch Wiki 上建议使用 rsync 进行数据复制。

我按着 Wiki 上写的运行

rsync -qaHAXS /mnt/old /mnt/new

等了十几分钟之后复制完了,然后 cd/mnt/new 之后发现怪怪的……

/mnt/new/ 里面还有个 old 文件夹,里面才是原来的数据。

想了想也很正常,平时 cp 一个文件夹也是这个行为。

不过 rsync 的语法与 cp 不同。

如果在源目录末尾加一个 / 运行:

rsync -qaHAXS /mnt/old/ /mnt/new

就是我想要的效果了。这会把 old 目录下的所有文件放到new里,而不是再创建一个文件夹。cp没有此行为。

然后就可以卸载旧盘了,为了方便我把两个都卸载了,然后把新盘重新挂载到/mnt

然后挂载 EFI 到 /mnt/boot 上。

然后用 genfstab /mnt -U > /mnt/etc/fstab 重新生成挂载文件,并检查一下。

arch-chroot 进去,重新 pacman -S linux intel-ucode/boot 下的必要启动数据就可以恢复了。

最后用efibootmgr加上新盘的启动项,重启完事!