免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 5498 | 回复: 2
打印 上一主题 下一主题

dumpe2fs [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2012-03-03 16:15 |只看该作者 |倒序浏览
dumpe2fs列出的first inode为什么是11?   为什么有的组有Group descriptors,有的则没有?

论坛徽章:
0
2 [报告]
发表于 2012-03-03 23:48 |只看该作者
本帖最后由 splendid12 于 2012-03-04 00:06 编辑

--------------------------------------------------------------------------------------------------------------------------------------------
第 1 个问题:

首先明确一个问题,那就是这样图:


以我的虚拟机硬盘为例,dumpe2fs /dev/sda1 的结果:
...
first inode 11
...
Group 0:
...
inode table at 5-255
...

必须清楚,这些数值是指 block 号:一个文件系统的最小存储单位就是 block,从 0 开始编号。
好,第一个 inode,即在 group 0 中的 inode ,编号 5-255,但是上面确实显示的是 first inode 11,即第一个 inode 应该在 11 号 block,
为什么?

这是标准规定的:
inode 2,后面解释根目录;因此所有的分区,跟目录都是 inode 2
inode 5,是 boot loader inode
注意:inode 是从 1 开始编号的!而 block 是从 0 开始编号的!

看看 ls -id / /boot
发现 2 /       2 /boot,说明 /boot 是一个根目录, / 又是一个根目录,但是他们处在不同的文件系统

标准规定,第一个 inode 是从 11 开始的
(其实这里面还有一个小小的问题,其实 first inode 是依据一个 super block 中的值决定到底是多少的,但是你可以简单地理解成从 11 开始)

--------------------------------------------------------------------------------------------------------------------------------
第 2 个问题:
Group descriptor 是一个 group 的描述符,里面有极其重要的信息。
但是每个 group 在存放 Group descriptor 时,并不只是存放自己的 Group 的 Group descriptor!

每个 group 都有 Group descriptor table,为什么是 table,因为他是一个 Group descriptor 的集合嘛:
每个 table 存储了本文件系统的所有 group 的 group descriptor。
而且 标准 规定,需要在group 号为 0,1,3,5,7,
以及3 5 7的指数的 group block 号中做拷贝,如 9,25,49,... 作备份,
(标准还规定,super block 的备份 和 Group descriptor table 的备份 使用相同的策略,也就是说,super block 也存放了本文件系统所有的元信息)

这是为什么?

为了备份:适当的数据冗余增加了健壮性。
题外话,这就是为什么你是对称的:即使你有一个手坏了,你还有另一个;备份是宇宙的法则 —— 适用于一切系统。

以我的虚拟机硬盘为例,如下图:


每个 desc table 占用 1 个 block size,block size 没忘吧,就是一个文件系统的最小储存单位。

------------------------------------------------------------------------------------------------------------------------------------------
如果你想搞清楚更多细节问题,请详细地阅读我的这篇文章:(最好具有 C 和 数据结构 的基础)
http://lizeaaaa.blog.163.com/blo ... 218201211052844840/

对 ext2/3 文件系统的 数据结构的 研究,我只学了3天的 Linux 就能看懂了,我花了 40+ 个小时(2天只睡了5小时)才完成上面链接的文章。
你只需要花比我少的时间,在这篇文章的帮助下,也许更快就能搞懂 ext2/3 的文件系统的 数据结构了。

加油搞啊!

论坛徽章:
0
3 [报告]
发表于 2012-03-04 11:33 |只看该作者
splendid12 发表于 2012-03-03 23:48
---------------------------------------------------------------------------------------------------- ...
真心感谢啊!……c语言学了,老师教的,数据结构,背着老师看的…
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP