如何为ext2文件系统大致计算每个inode的字节数?
我有7.3GB的存储空间(15320519个扇区,每个扇区512字节)。我创建了一个块大小为4096字节的ext2文件系统。
mke2fs /dev/sda2 -i 524288 -m 0 -L "SSD" -F -b 4096 -U 11111111-2222-3333-4444-555555555555 -O none,filetype,sparse_super,large_file
文件系统标签=SSD
操作系统类型:Linux
块大小=4096(log=2)
片段大小=4096(log=2)
15104个inode,1915064个块
0个块(0%)为超级用户保留
第一个数据块=0
最大文件系统块数=4194304
59个块组
每个块组32768个块,每个块组32768个片段
每个组256个inode
超级块备份存储在块上:
32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632
通常我所有的文件大小为100KB(大约有5个文件可能为400MB)。我尝试阅读这篇文章和这篇文章。但仍然不清楚如何大致计算每个inode的字节数?当前的524288不够,现在我无法在sda2上创建新文件,但仍然有很多空闲空间。
P.S. 额外信息
# df -T
文件系统 类型 1K-块 已用 可用 使用率 挂载在
/dev/root ext4 146929 84492 59365 59% /
devtmpfs devtmpfs 249936 0 249936 0% /dev
tmpfs tmpfs 250248 0 250248 0% /dev/shm
tmpfs tmpfs 250248 56 250192 0% /tmp
tmpfs tmpfs 250248 116 250132 0% /run
/dev/sda2 ext2 7655936 653068 7002868 9% /mnt/sda2
# df -h
文件系统 大小 已用 可用 使用率 挂载在
/dev/root 143.5M 82.5M 58.0M 59% /
devtmpfs 244.1M 0 244.1M 0% /dev
tmpfs 244.4M 0 244.4M 0% /dev/shm
tmpfs 244.4M 56.0K 244.3M 0% /tmp
tmpfs 244.4M 116.0K 244.3M 0% /run
/dev/sda2 7.3G 637.8M 6.7G 9% /mnt/sda2
# fdisk -l
磁盘 /dev/sda: 7.45 GiB, 8001552384字节,15628032个扇区
磁盘型号:8GB ATA Flash Di
单位:扇区1 * 512 = 512字节
扇区大小(逻辑/物理):512字节/512字节
I/O大小(最小/最佳):512字节/512字节
磁盘标签类型:dos
磁盘标识符:0x0a19a8af
设备 启动 开始 结束 扇区 大小 Id 类型
/dev/sda1 309 307508 307200 150M 83 Linux
/dev/sda2 307512 15628030 15320519 7.3G 83 Linux
你的空闲空间大约是
7.3*1024*1024*1024
字节。平均来说,一个文件的大小预计是100*1024
字节。这意味着你可以容纳大约个不同的文件。这意味着你需要精确这么多的索引节点(inodes)。
mke2fs的输出显示你目前有
15,104
个索引节点;难怪你会用完它们——你需要大约五倍的数量。我认为你忽略了
-i
选项已经 直接 指定了你预期的平均文件大小。你需要每个(不同的)文件一个索引节点,所以如果你的平均文件大小是100KB,那么每100KB的存储空间就应该分配一个新的索引节点。简单地用-i $((100*1024))
重新运行命令。(你当前的选项
-i 524288
告诉mke2fs你的常规文件大小将是512KB,这比实际情况大约五倍——这就是为什么你得到的索引节点比需要的少大约五倍。)总之,只需将“每个索引节点的字节数”理解为“每个不同文件的字节数”。