目录
inode
ext2文件系统
Block Group
超级块(Super Block)
GDT(Group Descriptor Table)
块位图(Block Bitmap)
inode位图(Inode Bitmap)
i节点表(inode Table)
数据区(Data Blocks)
软硬链接
硬链接
软链接
软硬链接的对比
软硬链接的用途
inode
文件 = 内容 + 属性
而这个属性是存储在inode结构中的
文件的数据都存储在“块”中,在Linux系统中还需要找一块地方来存储这个文件的信息(属性),这种存储文件信息的区域叫做inode,中文名为“索引节点”
inode是保存文件属性的集合,一个文件只有一个inode
ls -l命令可以看到文件的详细属性,这些属性就是从inode中获取的
inode内有一个唯一的标识符,叫做inode号,我们可以通过ls -i命令查看inode号
文件名属性并未被纳入inode中,而是存储在当前文件所在的文件夹的数据结构中
inode的大小一般是128字节或者256字节,文件内容大小可以不同,属性大小一定相同
ext2文件系统
我们想要在硬盘上存储文件,必须先把硬盘格式化为某种格式的文件系统,才能存储文件,文件系统的目的就是组织和管理硬盘上的文件
ext2文件系统将整个分区划分为若干个同样大小的块组(Block Group),只要能管理一个分区,就能管理所有的分区,也就能管理所有的磁盘文件
Block Group
ext2文件系统会根据分区的大小划分为若干个Block Group,而每个Block Group都有着相同的结构组成
超级块(Super Block)
存放着文件系统本身的结构信息,描述着整个分区文件系统的信息。主要有block和inode的总量,未使用block和inode的数量,一个block和inode的大小,最近一次挂载的时间,最近一次写入数据的时间,最近一次检验磁盘的时间等其他文件系统的相关信息
Super Block若是被破坏,可以说整个文件系统结构就被破坏了
GDT(Group Descriptor Table)
块组描述符表,描述块组属性信息,每个块组描述符存储一个块组的描述信息。如在这个块组中从哪里开始是inode Table,从哪里开始是Data Blocks,空闲的inode和数据块还有多少个等等。块组描述符在每个块组的开头都有一份拷贝
块位图(Block Bitmap)
Block Bitmap中记录着Data Block中哪个数据块已经被占用,哪个数据块没有被占用
inode位图(Inode Bitmap)
每个bit表示一个inode是否空闲可用
i节点表(inode Table)
存放文件属性。如文件大小,所有者,最近修改时间等
是当前分组所有inode属性的集合
inode编号以分区为单位整体划分,不可跨分区
数据区(Data Blocks)
存放文件的内容,也就是一个个的Block
对于普通文件,文件的数据存储在数据块中
对于目录,该目录下所有的文件名和目录名存储在所在目录的数据块中
Block号按照分区划分,不可跨分区
软硬链接
硬链接
ln 被链接的文件 新文件
真正找到磁盘上文件的并不是文件名,而是inode
Linux中可以让多个文件名对应于同一个inode
test1和test2的链接状态完全相同,他们被称为指向文件的硬链接,从上图可以看出它们的inode是相同的,2表示的是inode526302的链接数为2,若是删除其一,则链接数-1
软链接
ln -s 被链接的文件 新文件
软链接是通过名字引用另外一个文件
但实际上,新引用的文件和被引用的文件inode不同
软硬链接的对比
软链接是独立的文件
硬链接只是文件名和目标文件inode的映射关系
软硬链接的用途
硬链接:
- 目录中的 . 和 .. 就是硬链接
- 文件备份
软链接:
- 快捷方式
完