首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ext2文件系统

ext2文件系统
EN

Unix & Linux用户
提问于 2016-08-30 14:27:33
回答 2查看 432关注 0票数 0

我有一个关于文件系统的ext2的问题。我需要很好的了解这件事。我想我能理解这上面的一切。但有件事困扰着我。正如您从第一张图片中可以看到的那样,这个文件系统将卷划分为一些“块组”。它们中的每一个都相互有一个Inode表节。我想知道的是,块组0的Inode表与块组1(2,3)的Inode表是否相同。(除0外)。它们是一样还是不一样?如果它们是相同的,那么如何找到哪个Inode_table对应于一个i_node。如果不是,在这种情况下,似乎有超过一个相同的i_node。如果你确切知道答案,让我知道你的想法的基础,如网站或书籍,你可以证明你是正确的。

EN

回答 2

Unix & Linux用户

发布于 2016-08-30 17:26:55

如果您询问inode表相对于块组的开头是否总是处于相同的偏移量,这意味着在它必须具有固定大小之前的所有内容。块和inode位图总是一个块。块组描述符表不固定。文件上是这样写的:

根据定义了多少块组,此表可能需要多个存储块。在有疑问的情况下,一定要参考超级块。

假设您想为给定的inode查找inode表,您需要知道inode属于哪个块组。如果您知道块组的数目、块大小(S_日志_区块_大小)和每个块组的块数量(S_区块_每_组),就可以找到块组的开始,块组描述符表位于其中。它包含此块组(bg_inode_表格)的inode表的第一个块的块id。

Ext文件系统内部布局文档:http://www.nongnu.org/ext2-doc/ext2.html

票数 1
EN

Unix & Linux用户

发布于 2019-05-28 19:29:26

(发帖后,我意识到我迟了几年,无论如何,我会把这个答案留在这里)如果我正确理解了你的问题,就会对组描述符表中的内容和位图所指的内容产生混淆。

每个块组包含一个超级块、一组组描述符、块和inode位图以及一个inode表。组描述符集用于所有块组(超级块和组描述符是备份副本),但位图和inode表仅用于该块组。

因此,例如,如果您对第四个块组感兴趣,那么您可以从一个组描述符表中读取第四个条目(要么是磁盘开头的主表,要么是备份副本),然后从其中读取块号和inode位图所在位置。

注意:我上面写的并不完全正确,因为稀疏选项通常是默认设置的,而且并非所有块组都有一个超级块(以节省空间)。很容易在一个块中读取,因为它是一个超级块,测试超级块的s_magic字段,看看它是否等于EXT2_SUPER_MAGIC,如果它不正确,那么这个块组以位图开始。

Hoov发布的链接是一个很好的链接,这里还有另一个有用的链接-- http://cs.smith.edu/~nhowe/Teaching/csc262/oldlabs/ext2.html --它有几个令人困惑的方面,但是与Hoov的链接结合使用,应该可以帮助您启动和运行。https://wiki.osdev.org/Ext2也是好的。

票数 0
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/306681

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档