它是基于格式化硬盘驱动器时确定的数字吗?
例如:
$ df -Ti /
Filesystem Type Inodes IUsed IFree IUse% Mounted on
/dev/dm-0 ext4 983040 95683 887357 10% /
Run Code Online (Sandbox Code Playgroud)
那个983040从哪里来?我们可以增加/减少它吗?在什么范围内?
如果您谈论的是 ext4 文件系统,则它基于文件系统的大小。默认为每 16,384 字节 1 个 inode。Archwiki 上的更多信息- ext4 - 每个 inode 的字节数比率
请注意,此比率可以在创建文件系统时进行修改,请参阅mkfs.ext4 的手册页
要解决对该问题的后续编辑,您在其中添加了一些问题:
那个983040从哪里来?
它来自文件系统大小。默认情况下,每 16,384 字节的文件系统有 1 个 inode。
我们可以增加/减少它吗?
是的,但并不容易。备份文件系统,使用手册页中的“-i bytes-per-inode”参数重新创建文件系统。恢复文件系统内容。
在什么范围内?
正如在手册页中所示,字节,每个索引节点不应该被设定为小于块大小,否则你可能有更多的inode比以往任何时候都可能可能会被使用。正如 Stéphane Chazelas 指出的那样,空文件、设备、FIFO、套接字、短符号链接消耗一个 inode,但不消耗一个块。
您真的需要在根文件系统中创建 887,357 个以上的文件吗?
它不是针对每个磁盘的测量,而是针对每个文件系统的测量。对于许多文件系统,是的,它是在格式化时确定的。对于某些文件系统,它是动态的,基于文件系统使用情况、平均文件大小和其他信息位。