如何在事务服务器上的 btrfs 根文件系统上启用快照?

如何在事务服务器上的 btrfs 根文件系统上启用快照?

最近,在严重崩溃后,我不得不重新安装基于 OppenSuSE Leap 15.5 的家庭服务器。安装程序建议我选择“事务服务器”选项。但是当系统再次准备好使用时,我发现不再可以添加新的包:

valen:~ # transactional-update pkg install  afio-2.5.1-lp154.39.1.x86_64.rpm
Checking for newer version.
transactional-update 4.1.0 started
Options: pkg install afio-2.5.1-lp154.39.1.x86_64.rpm
ERROR: no snapshots for root file system configured!
transactional-update finished

尝试使用 YaST 执行系统更新时,我收到了相同的错误消息。问题是:根文件系统是只读的,这使我无法创建快照!至少我在尝试这样做时收到这样的错误消息:

valen:~ # snapper -c root create-config /
Creating config file failed (creating btrfs subvolume .snapshots failed).

顺便说一句,YaST 中的相应复选框已禁用。

更改/etc/fstab条目/(替换rodefaults)并重新启动没有帮助。使用该实用程序也不能btrfs使其/可写:

valen:~ # btrfs property set -tf / ro false
ERROR: object is not compatible with property: ro

这就是我的文件系统现在的样子:

││Gerät          │Größenlimit│Refer. Größe│Exkl. Größe│Mountpoint     ││   
││───Btrfs 0p1   │           │            │           │/              ││   
|| ├──@/opt      │           │            │           │/opt           ││   
││ ├──@/root     │           │            │           │/root          ││   
││ ├──@/tmp      │           │            │           │/tmp           ││   
││ ├──@/usr/local│           │            │           │/usr/local     ││   
││ └──@/var      │           │            │           │/var           ││   

所以我的系统就像一条咬自己尾巴的蛇:

  1. /安装程序在没有快照的情况下进行了设置。我不知道整个过程中哪里可以打开快照。
  2. 我无法在快照关闭的情况下更新系统。
  3. 文档说我可以btrfs随时将快照添加到现有卷。但这不起作用,因为它/是只读的。
  4. 显然没有办法使只读btrfs卷可写,甚至添加子卷也是如此。
  5. 当事务服务器上的根文件系统在没有快照的情况下毫无意义时,为什么 OpenSuSE 的安装程序要创建它没有快照支持吗?

那么:我该怎么做才能绕过写保护,/以便在无需重新安装整个系统的情况下打开快照呢?我考虑过将快照存储在可写子卷上,例如/opt/.snapshots,但我还没有找到如何做到这一点。

相关内容