Linux EXT2 文件系统

1. EXT2 文件系统

EXT2文件系统最前面有一个启动区,这个启动扇区可以安装引导装载程序。其余部分被分成块组(block group),示意图如下:


块组中的每一块包含下列信息之一:

1) 超级块(super block):记录文件系统的整体信息,包括inode/block的总量、使用量、剩余量,以及文件系统的格式和相关信息等。

2) 组描述符(group description):描述自己块组内部的信息,说明每个块组开始与结束的block号码,以及说明每个区段(super block, bit map, inode map, data block)分别位于那一个block号码之间。

3) 数据块位图(block bitmao): 记录数据块的使用情况,包括那些数据块可用,哪些数据块不可用。

4) 索引点位图(inode bitmap): 与数据块位图相似,记录哪些inode可用,哪些inode不可用。

5) 索引点节点表(inode table): 记录文件的属性、权限以及该文件实际数据是放置在那个block中,每个inode的大小均固定为128bytes。

6) 数据块(data block):实际记录文件的内容,若文件太大,会占用多个block。

2. 与目录树的关系

当在Linux下的EXT2文件系统创建一个新目录时,EXT2文件系统会分配一个inode与至少一块block给该目录。其中,inode记录该目录的相关权限和属性,并可记录分配到的那块block号码,而block则是记录这个目录下的文件名与文件名占用的inode号码数据。

当我们在Linux下的EXT2文件系统中新建一个文件时,EXT2会分配一个inode与相对于该文件大小的block数量给该文件。例如,我的一个block大小为4KB(block的大小和总量是在格式化的时候就固定了的,除非重新格式化),而我要建立一个100KB的文件,那么Linux将分配一个inode与25个block来存储文件。

3.目录树的读取

举列说明系统读取文件的流程,例如我们读取/etc/passwd这个文件:

1) / 的inode:通过挂载点的信息找到/dev/hdc2的inode号码为2的根目录inode,且inode有读写权限

2) / 的block:经过上个步骤取得block的号码,并找到该内容有etc/的inode号码

3) etc/的inode:读取etc/的inode号码可知有r和x的权限,因此可读etc/的block内容

4) etc/的block:经上个步骤取得的block号码,找到内容是passwd文件的inode号码

5) passwd的inode:从passwd的inode可知有读的权限,因此读取passwd的内容

6) 将passwd的内容读取出来

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值