前言

好久不见,甚是想念。大家好,我是小沐。


这次的文章给大家带来的是上一次文章给大家提到过的一个备份软件Timeshift,实在不好意思,更新晚了,可能有小伙伴等久了。

当然让小沐决定快点更新这篇文章的动力是为了那些学ROS的“小马虎蛋”们(小沐是不会承认是我自己的!!),毕竟辛苦装好的环境,辛苦找的二次元“老婆”的壁纸(小沐都懂)一下子就因为崩掉的环境没了,简直就是噩梦!(小沐学弟:幸好我有备份O(∩_∩)O哈哈~ 小沐:给爷死!)这也说明了备份的重要性,能够及时找回丢失的数据可以最大程度的挽回我们的损失。


ps:本篇文章主要针对的是实体机的伙伴,如果使用虚拟机的话其实没有必要折腾这个软件(虽然不麻烦),完全可以使用虚拟机自己的快照功能,这里提醒各位看到这个文章的小伙伴,现在就去保存一份快照,先存着以防万一,一定要记得保存快照,一定要记得保存快照,一定要记得保存快照!!!

正文

其实一开始年轻的我当时还不知道学ros装环境装着装着整个系统就能崩溃的,我最一开始使用的版本还是Ubuntu 16.04(现在是Ubuntu 18.04),因为当时折腾双系统就整了很久,装好之后十分兴奋地花了一天的时间美化了一波界面,当时就飘了,觉的自己牛气的不行,然后我就迎来了我的第一个打击:我安装ros然后装错版本了……然后当时也是第一次接触linux,一个不小心就被忽悠了,也不知道谁来了一句:rm -rf / 解决一切,然后我就真打进去试了,兴高采烈的一个回车,你知道知道真相的我当时有多么绝望吗……(别试那个命令,你感兴趣的话可以拿队友的电脑试,前提是你确定不会被打死,嗯,可以自己百度了解)然后啊我就只能重装了。

为了避免这个情况,我小心翼翼的的安装了ros,然后我刚学了没两天,安装环境报底层错误,查找解决无果,于是再一次重装,噩梦,就这样在我的学习过程中我重装了无数次,然后某一天我感觉我学的差不多的时候我突然想起来Windows可以备份,那linux呢?由此开启了我对Linux的备份之路。


Ubuntu16的时候用的是最简单粗暴的dd,但是很麻烦,能叨叨很久,后来是用Systemback,那时候主要是考虑将系统做成iso镜像转移设备,现在使用Ubuntu18.04,然后我就又发现了一个备份神器——Timeshift!

Timeshift,是Linux下的是一款自由开源工具,可让你创建文件系统的增量快照。你可以使用 RSYNC 或 BTRFS 两种方式创建快照。这里这个快照其实和虚拟机的快照差不多,说白了这个软件就是为我们实体机创建了一份专属于我们实体机的快照,可以方便我们后期进入系统使用这个快照进行还原操作。


接下来我们来安装(针对的是Ubuntu哈,其他系统需要换命令):
打开终端,依次输入如下命令,这是三部命令,我给大家编上号:


1.sudo apt-add-repository -y ppa:teejee2008/ppa
这一步是因为TimeShift 尚未正式托管在 Ubuntu 和 Debian 仓库中。考虑到这一点,我们将运行该命令命令来添加 PPA


2.sudo apt-get update
更新一下


3.sudo apt-get install timeshift
安装Timeshift
安装之后在终端上输入timeshift就可以打开了


打开后就是这样:

选择一个你喜欢的方式,这里的两种方式有个简介


大家可以根据需求进行选择,但是值得注意的是BTRFS是和系统盘共存的,就是你要是系统盘坏掉没事,可以恢复,但是你把系统盘删了,那你就别想了,这个模式可以说是最像虚拟机快照的。因为它恢复起来十分的快速且与系统盘共存。


而RSYNC则是可以将快照存在linux文件系统的磁盘(windows和linux是不一样的,这个大家可以自行了解,文件格式是不一样的),也就是只要是个linux的格式盘就行,所以我们可以保存在除了系统盘外的盘或是直接外接一个磁盘将它在linux下格式化,这样我们就能在里面保存我们的快照了而且是彻底和系统盘分开的,但该模式的缺点是比较慢。


这里必须要提一下,RSYNC这个备份方式为我们提供了一种快速迁移系统并部署的可能性,我们在备份完之后相当于在备份盘有了一个一摸一样的系统,虽然不能直接用,但是我们可以用它直接在任意符合条件的电脑直接重新部署一个一模一样的系统,举个例子:我在我的电脑上的Ubuntu装好了ros、各种slam的功能包、开发好的导航包,然后我把这个系统备份,然后我学弟是个刚入门ros啥都没学的白纸,我为了让学弟快速的学习正确的知识,我就可以直接在学弟的电脑用这个备份重新部署一个一模一样的系统。

这就是快速迁移部署,有点docker的意思了,但是又不像docker方便。迁移服务器信息资料啥的都十分的方便。


接下来就是下一步,然后根据提示选择备份的位置信息等……

备份时间,这个说一嘴吧,就是我的设备内存其实不大,我也不用每天都,留一个环境配置好的最纯净的就好了,大家根据需求适配,不过最好是平时禁止,然后等大家尝试新代码的时候先备份一次系统,这样更好一点。

之后就遇到一个不太一样的地方RSYNC和BTRFS的用户这里其实是不一样的,大家不要看错了


RSYNC:

BTRFS:

设置完之后就是:

然后完成之后它就会进行自己的第一次备份了,不过第一次时间会长一点而且文件内容看你存了多少东西,最好找个大点的盘。我的磁盘系统是ros2go的,磁盘64GB,我自己又陆续配置了一些导航和slam功能包,我用的BTRFS备份,备份后是这样的:

还原主要针对情况有这么几类:


一.因为错误操作导致系统出现问题,这时我们可以安全进入系统,且正常操作,这样的话我们直接进入系统打开Timeshift选择我们的快照点击恢复根据提示选择还原磁盘进行还原就好。

选择好设备:


二.如果很不幸你不能进入系统了,那么这个时候我建议你拿出自己之前安装系统的U盘系统来,然后进入live CD系统连接网络安装Timeshift,然后进入软件进入设置找到保存的快照(如果在外接盘,记得插上盘),然后点击快照点回复进行还原即可。

提一嘴上文提到的,在另外的一台电脑上部署,也可以这样,我们把这台电脑当做不能进入系统的系统就好了。大家灵活一下哈。

结语

不知不觉就写了好多,感谢大家的观看,文章借鉴了很多前辈的文章,小沐也是技术有限,如果错误还请指出,小沐希望自己记录的同时可以帮助到需要的人!祝大家学习进步!!!

对了,小格和小沐建了一个交流群,如果大家感兴趣的话,可以加入哦!
群号:967688687