Linux 详解inode
目录
一、inode是什么?
inode包含的主要信息(inode是一个结构体):
硬链接计数(有多少个文件名指向这个inode)
inode的特点:
inode编号
二、block区
定义与作用
特点
三、block区和inode区的理解
一、inode是什么?
inode(索引节点) 是Linux文件系统中的一种数据结构,用于存储文件或目录的元数据(metadata)。每个文件或目录在文件系统中都有一个唯一的inode编号,它记录了文件的关键信息,但不包含文件名或文件内容本身。
inode包含的主要信息(inode是一个结构体):
- 文件类型(普通文件、目录、符号链接、设备文件等)
- 文件权限(读、写、执行权限)
- 文件所有者(UID)和所属组(GID)
- 文件大小(字节数)
- 时间戳(创建时间、修改时间、访问时间)
- 指向文件数据的指针(存储文件内容在磁盘上的位置)
-
硬链接计数(有多少个文件名指向这个inode)
inode的特点:
- 文件名 ≠ inode:文件名只是指向inode的链接,多个文件名(硬链接)可以指向同一个inode。
- 删除文件时:只有当硬链接计数降为0时,inode和文件数据才会被真正释放。
- inode耗尽问题:文件系统创建时会分配固定数量的inode,如果inode用尽,即使磁盘空间充足也无法创建新文件。
ls -i 文件名 # 查看文件的inode编号
stat 文件名 # 查看文件的inode详细信息
df -i # 查看文件系统的inode使用情况
inode编号
inode编号是很重要的,当系统在找一个文件时,步骤如下:
1.通过文件名先找到文件的inode编号
2.通过inode编号找到文件inode信息
3.通过inode信息中的block指针找到文件内容。
superBlock : 存储整个文件系统的信息。
inode : 存储文件的权限与属性。
data block : 真正存储文件内容。
二、block区
-
定义与作用
- block(块)是文件存取的最小物理单位。
- 由连续8个扇区(Sector)组成,每个扇区512字节,因此常见的block大小为4KB。
- 存储文件的实际内容,例如文本、图片、视频等数据。
-
特点
- 文件内容可能分布在多个不连续的block中,通过inode的指针关联。
- 文件越大,占用的block数量越多,但每个block只能归属于一个文件
三、block区和inode区的理解
硬盘格式化的时候,操作系统自动将硬盘分成两个区域。一个是数据区(block区),存放文件数据;另一个是inode区(inode table),存放inode所包含的信息。inode区是以数组的形式存储的,对应的数组下标就是inode编码,每个元素就是一个结构体(结构体内容在上面已说),inode结构体中会有一个指针,指向block区也就是存放的文件内容。
node编号是很重要的,当系统在找一个文件时,步骤如下:
1.通过文件名先找到文件的inode编号
2.通过inode编号找到文件inode信息
3.通过inode信息中的block指针找到文件内容。
-------------------------------------------------------------------------------------------------------------------------------