Linux系统迁移
说在前面:下面有几个教程链接,我都是通过这几个链接来完成的系统备份与系统恢复。并且遇到过一些问题,踩过一些坑。建议先看完我的说明再进行操作,少走弯路。没有图是因为下面分享的几个链接都说得太详细了。我只负责填坑。
当我们在用Linux时,总是会经常性的重装系统。重装系统是一件非常简单的事情,但是装好后,对于常用软件的安装和系统配置,是一件让人非常头大的事情。装系统十分钟,配置软件24小时。
因此,在我们安装好并且配置好一个系统以后,在用着非常舒服的时候,做一个系统备份。当电脑出问题时,把备份恢复。相当于重装一次系统,但是这个系统装好后就是一个完美的状态。不用进行任何配置,是一件非常棒的事情。
备份系统的方法有很多。第一个就是将系统文件打包备份,在一块新硬盘上解压。还有就是将系统打包成iso,然后制作成LiveCD启动盘,之后就是装系统的流程。第一种办法简单粗暴,但是第二种方法显得比较灵活,可操作性也更强,更不容易出错。个人是比较喜欢第二种的。
1、制作ISO镜像文件
有图形界面的软件肯定是选择图形界面的软件啦。这种软件有很多,因为我的系统是Ubuntu,所以我选用的systemback。其它还有很多软件,网上都是有教程。 但是ISO镜像文件有一个限制,就是备份的系统打包后不能超过4G。systemback有一个解决方法,我在Ubuntu18.04上没有试验成功,更高的版本肯定也不行。不过感觉16.04应该可以。 另外,systemback不支持nvme协议。m.2的固态有两种协议,如果支持的是nvme协议的话,系统是安装不上的,识别不了这个类型的硬盘。
systemback备份恢复ubuntu教程。
我是安装上述教程做的,但是最终做出来的ISO还是没有办法安装(因为超过了4G,用了其它方方法生成ISO)。但是备份的系统还是可以制作LiveCD的。 直接省去制作ISO的步骤也是挺好的。
2、备份分区
备份分区的方法有很多。tar打包所有分区,还是dd啥的应该都可以的。有图形界面的软件,当然是首选图形界面软件了。我这里使用了一个非常方便的软件再生龙。
可以备份整个硬盘,也可以选择备份分区。
- 备份整个硬盘的话,恢复起来非常的方便。恢复以后系统能直接启动。相当的方便,比安装系统可快多了。 缺点:会覆盖掉硬盘的所有数据。备份整个硬盘当然只是备份硬盘的文件,加分区表信息。备份出来的文件不会太大的。我用了很久的系统,连home分区都备份了,也只有17G。备份也恢复过程也都挺快的,如果是新安装的系统,应该不会超过10G。(这里说明一下:假设备份的硬盘是500G的,你备份完,可能只有8G左右,然后恢复到新硬盘上,这里有个要求,就是新硬盘不能比旧硬盘小。不然恢复不了。(+++ 当需要把分区恢复到比备份分区小的话,用PE工具使用DidkGenius的克隆分区功能,克隆号后,在修复时,对fstab中的分区UUID进行响应的修改)当新硬盘比较大的话,多出来的空间会变成空闲的,可以创建新分区。
- 备份分区。备份分区相较于备份整个硬盘来说,灵活性高得多。不会覆盖掉硬盘数据,而且当硬盘已经有一个系统了,要把这个备份当成一个新系统装进去,实现双系统也是没问题的。但是对于不太会装系统不太懂Linux的人来说操作起来比较麻烦。
当你是一块新硬盘,要安装Linux备份时,肯定是选第一种方式。其余时候都是用第二种方式。
再生龙这个软件去看网上的教程,步骤虽然很多,但都是无脑操作,跟着做就行了。
简单就实现了备份硬盘并且恢复。备份和恢复分区和备份硬盘操作是一样的,也非常简单。
但是备份分区会存在一个问题。**当电脑如果是双系统时,比如windows系统已经有一个ESP分区了(ESP是windows下的EFI分区)。恢复Linux会再产生一个ESP分区。这个时候,可以选择备份恢复ESP分区,也可以不备份。当恢复ESP分区时,一块硬盘就有两个ESP分区了。理论上来说应该是不会有任何问题。我没有测试,不做说明。当我们只需要一个ESP分区时,就不恢复Linux 的ESP分区。通过LiveCD来重新生成ESP分区的引导文件。这样就把Linux的引导文件安装到了Windows使用的ESP分区中。这样一块硬盘就只有一个ESP分区了。
备份分区
如果只有/分区,就只备份这一个分区,如果有/home分区,就/和/home一起备份。ESP分区备不备份,上面已经说明了,随便。我是没有备份ESP的,因为我只需要一个ESP分区。
恢复以后需要用Linux的LiveCD系统,来为恢复的系统生成引导。之前我对于引导问题,真的是头大,在这次操作以后,发现非常的简单。
再生龙恢复系统
再生龙备份恢复系统
注意: 恢复过程成会提示,Linux系统恢复后,引导会有问题,需要修复grub,并且修改fstab,这个不用管,下面两个教程会讲如何修复,非常的详细。
Linux修复引导
Linux修复引导
Linux修复引导是我找的两个参考教程。第一次用得好好的,不知道为啥第二次就不行了。
上面两个Linux修复引导
教程仅供参考。这里更新我现在解决以后的教程。
LiveCD Linux修复grub引导教程
[解决update-grub不识别系统]
-
制作linux LiveCD。这个很简单,下载好ISO映像文件,然后烧录到U盘就行了。软碟通或者rufus都行。
-
通过LiveCD 启动到Linux 试用。然后运行下面的命令chroot到需要修复的系统。
$ sudo fdidk -l
用来查看自己/
分区和EFI
分区。我的对应分区分别是nvme0n1p6
和nvme0n1p1
。网上的教程都都是将EFI
挂在到/mnt/boot
。我测试过不行,我看网上都是针对MBR分区的修复,可能是这个原因,最后google找到一篇,说挂载到/mnt/boot/efi
。否则,按照上面的操作,update-grub
或者grub-mkconfig
会识别不到系统。这样,修复后grub什么内容都没有,会开不了机。(如下图,红色框内的部分是没有的,会导致开不了机。修复后的,按我说的挂载,就会有红色框框内的前4行内容,最后的windows boot manager是在修复后,重启进入到ubuntu中,liveCD中不能识别好像是缺少某个软件包。重新运行sudo update-grub
识别到的,这样,修复后的grub就能启动windows了)
$ sudo mount /dev/nvme0n1p6 /mnt
$ sudo mkdir /mnt/boot/efi
$ sudo mount /dev/nvme0n1p1 /mnt/boot/efi
$ sudo mount --bind /proc /mnt/proc
$ sudo mount --bind /dev /mnt/dev
$ sudo mount --bind /sys /mnt/sys
$ sudo chroot /mnt
- 修复grub。
运行下面的命令进行修复。我的顺序是:
$ sudo apt purge grub-pc
$ sudo apt install grub-pc
$ grub-mkconfig
$ grub-install /dev/nvme0n1p
$ update-grub
至此,修复完成。修复grub应该没有那么复杂,update-grub似乎就是调用grub-mkconfig。具体步骤是怎么样的,我已经不想考证了,总之,这就是我修复过程运行的所有命令。
- 修复fstab。
如果跟着上述教程操作都没有问题了的话,接下来就是修改fstab。在恢复系统下,通过LiveCD系统,用chroot命令登录到待恢复的系统,然后修改/etc/fstab
这个文件里面的内容。由于恢复分区是带着分区的uuid的,所以/和/home都是没有问题,所以恢复的分区uuid都还是原来的。但是/boot/efi是有问题的,它的uuid应该是新硬盘ESP分区的uuid,但fstab里面的值还是之前的uuid,我们需要将它的uuid修改成目前硬盘上ESP分区的uuid。(如果是备份并且恢复了ESP分区的话,这段话的操作就没必要看了)。通过sudo fdisk -l
和sudo ls -l /dev/disk/by-uuid
这两个命令来找到ESP分区的UUID,然后在fstab中修改。修改好后,重启电脑,就能看到我们硬盘里面所有系统,要启动哪一个就选哪一个。
根据上面两个命令,找到EFI和SWAP分区的UUID,没有SWAP的就不用管SWAP,在fstab中进行修改。
$ sudo vim /etc/fstab
完成上面的所有修复步骤以后,重启。好了,现在grub能出来了。出不来的话说明修复不成功或者,ubuntu不是第一启动项,请再检查看看。这时的grub是没有windows启动项的,进入ubuntu后,运行sudo update-grub
,识别到windows启动项。
OK,通过上面的操作就完成了备份和恢复系统。被我sudo rm -rf /
的系统又回来了O(∩_∩)O~~
另外,强烈建议:
不管是双系统还是只有Linux,强烈建议/
,/home
,EFI
都要用单独的分区,出问题好解决。另外,/home
分区不建议留太大,不要把/home
拿来存数据,太危险了(参照windows,Users
目录下仅仅是存一些用户数据而已,而不是用户自己用来保存文件)。而且备份分区的时候,太大的话不方便,要浪费很多时间。双系统的,建议直接设置开机挂载windows磁盘,数据放windows磁盘上。单Linux的,也一样,建ntfs分区,设置开机挂载,挂载位置和双系统一样,/media/river/分区名
,在文件管理器添加快捷方式就行了。
这里贴出我的挂载教程。
最好一个月备份一次系统。因为不知道linux啥时候会出问题,再一个,再生龙的备份速度和容量还是非常nice的,不会花费很多时间就搞定了。