- 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Ext2格式分析
Ext2格式分析 1、Ext2磁盘数据结构 任何Ext2分区中的第一个块从不受Ext2文件系统的管理,因为这一块是为分区的引导扇区所保留的。Ext2分区的其余部分分成块组(block group),每个块组的分布图如图所示。正如你从图中所看到的,一些数据结构正好可以放在一块中,而另一些可能需要更多的块。在Ext2文件系统中的所有块组大小相同并被顺序存放,因此,内核可以从块组的整数索引很容易地得到磁盘中一个块组的位置: 由于内核尽可能地把属于同一个文件的数据块存放在同一块组中,所以块组减少了文碎片。块组中的每个块包含下列信息之一: 文件系统的超级块的一个拷贝 一组块组描述符的拷贝 一个数据块位图 一个索引节点位图 一个索引表 属文件的一大块数据,即数据块 如果一个块中不包含任何有意义的信息,就说这个块是空闲的。 从上图中可以看出,超级块与组描述符被复制到每个块组中。 其实呢,只有块组0中所包含超级块和组描述符才由内核使用,而其余的超级块和组描述符都保持不变;事实上,内核甚至不考虑它们。当e2fsck程序对Ext2文件系统的状态执行一致性检查时,就引用存放在块组0中的超级块和组描述符,然后把它们拷贝到其他所有的块组中。如果出现数据损坏,并且块组0 中的主超级块和主描述符变为无效,那么,系统管理员就可以命令e2fsck引用存放在某个块组(除了第一个块组)中的超级块和组描述符的旧拷贝。通常情况 下,这些多余的拷贝所存放的信息足以让e2fsck把Ext2分区带回到一个一致的状态。 那么有多少块组呢?这取决于分区的大小和块的大小。其主要限制在于块位图,因为块位图必须存放在一个单独的块中。块位图用来标识一个组中块的占用和 空闲状况。所以,每组中至多可以有8×b个块,b是以字节为单位的块大小。例如,一个块是 1024 Byte,那么,一个块的位图就有8192个位,正好就对应8192个块。Ext2超块(super Block) Ext2超块中包含了描叙文件系统基本尺寸和形态的信息,是用定义在include/Linux/ext2_fs.h中ext2_supe_block数据结构描述的。文件系统管理器利用它们来使用和维护文件系统。通常安装文件系统时只读取数据块组0中的超块,但是为防止文件系统被破坏,每个数据块组都包含了它的拷贝。超块中的主要信息如下: Magic Number:文件系统安装软件用来检验是否是一个真正的EXl2文件系统超块。当前Exl2版本中为0xEF53。 Block Size:以字节记数的文件系统块大小,如1024字节。 Blocks per Group:每个组中块数目。当文件系统创建时此块大小被固定下来。 Free Blocks:文件系统中的空闲块数。 Free Inodes:文件系统中空闲Inode数。 First Inode:文件系统中第一个Inode号。EX配根文件系统中第一个Inode将是指向‘/’目录的人口。 ExT2组描述符(Group Descript) 每个数据块组都拥有一个描叙结构的组描叙符,它是定义在include/Linux/ext2一fs.h中的ext2一group—desc结构。组描叙符放置在一起形成了组描叙符表。每个数据块组在超块拷贝后包含整个组描叙符表。象超块一样,所有数据块组中的组描叙符表被复制到每个数据块组中以防文件系统崩溃。EX配文件系统仅使用第一个拷贝(在数据块组0中)。组描叙符主要包含以下信息: Blocks Bitm印:对应此数据块组的块分配位图的块号,在块分配和回收时使用。 Inode Bitmap:对应此数据块组的Inode分配位图的块号,在Inode分配和回收时使用。 Inode Table:对应数据块组的Inode表的起始块号。每个Inode用下面的EX佗Inode结构来表示。 Free blocks count,Free Inodes count,USed directory count ExT2目录 在ExT2文件系统中目录是包含文件存取路径的特殊文件。目录文件是一组目录人口的链表,它们包含以下信息: Inode:对应每个目录入口的1node,被用来索引储存在数据块组的Inode表中的Inode数组。 name length:以字节记数的目录人口长度。 name:目录人口的名称 ExT2索引节点(hlode) ExT2通过一个Inode结构来说明一个文件,每个Inode有唯一的编号。Inode描叙文件的物理位置以及文件的存取权限、文件修改时间及文件类型。每个数据块组的EX他Inode被保存在Inode表中,同时还有一个位图被系统用来跟踪已分配和未分配的Inode。图2给出了EXl2 Inode的格式,ext2_in_ode定义在include/Linux/ext2_fS
文档评论(0)