我不想将大约 450 万个文件(大小范围从 100 到 1000 字节)从一个分区移动到另一个分区。文件夹的总大小约为 2.4 GB
首先,我尝试压缩它并将压缩文件移动到新位置。它只能粘贴 ~800k 文件并显示“空间不足”错误。
接下来我尝试了 mv 命令,它也导致了同样的情况。
使用 rsync 也会导致相同的错误,只有大约 800k 文件被移动。
我检查了磁盘空闲状态,它低于限制。(新分区有 ~700 GB 可用空间,所需空间约为 2.4 GB)。
我检查了那个分区的空闲inode,它是一样的。它只使用了最大可能的 191 M inode 中的 ~800k。(我实际上已经用 'mkfs.ext4 -T small /dev/sdb3' 格式化了分区)
我不知道这里出了什么问题。每次它只能复制或移动 ~800k 文件。
我找到了错误的原因(在不同的论坛上找到)。该错误是由于“dir_index”参数启用的 ext4 使用的散列算法造成的。对我来说有太多的哈希冲突,所以我通过以下命令禁用了它:
tune2fs -O "^dir_index" /dev/sdb3
缺点是由于没有索引,我的分区比以前慢。
有关该问题的更多信息: ext4:神秘的“设备上没有剩余空间”-错误