Linux:设备错误上没有剩余空间,具有50%的可用空间


8

花了一天的时间在桌子上砸了我的头后,我将不胜感激。

我正在Fedora 14上运行Squid-Proxy。即使尝试这样做touch /tmp/foo,也会收到“设备上没有剩余空间”的错误消息。我已经跑了fsck。如果我删除一个1MB的文件,那么我可以再次存储1MB的数据,但仅此而已。值得注意的是,我有足够的可用空间:

df 输出:

Filesystem           1K-blocks      Used Available Use% Mounted on
/dev/sda3             16311208   7614872   7867768  50% /
tmpfs                  1028548         0   1028548   0% /dev/shm
/dev/sda1               198337     55345    132752  30% /boot
/dev/sdb1             25803036  19407324   5084996  80% /mnt/squid-cache

有人知道我可以尝试如何“收回”自由空间吗?

Answers:


16

猜测您用完了inode而不是磁盘块-也就是说,您对文件系统可容纳的文件数量有限制,而不是数据总量的限制。

您可以df -i用来检查。


很奇怪,尽管他会在一个大约50%的磁盘空间上耗尽inode,但是……值得研究;Squid确实会创建很多文件。
LawrenceC

汤姆,你钉了它。确实是这样...“ iFree = 0”非常感谢您的提示!
Layticia 2011年

@ultrasawblade squid-cache-dir在另一个磁盘(sdb)上,问题在系统磁盘(sda)上。我正在生成“大量”报告,这意味着最近12个月中有很多文件。
Layticia 2011年

B / c我的磁盘已满..,并且需要更多空间,看起来forums.fedoraforum.org/showthread.php?t=246302说我需要重新格式化。重新格式化时,将选择XFS-看起来它可以扩展。
jedierikb 2012年


0

Linux为超级用户保留一定百分比的块。通常设置为5%。50%的异常高。随着tune2fs -m你可以改变。


0

如果您使用的是btrfs,则可能会发生这种情况,在这种情况下,这些补救措施将无效。

经过很多错误的跟踪之后,我终于开始使用

btrfs否

并得到了

btrfs设备上没有剩余空间

作为第一个完成。这导致了BTRFS问题Wiki。这显然是一个普遍的问题。

但是即使从那里,解决我的问题也不是那么容易。通过启动进入恢复模式,选择挂载我的文件系统,然后移至根目录,我能够运行正确的实用程序。

Wiki文章说运行btrfs balance,但是不能在所有文件系统上运行,最终我在这里找到了自己的方式(这也是第二个搜索结果。)

如果您的文件系统真的很满,那么平衡将无法运行。否则它将仅在-dusage的较小值下运行。

在这种情况下,食谱位于文章的底部。我发现它令人困惑,并一开始拒绝它作为解决方案,因为发布者删除了快照(我认为这是必不可少的),并且由于我没有拍摄快照,因此我认为它不适用。但是确实如此。快照步骤对某些人可能很重要,但对我而言并不重要。

概述中的补救措施是:

  1. 创建一个大文件
  2. 使其成为循环设备
  3. 将设备连接到无法平衡的fs
  4. 运行平衡
  5. 拆卸设备
  6. 核对文件以获取该空间

参考的文章提供了命令行步骤。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.