Linux文件系统
一、inode与block
inode和block概述
文件数据包括元信息与实际数据
文件存储在硬盘上,硬盘最小存储单位是“扇区”,每个扇区存储512字节
block(块)
连续的八个扇区组成一个block(4k)
是文件存取的最小单位
inode(索引节点)
中文译名为“索引节点”也叫i节点
用于存储文件元信息(包含比如文件的创建者、创建日期、文件大小、文件权限等信息)
(一)关系
文件是存储在硬盘上的
扇区
- 硬盘的最小存储单位叫做"扇区”(sector),每个扇区存储512字节。
块
- 一般连续八个扇区组成一个"块"(block),一个块是4K大小,是文件存取的最小单位。操作系统读取硬盘的时候,是一次性连续读取多个扇区,即一个块一个块的读取的。
文件数据
- 文件数据包括实际数据与元信息(类似文件属性)。文件数据存储在"块"中,存储文件元信息(比如文件的创建者、创建日期、文件大小、文件权限等)的区域就叫做inode。
inode
-
因此,一个文件必须占用一个inode,并且至少占用一个 block。
-
inode不包含文件名。文件名是存放在目录当中的。
Linux系统中一切皆文件,因此目录也是一种文件。
每个inode都有一个号码,操作系统用inode号码来识别不同的文件。Linux系统内部不使用文件名,而使用inode号码来识别文件。对于系统来说,文件名只是inode号码便于识别的别称,文件名和inode号码是一一对应关系,每个inode号码对应一个文件名。
所以,当用户在Linux系统中试图访问一个文件时,系统会先根据文件名去查找它对应的inode号码;通过inode号码,获取inode信息;根据inode信息,看该用户是否具有访问这个文件的权限;如果有,就指向相对应的数据block,并读取数据。
(二)查看文件名对应的inode号码有两种方式:
ls -i文件名
stat文件名
#常用第二种,能看到更详细的信息
(1)inode也会消耗硬盘空间
- 所以格式化的时候,操作系统自动将硬盘分成两个区域:
1、一个是数据区,存放文件数据;
2、另一个是inode区,存放inode所包含的信息。
每个inode 的大小,一般是128字节或256字节。
通常情况下不需要关注单个inode的大小,而是需要重点关注inode 总数。inode的总数在格式化时就给定了,执行 “df -i” 命令即可查看每个硬盘分区对应的的inode总数和已经使用的inode数量。
有的时候目录里明明没有占用那么满的文件,确显示硬盘已满,多半是inode号满了