Welcome 微信登录

首页 / 操作系统 / Linux / Linux的标准文件系统----EXT2

EXT2分为几个重要部分:inode、block、superblockEXT2将文件分为两部分存储,文件的权限等属性放在inode中,而其实际的数据放在block中,superblock当然就是记录整个文件系统的inode和block的信息了。(1)inode:一个inode的大小被固定为128字节,一个文件占用一个inode,但是并不代表一个inode只保存一个block的指向,因为一个文件通常都是由N个block保存的。inode基本上记录了文件的访问权限、所属用户/用户组、大小、atime、ctime、mtime、指向。。。从128字节的固定大小来看,文件系统能够创建的文件数量就一定与inode的数量有关了,这个稍后讨论(2)block:在目录中:记录该目录下的文件名和该文件名所占用的inode号码在数据中:记录文件数据一个block大小分为1K,2K,4K三种,如果是4K的,那么要建一个100K的文件,就需要25个block了有了上面inode和block的介绍,我们就可以讨论一个文件系统所能保存的最大文件量了。如果一个inode指向一个block,那么按100K的文件来算,就需要25个inode了,这实在很浪费啊,因为inode再小也有128字节,EXT2为了解决这种资源浪费问题,设计了inode的指向,将inode分为12个直接指向、一个间接指向、一个双间接指向和一个三间接指向,剩下的用来记录文件权限和属性以1K的block来算:12个直接指向,直接指向block,那么最大就可以指向12个block,最大文件大小为:12*1K = 12K一个间接指向,指向block,再由block指向其他block,而记录一个block号码的指针占4个字节,这样1K的block最大指向256个block,最大文件大小为:256*1K = 256K一个双间接指向,指向一个block,在由这个block指向256个block,每个block再指向256个block,这样,最大文件大小为:256*256*1K一个三间接指向,按双间接指向推理的话,就是让第三层的256个block每一个又指向256个block,最大文件大小为:256*256*256*1K显然,1K的block的文件系统最大可存入的文件大小为:16GB(2K、4K的会由于EXT2本身的限制而得出不符合实际的结果)(3)superblock记录整个文件系统的相关信息,与文件系统共存亡记录了inode和block的总量、未使用和已使用的inode和block量、文件系统挂载的相关信息。。。。(4)查看文件系统
  1. $ df  
这个命令会让你找到每一个挂载的设备文件,如/dev/hdc2
  1. $ dumpe2fs /dev/hdc2  
这个命令可以显示出这个设备文件所使用文件系统及其类似于superblock的信息(应该说比superblock记录可能还多,因为实在很多,没有看完。。。)(5)从目录树读取文件以读取/etc/passwd为例系统首先通过挂载点的信息找到当前设备文件的根目录的inode,当它检测到inode中记录了根目录的r和x权限时,就可以进入根目录了,并且取得block的内容;进入根目录后,跟据block,找到到/etc目录的inode;读取inode,当读取到用户拥有r和x的权限时,就获得并读取block,进入该目录;根据block,找到passwd的inode,读取inode,有r权限时,就可以读取passwd的block内容了。Linux里必须掌握的命令Linux目录配置标准FHS相关资讯      Linux文件系统 
  • Linux文件系统简介及其系统管理工  (今 13:21)
  • 哪个文件系统最适合你的 Linux 系  (01月19日)
  • Linux文件系统管理  (12/15/2015 20:58:29)
  • Linux虚拟文件系统VFS  (04月04日)
  • Linux磁盘及文件系统概念  (12/22/2015 15:02:55)
  • Linux 文件系统(inode和block)  (12/02/2015 19:34:16)
本文评论 查看全部评论 (0)
表情: 姓名: 字数