关于讲解inode文章是在一个公众号里面阅读的,文章链接:https://mp.weixin.qq.com/s/ZrENe9ACUWqHHTDjRG5iTg
文章提及理解inode就得从文件存储讲起,涉及概念有“‘扇区’”(Sector)“块”(block) “元信息”。
扇区:硬盘的最小存储单位叫做“扇区”,每个扇区存储512字节。(大约0.5K)
块:操作系统在读取硬盘时候会一次性读取多个扇区(一个一个扇区读取效率低),既是一次性读取一个“块”。有多个扇区组成的“块”,是文件存取的最小单位。
元数据:文件数据都储存在"块"中,那么很显然,我们还必须找到一个地方储存文件的元信息,比如文件的创建者、文件的创建日期、文件的大小等等。这种储存文件元信息的区域就叫做inode,中文译名为"索引节点"。(文字取自文中)
使用 stat 命令可以查看inodes的文件信息
inode包含文件的元信息,具体来说有以下内容:
-
文件的字节数
-
文件拥有者的User ID
-
文件的Group ID
-
文件的读、写、执行权限
-
文件的时间戳,共有三个:
-
ctime指inode上一次变动的时间
-
mtime指文件内容上一次变动的时间
-
atime指文件上一次打开的时间
-
链接数,即有多少文件名指向这个inode(截图标红地方)
-
文件数据block的位置
关于inode大小
inode也会消耗硬盘空间,所以硬盘格式化的时候,操作系统自动将硬盘分成两个区域。一个是数据区,存放文件数据;另一个是inode区(inode table),存放inode所包含的信息。
每个inode节点的大小,一般是128字节或256字节。inode节点的总数,在格式化时就给定,一般是每1KB或每2KB就设置一个inode。假定在一块1GB的硬盘中,每个inode节点的大小为128字节,每1KB就设置一个inode,那么inode table的大小就会达到128MB,占整块硬盘的12.8%。