作者:Carlo Wood
时间:2008年4月
作者网站:http://code.google.com/p/ext3grep/
翻译者:www_xylove(网络ID)
时间:2013年1月27日
说明:翻译这个软件的功能主要是想证明一下自己的英文水平,顺便推广一下Carlo Wood写的这个ext3grep工具,当然,这个工具很可能很多人都已经知道了,因为毕竟是作者2008年写的,但是还可能有些读者不知道这个工具,所以,顺便推广一下罢了,其实这个工具实在是太重要了,在这个工具之前,rm -rf 删除了文件,是不可能恢复的,这个连ext3文件系统的开发者Andreas Diger都承认,但Carlo Wood不这么认为,作者认为rm文件后是可以恢复的,所以就有了ext3grep这个工具。自己翻译下来,自己的英文水平着实还有待有提高,该篇译文算是自己的练兵这作罢了.由于自己的翻译水平连自己都不屑一顾了,至于发在博客的原因,想比是自己喜欢写博客而已,没有任何原因了.强烈建议读者朋友还是读原作,请看上面的链接.
[@more@]组
每个ext3文件系统被分割成组,每个组有固定的块数,除了最后的组包含剩余的块.在超级块查看每个组的块数.
每个组使用一个位图块跟踪组内的哪些块被分配(使用);因此,每组最多有4096*4=32768个正常块.
另外的块被使用作为位图块分配inode数量.inode作为一种大小为128 bytes(理论上,可以被扩展,这个实际尺寸在超级块里被给予)数据结构被保存在每个组的表里面,(4096/128=32 inodes 每个块).在位图最多有32768bits,我们能够推断每组最多有32768个inodes.因此,在每个组的inode表里面有32768/32=1024个块.
位图块和inode表的开始块的数量记录在"group descriptor table"(组描述表),存储在超级块里面,是块1 或块2依赖于块的大小.
Table 2. A group descriptor | ||
Bytes | type | Description |
0 .. 3 | __le32 | Blocks bitmap block |
4 .. 7 | __le32 | Inodes bitmap block |
8 .. 11 | __le32 | Inodes table block |
12 .. 13 | __le16 | Free blocks count |
14 .. 15 | __le16 | Free inodes count |
16 .. 17 | __le16 | Directories count |
18 .. 31 | Reserved |
索引节点编号
索引节点表的索引节点包含文件系统文件每个数据类型的元数据,存储在文件系统中.这个类型很可能是软链接,软件连接仅仅是inode是不同的.软连接可能是一个目录,一个文件,一个管道,一个UNUX的套接字等等.在这些文件和目录中,实际的数据保存在inode之外的数据块中.在inode表首先保存12个块,如果多数块被需要,然后inode节点指针指向indirect block:包含更多数据块数量的块,后续包含更多的double indirect block and triple indirect block.
Table 3. An inode | ||
Bytes | type | Description |
0 .. 1 | __le16 | File mode |
2 .. 3 | __le16 | Low 16 bits of Owner uid |
4 .. 7 | __le32 | Size in bytes |
8 .. 11 | __le32 | Access time |
12 .. 15 | __le32 | Creation time |
16 .. 19 | __le32 | Modification time |
20 .. 23 | __le32 | Deletion Time |
24 .. 25 | __le16 | Low 16 bits of Group Id |
26 .. 27 | __le16 | Links count |
28 .. 31 | __le32 | Blocks count |
32 .. 35 | __le32 | File flags |
36 .. 39 | linux1 | OS dependent 1 |
40 .. 99 | __le32[15] | Pointers to blocks |
100 .. 103 | __le32 | File version (for NFS) |
104 .. 107 | __le32 | File ACL |
108 .. 111 | __le32 | Directory ACL |
112 .. 115 | __le32 | Fragment address |
116 .. 127 | linux2 | OS dependent 2 |
查看inode的数量
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/28227905/viewspace-1060171/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/28227905/viewspace-1060171/