设备上没有剩余空间

设备上没有剩余空间

我得到了No space left on device,所以我删除了一些文件。但是当我尝试用 更新我的文件夹时,svn update我再次收到相同的错误。这是剩余空间的问题吗?

当我跑步时df -k我得到

在此处输入图片描述

当我跑步时df -i,我得到

在此处输入图片描述

看起来系统已经用完了 inode 空间,正如您所说,尽管我的磁盘上还有剩余空间。我该如何解决这个问题?

答案1

使用以下命令检查磁盘使用情况:

df -k

df -i

第一个命令将告诉你有多少磁盘空间(以千字节为单位),第二个命令将计算索引节点。如果您有大量的小文件,该分区可能仍然有可用的磁盘空间,但用完了 inode(如果您不知道它们,您可以将其视为停车位中的“插槽”)

好的,如果您的 inode 确实用完了,那么唯一的解决方法就是使用不同的参数重新格式化分区。如果您无法做到这一点,您可以尝试通过将“需要大量 inode”的数据部分移动到其他分区来缓解问题。从 /home 顶层开始,您可以运行这个简单的脚本(如果它不是 100% 万无一失的,请原谅 ;-) )

for dir in *; do [ -d "$dir" ] && echo "$dir" && find "$dir" | wc -l; done

它应该计算每个子目录使用了多少个 inode(简而言之,每个文件或目录都存在)。如果您愿意,可以重复此过程并向下移动几层。无论如何,一旦您确定了消耗最多 inode 的目录,您就可以将其移动到其他地方,并在 /home 中留下指向新位置的符号链接。

简而言之,您唯一的机会是存档(使用 tar、zip 或类似工具)/home 目录中当前未使用的数据部分(并删除松散的文件)。这将减少 inode 数量,但代价是不断存档/取消存档存储部分。

答案2

当我需要更多磁盘空间时,我总是先使用轻松的“apt-get clean”来删除下载的包文件。

相关内容