# truncate -s 100M foobar.img
# mkfs.ext4 foobar.img
Creating filesystem with 102400 1k blocks and 25688 inodes
---> number of inodes determined at mkfs time ^^^^^
# mount -o loop foobar.img loop/
# touch loop/{1..25688}
touch: cannot touch 'loop/25678': No space left on device
touch: cannot touch 'loop/25679': No space left on device
touch: cannot touch 'loop/25680': No space left on device
大概,您会看到一些“设备上没有剩余空间”错误的味道:
在实践中,您比“40 亿个文件”更早地达到了这个限制。检查你的文件系统,
df -h
看看df -i
还有多少空间。在此示例中,如果您的文件平均不是 4K 大小,则 inode-space 会比 storage-space 更快用完。可以指定另一个比率(
mke2fs -N number-of-inodes
或-i bytes-per-inode
或-T usage-type
中定义的/etc/mke2fs.conf
)。一旦达到限制,后续创建文件的尝试将失败并
ENOSPC
显示 ,表明目标文件系统没有空间容纳新文件。在您描述的场景中,一旦达到限制,这通常会导致传输中止。