Btrfs Assistant是一个图形化管理工具,使管理Btrfs文件系统变得更加简单。而Grub-Btrfs通过在GRUB引导加载程序中添加Btrfs快照子菜单,允许用户引导到不同的快照。本文将分享在Fedora Linux 40(工作站版)上成功运行Btrfs Assistant和Grub-Btrfs的经验。在此环境中,桌面使用的是GNOME 46.2版本,并且文件系统为Btrfs。
一、Btrfs Assistant简介
Btrfs Assistant是一个GUI管理工具,旨在简化Btrfs文件系统的管理操作。它提供了以下主要功能:
1、元数据概况:显示Btrfs文件系统的元数据概况,帮助用户了解文件系统的结构和使用情况。
2、子卷管理:提供简单的界面来展示子卷(subvolume),包括显示是否有使用Snapper或Timeshift创建的快照。
3、数据完整性检查和数据平衡:支持运行和监控Btrfs文件系统的Scrub(数据完整性检查)和Balance(数据平衡)操作。
4、子卷操作:提供方便的界面操作,可以轻松删除Btrfs文件系统中的子卷。
5、Snapper管理前端功能:
- 查看、创建和删除快照;
- 在不同发行版挂载的文件系统上恢复快照;
- 从快照引导系统;
- 从Live ISO恢复;
- 查看、创建、编辑和删除Snapper配置;
- 浏览快照并恢复单个文件;
- 浏览文件在不同快照版本间的差异;
- 管理Snapper的systemd单元。
6、Btrfs维护前端功能:
- 管理systemd单元;
- 轻松管理defrag(碎片整理)、balance(数据平衡)和scrub(数据完整性检查)设置的配置。
二、Grub-Btrfs简介
Grub-Btrfs改进了GRUB引导加载程序,通过添加Btrfs快照子菜单,使用户能够引导到快照中。支持手动创建的快照,以及由Snapper、Timeshift和Yabsnap创建的快照。这在系统无法正常引导时显得十分重要。通过Grub-Btrfs,用户可以轻松选择并引导到之前的快照,从而在发生严重故障时快速恢复到稳定的系统状态。
Grub-Btrfs主要功能:
1、自动列出快照:自动列出存在于Btrfs根分区上的快照。
2、自动检测boot文件夹:自动检测/boot是否位于单独的分区中。
3、内核和initramfs检测:自动检测快照中/boot目录下的内核、initramfs和Intel/AMD微码。
4、菜单条目创建:自动在grub.cfg中创建相应的菜单条目。
5、快照信息自动检测:自动检测Snapper、Timeshift和Yabsnap快照的类型、标签、触发器、描述和注释。
6、配置文件生成:如果使用提供的Systemd/OpenRC服务,自动生成grub.cfg。
三、建置Btrfs Assistant
1、安装Btrfs Assistant
要下载Btrfs Assistant,可以在Fedora的仓库中找到它,包名为”btrfs-assistant”。要安装,请运行以下命令:
sudo dnf install btrfs-assistant
完成安装后,可以在应用程序菜单中找到并启动Btrfs Assistant。
2、配置快照
打开Btrfs Assistant,在“快照设置”选项卡中,首先需要创建一个新的配置文件。为根目录创建快照,点击“新建配置”,然后按照显示的设置进行操作。
完成后,点击“应用systemd更改”,然后选择“保存”。
3、设置快照保留
在“快照设置”选项卡下,设置“快照保留”中的值。以下是推荐的配置:勾选“启用时间线快照”,系统会每小时自动为创建一个快照。
4、Btrfs维护设置
在维护选项卡下,一些推荐的设置可以帮助更好地维护文件系统。在更改设置后,不要忘记点击“应用”。
5、自动快照(选择性安装)
如果希望在每次运行”dnf”命令之前和之后自动创建快照,可以安装名为”python3-dnf-plugin-snapper”的软件包。运行以下命令进行安装:
sudo dnf install python3-dnf-plugin-snapper
例如当执行”sudo dnf update”命令后,系统将自动创建两个快照:类型为pre的快照是在执行之前创建的,而类型为post的快照则是在执行之后创建的。
当执行”sudo dnf remove htop”命令时,系统同样将创建两个快照。
四、建置Grub-Btrfs
1、克隆Grub-Btrfs项目
由于Grub-Btrfs不在Fedora的软件仓库中,我们需要从GitHub克隆该项目。请运行以下命令:
git clone https://github.com/Antynea/grub-btrfs.git
接下来,切换到克隆的目录:
cd grub-btrfs/
在这一部分,需要仔细检查并编辑多个配置项,确保所有更改都正确无误。
2、编辑配置文件
打开配置文件并进行以下修改:
(1)取消注释并修改以下行: #GRUB_BTRFS_SNAPSHOT_KERNEL_PARAMETERS="rd.live.overlay.overlayfs=1"
修改为:
GRUB_BTRFS_SNAPSHOT_KERNEL_PARAMETERS="systemd.volatile=state"
(2)取消注释并修改以下行:
#GRUB_BTRFS_GRUB_DIRNAME="/boot/grub2"
修改为:
GRUB_BTRFS_GRUB_DIRNAME="/boot/grub2"
(3)取消注释并修改以下行:
#GRUB_BTRFS_MKCONFIG=/usr/bin/grub2-mkconfig
修改为:
GRUB_BTRFS_MKCONFIG=/sbin/grub2-mkconfig
(4)取消注释并修改以下行:
#GRUB_BTRFS_SCRIPT_CHECK=grub2-script-check
修改为:
GRUB_BTRFS_SCRIPT_CHECK=grub2-script-check
完成编辑后,按下 “Ctrl + O” 保存更改,然后按回车键,接着按 “Ctrl + X” 退出编辑器。
3、安装Grub-Btrfs
要安装Grub-Btrfs,请运行以下命令:
sudo make install
4、重新生成GRUB配置文件
为了将刚才所做的更改添加到”grub.cfg”文件中,请运行以下命令:
sudo grub-mkconfig -o /boot/grub2/grub.cfg
5、启动grub-btrfsd服务
“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” 软件包。要安装该软件包,请运行:
sudo dnf install inotify-tools
然后重新启动 “grub-btrfsd” 进程:
sudo systemctl restart grub-btrfsd
再检查状态:
sudo systemctl status grub-btrfsd.service
6、重启系统
完成上述步骤后,可以重启系统。请运行以下命令:
sync; sync; sync; systemctl reboot
在GRUB菜单中,会发现一个名为“Fedora Linux snapshots”的新引导入口。
按回车键进入后,所有的快照都会被显示出来,可以通过按回车键选择所需的快照。
启动后,如果希望将系统恢复到所选的快照状态,可以在Btrfs Assistant的“Snapper”选项卡下的“浏览/恢复”选项中,使用鼠标点击所需的快照,然后点击“恢复”以将系统回滚到那个时间点的状态。请记得在此之后重新启动系统。
五、解决TPM错误信息
在GRUB子菜单中选择快照时,如果遇到TPM错误,可能无法成功引导到快照。虽然在BIOS中禁用TPM 2.0可以解决此问题,但并不建议这样做。解决TPM错误的方法如下:
1、切换到超级用户模式:
sudo su
2、切换到 “/etc/grub.d/” 目录:
cd /etc/grub.d/
3、创建名为 “02_tpm” 的文件:
sudo nano 02_tpm
4、将以下代码复制并粘贴到该文件中:
#!/usr/bin/sh -e echo "rmmod tpm"
5、按下 “Ctrl + O” 保存更改,然后按回车键,接着按 “Ctrl + X” 退出编辑器。
6、使 “02_tpm” 文件可执行:
sudo chmod +x /etc/grub.d/02_tpm
7、重新生成GRUB配置文件:
sudo grub2-mkconfig -o /etc/grub.cfg
-
广告合作
-
QQ群号:707632017