全网最详细!一步步带你在Fedora 40中设置Btrfs快照!

引言

Btrfs的快照功能为系统管理员和用户提供了一种灵活高效的方式来保护、管理和恢复数据。这项技术不仅节省存储空间,还增强了系统的稳定性和可用性。

Btrfs Assistant是一个GUI管理工具,使管理Btrfs文件系统变得更加简单。而Grub-Btrfs通过添加Btrfs快照子菜单来改进GRUB引导加载程序,允许用户引导到不同的快照。

本文分享了我在Fedora Linux 40(工作站版)上成功运行Btrfs Assistant和Grub-Btrfs的经验,我的桌面环境是GNOME版本46.2,使用的是X11窗口系统,当然文件系统是Btrfs。

什么是 Btrfs Assistant ?

Btrfs Assistant是一个GUI管理工具,旨在简化管理Btrfs文件系统的操作。

它提供了以下主要功能:

  • 显示Btrfs文件系统的元数据概况,帮助用户了解文件系统的结构和使用情况。
  • 提供简单的界面展示子卷(subvolume),可以显示是否有Snapper或Timeshift的快照。
  • 支持运行和监控Btrfs文件系统的Scrub(数据完整性检查)和Balance(数据平衡)操作。
  • 提供便捷的界面操作,可以轻松删除Btrfs文件系统中的子卷。
  • Snapper管理前端:
    • 查看、创建和删除快照。
    • 在不同发行版挂载的文件系统上恢复快照。
    • 从快照引导系统。
    • 从Live ISO恢复。
    • 查看、创建、编辑和删除Snapper配置。
    • 浏览快照并恢复单个文件。
    • 浏览文件在不同快照版本间的差异。
    • 管理Snapper的systemd单元。
  • Btrfs维护的前端:
    • 管理systemd单元。
    • 轻松管理defrag(碎片整理)、balance(数据平衡)和scrub(数据完整性检查)设置的配置。

什么是 Grub-Btrfs?

Grub-Btrfs改进了GRUB引导加载程序,通过添加一个Btrfs快照子菜单,使用户能够引导到快照中。它支持手动创建的快照,以及由Snapper、Timeshift和Yabsnap创建的快照。特别是在系统无法正常引导时,更显得其重要性是多么地大。通过Grub-Btrfs的功能,用户可以轻松地选择并引导到之前的快照,这样即使发生严重故障,也能快速恢复到一个稳定的系统状态。

它主要提供的功能包括:

  • 自动列出存在于Btrfs根分区上的快照。
  • 自动检测/boot是否位于单独的分区中。
  • 自动检测快照中/boot目录下的内核、initramfs和Intel/AMD微码。
  • 自动在grub.cfg中创建相应的菜单条目。
  • 自动检测Snapper、Timeshift和Yabsnap快照的类型、标签、触发器、描述和注释。
  • 如果使用提供的Systemd/OpenRC服务,自动生成grub.cfg。

建置 Btrfs Assistant

步骤一

要下载Btrfs Assistant,您可以在Fedora仓库中找到它,名称为btrfs-assistant。

要下载并安装它,请运行以下命令:

sudo dnf install btrfs-assistant

这将从Fedora的软件仓库中安装Btrfs Assistant到您的系统中。安装完成后,您可以在应用程序菜单中找到并启动它。

步骤二

打开Btrfs Assistant。在“快照设置”选项卡中,你需要首先创建一个全新的配置文件。现在,我将为我的根目录创建快照。点击“新建配置”,然后按照下面显示的设置进行操作。

之后,点击“应用systemd更改”,然后点击“保存”。

现在你会看到以下的屏幕。

步骤三

在“快照设置”选项卡下,我们将设置“快照保留”中的数值。

以下是我选择使用的建议数值。勾选“启用时间线快照”,系统会每小时自动为您创建一个快照。

对于其他使用者情况的建议数值,请参考这里

步骤四

在Btrfs维护选项卡下,以下是建议的设置。在更改设置后不要忘记点击“应用”。

步骤五 (选择性安装)

要在每次运行dnf命令之前和之后自动创建快照,您需要安装一个名为python3-dnf-plugin-snapper的软件包。您可以运行以下命令:

sudo dnf install python3-dnf-plugin-snapper

这里有一个例子:如您所见,在执行了sudo dnf update命令后,系统自动创建了两个快照。类型为pre的快照是在执行sudo dnf update之前创建的,而类型为post的快照是在执行sudo dnf update之后创建的。

这里是另一个例子:执行了sudo dnf remove htop命令后,系统自动创建了两个快照。

如何使用 Btrfs Assistant

现在您已经完成了设置Btrfs Assistant的步骤。如果您想了解未提及的其他功能,请参考Btrfs Assistant的wiki页面

建置 Grub-Btrfs

步骤一

我们无法在Fedora的软件仓库中安装Grub-Btrfs,因为它不在其中。我们得先通过以下命令从GitHub上将项目克隆下来。

git clone https://github.com/Antynea/grub-btrfs.git

之后,运行以下命令切换目录:

cd grub-btrfs/

步骤二

为了要编辑配置文件,我们必须运行以下命令:

nano config

在这一部分有相当多的地方需要编辑,请仔细检查以确保所有的更改都是正确且没有错误的。

在配置文件中:

取消注释并修改下面这行

#GRUB_BTRFS_SNAPSHOT_KERNEL_PARAMETERS="rd.live.overlay.overlayfs=1"

使其成为

GRUB_BTRFS_SNAPSHOT_KERNEL_PARAMETERS="systemd.volatile=state"

 取消注释下面这行

#GRUB_BTRFS_GRUB_DIRNAME="/boot/grub2"

使其成为

GRUB_BTRFS_GRUB_DIRNAME="/boot/grub2"

 取消注释并修改下面这行

#GRUB_BTRFS_MKCONFIG=/usr/bin/grub2-mkconfig

使其成为

GRUB_BTRFS_MKCONFIG=/sbin/grub2-mkconfig

 取消注释下面这行

#GRUB_BTRFS_SCRIPT_CHECK=grub2-script-check

使其成为

GRUB_BTRFS_SCRIPT_CHECK=grub2-script-check

现在按顺序在键盘上按下Ctrl + O,回车和Ctrl + X来保存并退出。

步骤三

要安装Grub-Btrfs,请运行以下命令:

sudo make install

步骤四

要重新生成GRUB配置文件,以便将您刚才所做的更改添加到grub.cfg文件中,请运行以下命令:

sudo grub-mkconfig -o /boot/grub2/grub.cfg

步骤五

grub-btrfsd 是一个进程,它会监视快照目录,并在每次创建或删除快照时自动更新GRUB子菜单。

要启动该进程,请运行以下命令:

sudo systemctl start grub-btrfsd

要在系统启动时激活它,请运行以下命令:

sudo systemctl enable --now grub-btrfsd

要查看grub-btrfsd进程的当前状态,请运行以下命令:

sudo systemctl status grub-btrfsd.service

如果显示 Active: active (running),则表示进程已成功启动。

如果显示 Active: failed,可能是因为未安装 inotify-tools 软件包。

要安装 inotify-tools,请运行以下命令:

sudo dnf install inotify-tools

然后重新启动 grub-btrfsd 进程:

sudo systemctl restart grub-btrfsd

再检查状态:

sudo systemctl status grub-btrfsd.service

顺利的话,该问题就被解决啦!

步骤六

完成上述步骤后,您现在可以重启系统。

要重启,请运行以下命令:

sync; sync; sync; systemctl reboot

进入Grub后,您会发现一个名为“Fedora Linux snapshots”的新引导入口。按回车键进入。

在这里,所有的快照都会被显示出来。您可以通过按回车键来选择您想要的快照。

然后选择内核,系统将会使用该内核去启动您选择的快照。

启动后,如果您希望将系统恢复到所选的快照状态,可以在Btrfs Assistant的"Snapper"选项卡下的"浏览/恢复"选项卡中,使用鼠标点击所需的快照。然后点击“恢复”以将系统回滚到那个时间点的状态。记得在此之后要重新启动系统。

额外步骤 (解决TPM错误信息跳出)

当您在GRUB子菜单中通过按回车键选择您想要的快照时,如果遇到TPM错误,您将无法被引导到您的快照中。

虽然在BIOS中禁用TPM 2.0可以解决此问题,但并不建议这样做。

解决TPM错误的方法如下:

sudo su
cd /etc/grub.d/

现在,我们要在 `/etc/grub.d/` 目录下创建一个名为02_tpm的文件。

sudo nano 02_tpm

将下方代码全部复制粘贴进该文件。

#!/usr/bin/sh -e

echo "rmmod tpm"

现在按顺序在键盘上按下 Ctrl + O、回车和 Ctrl + X 来保存并退出。

要使02_tpm文件可执行,请运行以下命令:

sudo chmod +x /etc/grub.d/02_tpm

要重新生成GRUB配置文件,请运行以下命令:

sudo grub2-mkconfig -o /etc/grub.cfg

顺利的话,该问题就被解决啦!

结论

本文详细介绍了在Fedora 40工作站版上设置Btrfs Assistant和Grub-Btrfs的过程。这些工具能有效地管理Btrfs快照,提升了系统的稳定性和可用性。

备注

我只是一个探索各种技术的新手。本文是我从多个在线来源收集整理的信息总结。请不要把这篇文章当作“教程”。它只是一个关于我如何在我的系统上使这两个功能正常工作的“分享帖子”。我不能保证它会在你的电脑上起作用,所有后果由用户自行承担。

  • 13
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值