[Share Experiences] 使用timeshift管理btrfs文件系统快照,以及在两个系统之间切换
Tofloor
poster avatar
AMZ
deepin
2024-04-03 21:03
Author

我是用timeshift这款软件来管理btrfs快照

首先我们先明白一点,快照必须基于btrfs的子卷,创建的快照实际上也是创建了另外一个新的子卷,它和原来的子卷共享着相同部分的数据,因此我们连续创建10个快照占用的空间也没多大

既然需要子卷,那么创建什么样的子卷,如何管理每个发行版也不一样,其中opensuse使用的子卷似乎是最多的这也就带来了管理难度,好在它具有一整套方案来契合,而我们今天介绍的这款软件在btrfs的功能上只支持所谓ubuntu类型的子卷方案,即@为根,@home为家目录,这也是软件的取舍,当这一切被规定死了以后,逻辑也就变得清晰简单,我所使用的就是这个方案。

sudo apt install timeshift

进入向导,选择BTRFS模式

1.png

选择快照存放的磁盘分区,因为我只有一个分区,使用btrfs最好的方式就是一个分区,一个分区下可以共享空间,共享数据块。这里默认它很稳定和安全,因为觉得不安全就不必选择。
2.png

在这一步我们可以设定自动化快照的规则,按照时间、也可以按照每次启动,可以启动最起码证明系统某种程度是好的,当出现问题我们可以随时利用live恢复。
3.png

下一步我们勾选是否让home也创建子卷,这里其实涉及到我们对数据的理解,同一时间的两个子卷全部快照可以方便我们整体恢复到统一时间点,但是问题在于home是我们的工作区,这里面会生产太多琐碎的小文件,对于文件的备份要采用云同步或者其他磁盘这样的手段而非快照,因为即使你恢复到一个小时前,那么这一个小时的数据也将丢失,当然,在还原的时候倒是支持只还原@,生产数据和系统数据要分别对待。
4.png

至此设置完毕,软件也对风险做了提示,其实这里还是那句话,注重个人文件的多渠道备份,至于在本磁盘的一亩三分地,任何硬件故障都是致命的。

5.png

进入软件界面后,我们可以手动点击创建1-2秒就创建好了,这种感觉和那种拷贝文件搞的电脑风扇狂转显然不是一个级别

鼠标移动到标识可以看出他们代表了什么意义,列表中列出了时间线和备份的系统名称、当前空间容量。
6.png

我们通过命令透视一下子卷列表,发现两个是主系统子卷、剩余两组分别是deepin和uos两个系统配套的快照
7.png

点击浏览,可以在文件管理器中看到居多文件夹,分别对照了前述的每日、每月、启动时等,里面存放着相应的快照

对于选中某一快照恢复可以大胆执行,因为同时他会将执行时的主系统创建为快照,并名称上重点标识,很好辨认。
8.png

大家也看到我的快照里出现了两个系统,对于一个关系deepin和uos发展进度的用户,在他们还不支持btrfs配套方案的时候这样做是有利于两个系统随时切换的。

我没有单独创建/boot,实在是没必要,我现在是efi btrfs两个分区,我使用swapfile交换文件的方式替代swap单独的分区,缺点是目前不能休眠,只能交换。其中由于整个磁盘分区各自uuid不变,efi引导grub启动,grub可以轻松识别btrfs下的路径 /@/boot/grub/grub.cfg 这个配置文件,deepin和uos各有一份属于自己的,包括他们的 fstab 因此在我切换系统的时候系统会直接重新启动而不报任何错误。这也和我fstab采用了 subvol=@ 这样的参数,而非子卷id的方式,因此哪怕我live手动改一下子卷名称(就像文件夹一样),重启即可切换系统。

我为什么不去搞grub直接引导双系统,因为uos和deepin或多或少在控制中心加入了守护程序,他们会轻易改变grub.cfg的内容,目前的这种方式足以满足我,我不会经常在两者横跳,而是采用uoshome在工作,当deepin23有更新才会切回来进行测试和体验。

我希望在不久的将来deepin可以容纳两种全盘方案,ext4和btrfs,同时对全盘方案进行自己的规定和设计,也就是不可调,因为需要配套相应的软件,不能使情况变得太过于复杂,自定义按照当然会保留,可是那种情况下只能使用简单的备份工具而不能体验全盘按照的高级功能!

展望:

1、基于全盘btrfs分区方案下,系统安装器支持创建子卷并把系统安装在其中;

2、更新系统时联动apt创建更新前快照,并建立grub高级选项在系统无法启动时选择之前的系统启动;

3、按照软件前结合应用商店联动apt创建安装前快照;

4、开发快照管理软件纳入以上几个分类以及手动创建、甚至诸如单独快照的opt目录、home目录,结合timeshift的自动化快照逻辑创建。

Reply Favorite View the author
All Replies

No replies yet