rdas2004 发表于 2009-2-13 21:53:10

好东西,,好东西,,收藏了

Bisonisme 发表于 2009-2-13 22:17:32

真的很期待 我留了联系方式了

gudyir 发表于 2009-2-14 12:21:54

绝对好书,支持下,希望能快点出(38:

amw1978 发表于 2009-2-14 14:35:53

看目录是很强大的一本书,不知道有没有卖的!

游龙 发表于 2009-2-14 23:44:56

好贴,辛苦楼主,帮忙顶一下~~

shuaiji0077 发表于 2009-2-15 09:13:18

好贴,辛苦楼主,帮忙顶一下~~

qingshui 发表于 2009-2-15 13:29:59

很棒的一本书,谢谢推荐

ttnml 发表于 2009-2-16 09:37:22

11.2 FAT表在阵列恢复中的作用

11.2 FAT表在阵列恢复中的作用
由于FAT表具有连续性和容易识别的特点,所以,FAT表在阵列的分析过程中可以用于分析块的大小和数据的前后关系。
11.2.1 利用FAT表计算块大小
我们知道,FAT表的表项号是连续的,即由0开始编号,0号表项与1号表项由系统保留做特殊用途。用户数据由2号表项开始使用,也就是2号簇对应的FAT表项。表项内记录的簇号可能是不连续的,但表项号本身则是连续的。利用表项号的这个连续性,我们就可以计算RAID块的大小。
1. 计算方法
利用FAT表计算块大小的原理就是,相邻磁盘的同条带同位置的FAT项间占用的空间是一个块大小。如图11.1所示。

图11.1中,磁盘0和磁盘1是阵列中两块相邻的磁盘,FAT项N位于磁盘0的某个块,当该块写满后,就会转至磁盘1的同条带进行写入。FAT项M是磁盘1上与FAT项N同条带同位置的FAT表项,这样,由FAT项N开始至FAT项M前的空间即为一个块(灰色加亮部分)。因此,我们可以得出以下公式:
块大小扇区数 = (M – N)* 每FAT表项字节数 / 每扇区字节数
最大的问题是,每个表项内记录的值是为当前数据分配的下一个簇的簇号,而并不记录表项号本身,我们必须想办法得到当前FAT项的表项号才可以进行计算。那么,如何得到这个表项号呢?
我们知道,系统为文件分配空间时,会优先为其分配连续的空间,这时,它们的簇号就是连续的。簇号连续,则记录这些簇号的相应表项也是连续的,如图11.2所示。簇号14、15、16连续,则它们所在的表项的号码也是连续的。

因此,我们可以找到至少有三个连续的簇号记录位置,取中间的簇号值(原则上另一磁盘的相同位置也需要符合同样要求,但并不意味着不是三个连续的记录位置就一定不能使用,因为可能会有结束标记存在。后面我们的实例中2.img中所取的位置就没有明显的三个簇号连续)。对于图11.2中的记录值为15的簇来讲,它的值实际上是当前位置的表项号14加1而来。同样,对于图11.1中来讲,在磁盘0上FAT表项为N的位置实际记录的是下一簇的簇号N+1;同样,磁盘1中FAT项为M的位置记录的是下一簇的簇号M+1,M-N与(M+1)-(N-1)结果是相同的。因此,我们可以使用符合要求的位置记录的簇号直接进行计算。为了便于理解,下面我们将演示一个实例的计算。
2. 实例分析
下面我们来计算一个由两个磁盘组成的RAID0的块大小。其FAT表的部分内容如图11.3所示。

图11.3中,1.img明显是一个FAT表的起始扇区,从起始处的特征值可知这是一个FAT32文件系统,所以每个FAT表项的大小为4个字节。当然,我们的计算并不要求使用FAT表的起始处,可以任意选择一个符合要求的位置,我们选择图中加亮处的0x00000031(1.img)和0x00001031(2.img),分别将其换算成十进制49(0x00000031)和4145(0x00001031),然后代入公式:
( 4145 – 49 ) × 4 / 512 = 32个扇区
所以,该RAID0的块大小为32个扇区。

[ 本帖最后由 ttnml 于 2009-2-16 09:56 编辑 ]

ttnml 发表于 2009-2-16 09:44:30

谢谢关注及帮忙顶帖的朋友们!
QQ:362477727 希望结交更多的朋友!

[ 本帖最后由 ttnml 于 2009-2-16 15:22 编辑 ]

elite306 发表于 2009-2-16 17:27:25

看完目录就知道是一本非常全面的数据恢复用书,支持!
页: 1 2 3 4 5 [6] 7 8 9 10 11 12 13 14 15
查看完整版本: 《数据重现:文件系统原理精解与数据恢复最佳实践》内容精选