![无法修复 BTRFS 分区,因为剩余空间太少](https://linux22.com/image/1629570/%E6%97%A0%E6%B3%95%E4%BF%AE%E5%A4%8D%20BTRFS%20%E5%88%86%E5%8C%BA%EF%BC%8C%E5%9B%A0%E4%B8%BA%E5%89%A9%E4%BD%99%E7%A9%BA%E9%97%B4%E5%A4%AA%E5%B0%91.png)
我无法挂载 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
,但不幸的是它没有起作用 - 同样的错误。
编辑:我需要那台电脑,所以我把所有东西都复制到了另一个磁盘并重新创建了那个分区。我不会接受答案,因为我无法再测试解决方案,但如果有人遇到同样的情况,建议可能仍然有用?