最近,在严重崩溃后,我不得不重新安装基于 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
条目/
(替换ro
为defaults
)并重新启动没有帮助。使用该实用程序也不能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 ││
所以我的系统就像一条咬自己尾巴的蛇:
/
安装程序在没有快照的情况下进行了设置。我不知道整个过程中哪里可以打开快照。- 我无法在快照关闭的情况下更新系统。
- 文档说我可以
btrfs
随时将快照添加到现有卷。但这不起作用,因为它/
是只读的。 - 显然没有办法使只读
btrfs
卷可写,甚至添加子卷也是如此。 - 当事务服务器上的根文件系统在没有快照的情况下毫无意义时,为什么 OpenSuSE 的安装程序要创建它没有快照支持吗?
那么:我该怎么做才能绕过写保护,/
以便在无需重新安装整个系统的情况下打开快照呢?我考虑过将快照存储在可写子卷上,例如/opt/.snapshots
,但我还没有找到如何做到这一点。