迁移自己的archLinux到新的硬盘时遇到了很多坑,记一下,说不定以后用的着
思路
-
借鉴了网上的各种操作,总体的操作思路就是克隆当前的分区到新的硬盘分区中,只是使用的工具各不相同,常见的是使用
tar
打包或者使用dd
直接复制分区 -
tar
命令相对于dd
来说效率比较低,且还需要手动解压到新分区,好处是留下了一个原系统的备份。个人在使用时还踩了坑,系统的体积比较大,处理器又比较渣,压缩过程中直接变僵尸,浪费了我一个晚上时间等待。 -
dd
相对来说比较好用,但是这里有个大坑,使用dd
命令前需要自己确保新的分区大小不小于原来的分区,当你使用dd
命令时,它不会自己检测大小,而是直接复制,结果复制完了新分区的空间,发现地方不够了才报错... 又是浪费大把的时间。 -
还有一些可视化工具,像Clonezilla,doClone等,都可以克隆系统,不过个人没有尝试。
解决
-
使用
dd
克隆分区之前,先使用gparted进行分区大小调整
注意: gparted不能安装在当前操作系统中,对于正在使用的分区,它将不能进行压缩操作。因此,需要安装在live USB
(即烧录到启动盘)或者其它的Linux操作系统中(对于多系统电脑)。个人使用的ubuntu 20.04
的启动盘,上面有预装的gparted
。
-
调整好分区大小后不要退出启动盘,直接使用
dd
命令复制分区到目的位置
-
踩坑: 由于
dd
也会将uuid
复制,此时原分区的uuid
与新分区的相同,如果这时退出启动盘进入系统,查看系统发现还是挂载的原来的分区(/dev/sda8)。
-
要想挂载新的分区,就需要改变两者的
uuid
,但使用这个问题中提供的命令时,发现需要将该分区卸载才能继续。对于正在运行的系统,/home
肯定是不能卸载的:
-
因此,继续在启动盘中进行更改
uuid
的操作
-
使用下面命令更新新分区的大小
$ sudo resize2fs /dev/sdb5
-
更改完成后,启动系统。挂载分区已经改变。
最后
- 只迁移了系统的
/
目录,/boot
目录并未迁移。也不影响系统运行速度,迁移/boot
可能还需要处理其它几个系统的引导,懒得搞了,以后再说吧。
网友评论