我正No space left
面临北卡罗莱纳州。
我已经尝试过的方法:
- 重新挂载 RW 后:
btrfs filesystem resize max /mnt/hdd
- 我使用不同的参数运行了平衡(持续了数周 ;-) )
btrfs balance start /mnt/hdd -dlimit=<param>
什么也没帮助。我还能做什么?
所以我面临的是(Ubuntu 18.04.1 LTS):
BTRFS: error (device sda) in __btrfs_inc_extent_ref:2268: errno=-28 No space left
BTRFS info (device sda): forced readonly
然而还有足够的空间:
$ sudo btrfs fi show /mnt/hdd
Label: none uuid: 262a8d86-279a-4f6b-8968-32e200c32255
Total devices 1 FS bytes used 1.68TiB
devid 1 size 7.28TiB used 1.70TiB path /dev/sda
然而,这个命令报告数据部分空间不足?
$ btrfs fi df /mnt/hdd
Data, single: total=1.47TiB, used=1.46TiB
System, single: total=4.00MiB, used=224.00KiB
Metadata, single: total=236.01GiB, used=222.76GiB
GlobalReserve, single: total=512.00MiB, used=495.75MiB
还:
$ sudo btrfs fi usage /mnt/hdd
Overall:
Device size: 7.28TiB
Device allocated: 1.70TiB
Device unallocated: 5.58TiB
Device missing: 0.00B
Used: 1.68TiB
Free (estimated): 5.58TiB (min: 5.58TiB)
Data ratio: 1.00
Metadata ratio: 1.00
Global reserve: 512.00MiB (used: 495.75MiB)
Data,single: Size:1.47TiB, Used:1.46TiB
/dev/sda 1.47TiB
Metadata,single: Size:236.01GiB, Used:222.76GiB
/dev/sda 236.01GiB
System,single: Size:4.00MiB, Used:224.00KiB
/dev/sda 4.00MiB
Unallocated:
/dev/sda 5.58TiB
答案1
您的设备大部分未分配,可以通过调整大小/重新平衡来纠正。但这已经不起作用了,所以有些“奇怪”的地方。BTRFS 相关消息的输出dmesg
可能有助于确定原因。
您是否尝试过将其关闭然后重新打开?不过,认真地讲,重新安装可以解决大多数 BTRFS 异常问题。如果您还没有备份数据,请在卸载之前备份数据。
除此之外,您还可以执行检查。这与清理不同,是在 BTRFS 处于离线状态时针对备份块设备执行的。这将消耗大量 RAM,并且需要一段时间才能完成。这将验证结构,除非被告知(使用 --repair 选项),否则不会自行修复。在您获得错误输出并了解如何纠正错误之前,请不要告诉它修复问题(例如,如果您有未检测到的物理驱动器故障,则进行修复几乎肯定会破坏文件系统)。
离线支票可以这样签发:
btrfs check -p /dev/sda
如果 BTRFS 检查发现异常,您还应该检查备份设备(读取其 SMART 数据、进行长时间测试等)。这可以分别使用smartctl -a /dev/sda
和来完成smartctl -t long /dev/sda
。假设这是一个包含真实驱动器的裸机节点。如果是虚拟机,请从下往上开始检查 BTRFS 中是否有损坏的情况。