BTRFS上的“rm:无法删除xxx:设备上没有剩余空间”

19 linux partition btrfs

运行 OpenSuse 12.2。

突然,根分区似乎已满 (99%),但我无法再手动删除文件。

“rm:无法删除xxx:设备上没有剩余空间”尽管根据df仍然有450mb可用。文件系统是 BTRFS。

我尝试使用 btrfsck 检查 FS,但没有帮助。

该怎么办?

tyl*_*erl 24

最有可能的是,您遇到了一个问题,即 BTRFS 在删除文件之前必须分配一些元数据。BTRFS 的弱点之一是它对空间不足情况的处理;改善这方面的行为是该项目的优先事项之一。

btrfs wiki 上的一个建议是破坏文件而不是删除它。

#instead of this
rm -f ./some_file

# do this
true >| ./some_file
Run Code Online (Sandbox Code Playgroud)

这将删除文件的内容而不更改目录条目。一旦你走出了你所在的角落,你就可以像往常一样删除文件。如果这给您带来麻烦,您可能需要暂时重新安装该nodatacow选项,这会关闭写时复制行为。但是......不确定这是否会有所帮助。

但总的来说:不要干运行 BTRFS 文件系统。它仍然是预生产软件,边角案例有点粗糙。

  • 这个技巧也适用于 cifs 安装的网络驱动器,谢谢! (3认同)