无法修复 BTRFS 分区,因为剩余空间太少

无法修复 BTRFS 分区,因为剩余空间太少

我无法挂载 BTRFS 分区,因为它的元数据存储太满。

机器开始抱怨磁盘已满(这是元数据),在尝试通过运行balance各种形式来修复这种情况时(它不会完成,因为设备上没有足够的空间,或者它会陷入循环,我必须重新启动计算机),我设法使我的分区无法安装。当我尝试安装时,日志显示以下内容:

error (device dm-0) in btrfs_drop_snapshot:5505: errno=-28 No space left
failed to recover relocation: -28
open_ctree failed

所有相关的 BTRFS 命令似乎只适用于已挂载的文件系统,所以我无法自己处理这些命令。我甚至无法删除文件来腾出更多空间。

我设法以只读模式挂载了磁盘,因此我已挽救了所有最近的数据(其余数据无论如何都在备份中),但在以只读模式挂载磁盘时我无法修复它,我更希望不必擦除分区。我至少现在可以检查它:我已使用了 832.89MiB,而总元数据为 1.02GiB。

我甚至尝试了我在 Google 上搜索到的一种建议的变体:将分区安装为只读,然后向 BTRFS 设备添加额外的内存磁盘分区以获得更多空间,然后将其重新安装为rw,但不幸的是它没有起作用 - 同样的错误。

编辑:我需要那台电脑,所以我把所有东西都复制到了另一个磁盘并重新创建了那个分区。我不会接受答案,因为我无法再测试解决方案,但如果有人遇到同样的情况,建议可能仍然有用?

相关内容