分區 文件系統 沒有剩餘空間錯誤,但存在空格

分享于 

4分钟阅读

ubuntu

  简体 双语

问题:

我有一个运行 Ubuntu 16.04.05的服务器出现问题。 运行 python 脚本,创建超过 65万个文件的文件时,我有一条错误消息说我没有空格:


12 zip -r 31.zip 31


zip I/O error: No space left on device


zip error: Could not create output file (31.zip)



我在网上发现了一些类似的问题: 尽管有空间但设备还没有空间,设备上没有剩余空间,而且设备没有空间,但我想我有另外一个空间。 在这两个答案中发布的解决方案对我不适用。

以下是存储的结构:


➜ 12 df -k


Filesystem 1K-blocks Used Available Use% Mounted on


udev 32963768 0 32963768 0%/dev


tmpfs 6597356 9244 6588112 1%/run


/dev/sda1 32895856 26382068 4819736 85%/


tmpfs 32935580 96 32935484 1%/dev/shm


tmpfs 5120 0 5120 0%/run/lock


tmpfs 32935580 0 32935580 0%/sys/fs/cgroup


/dev/sdb 1031992064 664288464 322578204 68%/media/hdd1


tmpfs 6587116 20 6587096 1%/run/user/118


tmpfs 6587116 0 6587116 0%/run/user/1001



我正在工作,试图压缩 /media/hdd1 中的一个文件夹,它应该有足够的空间。 我试图压缩的文件夹的尺寸是:


➜ 12 du -sh 31


49M 31



编辑:


➜ 12 df -i


Filesystem Inodes IUsed IFree IUse% Mounted on


udev 8240942 478 8240464 1%/dev


tmpfs 8246695 617 8246078 1%/run


/dev/sda1 2097152 500872 1596280 24%/


tmpfs 8233895 5 8233890 1%/dev/shm


tmpfs 8233895 6 8233889 1%/run/lock


tmpfs 8233895 16 8233879 1%/sys/fs/cgroup


/dev/sdb 65536000 65536000 0 100%/media/hdd1


tmpfs 8246695 15 8246680 1%/run/user/118


tmpfs 8246695 4 8246691 1%/run/user/1001




回答 1:

"运行 python 脚本后,创建了超过 65个文件"这是你的问题。

在"inode"文件系统Ubuntu中只有有限数量的调用,这是确定的,当你格式化一个分区。 文件系统中的每个文件或者目录至少需要一个 inode。

如果你创建了大量的小文件,你将会快速排除可以用的存储空间。 同样的结果同样会导致一个看似完整的圆盘的症状。

你需要去掉那些超小的文件,比如 将它们放在一个不同的驱动器中,或者完全删除它们。

不幸的是,在我知道的情况下,不能动态改变inode的数量。 如果你真的需要更多的当前分区,你可以能需要备份数据并重新格式化所有内容。

关联:


回答 2:

就像ByteCommander所解释的,你对inode有一个问题。

另一种takle的方法是寻找数百万个小文件,使用这些小文件。


sudo du -a -x -d 1 --inodes/media/hdd1 | sort -nr | head -20



将向你展示在/media/hdd1 上使用最多的目录- 然后可以通过目录访问目录,直到找到一堆文件。



文件  PAR  files  spa  Space  分区