“ node 数量与 Block 的大小在格式化的时候就已经被设定好了,通常一个 Block 的大小为 4 Kbytes,至于 inode 的
数量
则依据不同的设定而异,基本的设定为 ( 硬盘大小 / 一个 inode 所控制的容量 ) 。举例来说,我有一个 1 GBytes 的硬盘,
我希望该硬盘中 inode 的数量只要 block 的一半就好了,那么就可以设定一个 inode 控制的容量为 8 Kbytes ,则
inode 数
量共有: ( G * 1024M/G * 1024K/M )/( 8 K ) = 131072 个 inode 啰!而 inode
table 则占去了 131072 * 128 byte =
16777216 bytes = 16384 Kbytes。也就是说,这一个 1GB 的硬盘还有没任何数据时,就少了 16 MBytes 的容
量啦!(用
在 inode table 上面)。
因为一个 inode 只能记录一个档案的属性,所以 inode 数量比 block 多是没有意义的!举上面的例子来说,我的 Block 规
划为 4 Kbytes ,所以 1GB 大概就有 262144 个 4Kbytes 的 block ,如果一个 block 对应一个
inode 的话,那么当我的
inode 数量大于 262144 时,多的 inode 将没有任何用处,徒然浪费硬盘的空间而已!另外一层想法,如果我的档案容量都
很大,那么一个档案占用一个 inode 以及数个 block ,当然 inode 数量就可以规划的少很多啦!”
我重新你看了一下鸟哥的描述,他的意思好像是block跟inode应该是一对多或者多对一的关系,格式化的时候分配node
table 与 block area 两个区域,这个时候还两者应该没有对应关系,只有在建立文件的时候才建立关系:比如建立一个1M
大小的文件,其占用一个inode,这个inode就是用来记录该文件的位置和占用的多个block以及权限等的信息的。
不知理解对否。