我得到了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”来删除下载的包文件。