linux文件系统

ext2文件系统示意图

启动扇区:安装启动引导程序MBR
data block:用于放置文件内容,格式化时每个block的大小就固定了,并且每个block都有编号,每个block最多只能放一个文件的数据
inode table:存放inode信息,inode重点介绍
inode记录的信息主要包括:
      • 文件访问模式:r w x
      • 文件所有者与组
      • 文件大小
      • 文件创建或改变的时间
      • 最近一次读取的时间
      • 最近修改的时间
      • 定义文件特征的标志,如SetUID
      • 文件真正内容指向
          每个inode大小为固定的128bytes,每个文件对应一个inode,系统读取文件时先找到inode,然后分析inode所记录的权限与用户是否符合,符合才能开始读取block的内容,inode结构如下:
文件系统描述:记录每个block group的开始于结束的block号码,以及每个区段(superblock、bitmap、inodemap、datablock)分别介于哪个block号码之间,可以用dumpe2fs查看
block bitmap:记录哪些block是使用的和未使用的
inode bitmap:记录哪些inode是使用的和未使用的
 
与目录树的关系:
每一个目录同样对应一个inode,inode中记录该目录的相关权限和属性,该inode对应的block中记录在这个目录下的文件名与该文件名占用的inode号码数据,示意图如下
因此目录所占的空间均为block大小的整数倍

 

目录树的读取过程(以读取/etc/passwd文件为例):

连接文件
 
硬连接:文件内容是与inode相关的,文件名是与目录相关的,如果某个文件名对应到某个文件的inode号码,这就是一条硬连接
 
举例来说:假设在我的/home/yg目录下有一个test文件:

 可以看到该文件inode序号为399406,目前只有一个连接指向它,然后我们创建一个硬连接test_link指向它,可以看到test test_link指向的是同一个inode,因而连接数变为2

硬连接的实际示意图如下:

 

删除文件时,只有当指向文件实际内容上所有的硬连接都被删除,才会将文件内容删除~硬连接不能跨文件系统,也不支持目录
 
符号连接(软连接,类似windows的快捷方式)
符号连接是一个新文件,文件的内容就是指向文件的文件名,举例来讲,对/home/yg/test文件创建符号连接/root/symbol_link

 

 示意图如下:

 

连接文件的内容就是目标文件的文件名 /home/yg/test 正好13个字节,和命令行中显示的结果一样。若文件被删除,则通过软连接将会访问失败。

原文地址:https://www.cnblogs.com/yangang92/p/7350360.html