可能的重复:
如何增加 ext4 文件系统中 inode 的数量?
我有一个带有 Debian Wheezy 64 位的自制 NAS。它具有三个磁盘 - 2x2TB 和 1.5TB,使用 RAID1/5 和 LVM 汇集在一起。结果是一个 LVM 逻辑卷,大小约为 3.16TB,格式为 ext4,挂载为 /home。然而我刚刚发现大约 50GB 的容量被 Inode 使用(确切的数量是 212 459 520,大小为 256B 或者换句话说 - 每 16k 分区大小一个 Inode)。
虽然 3.16TB 中的 50GB 约占总容量的 1.5%,但这仍然是一个很大的空间。由于这是一个存储 NAS,主要用于多媒体,我不希望 /home 分区有 212百万里面的文件。
所以,我的问题是 - 是否可以减少/更改索引节点的数量,而无需实际重新创建整个分区?虽然可能可以做到这一点,但我仍然更愿意找到一种方法来做到这一点,而不是移动 2TB 数据并等待 RAID 再次重新同步。
答案1
来自mke2fs
手册页:
请注意,文件系统创建后无法扩展其 inode 数量,因此请谨慎确定此参数的正确值。
所以答案是否定的。
您可以做的是缩小现有的 ext4 卷(这需要卸载文件系统),使用可用空间创建一个具有较少 inode 的新 ext4 卷,复制数据,删除旧卷并扩展新卷以占用所有空间。
答案2
如果您有足够的空间,您可以获取文件系统的 tar 映像并进行备份。然后根据需要创建一个具有更高或更低 inode 计数的新 ext4 分区。获取 tar 映像并格式化分区也增加了对其进行碎片整理的好处。
我知道 ext4 不应该需要它,但无论您在多次使用后如何努力,它都会需要它,或者至少在某些时候提供速度提升。 Ext4 只会使您的驱动器更难碎片化,并且大约每 1 - 3 年仍会从中受益。这里的大问题是 tar 映像和重新格式化是我听说过的对 ext4 分区进行碎片整理的唯一方法。