如何利用FAT表計算塊大小
2013-11-20 19:33:43 來源:華軍數據恢復 作者:網站管理員 閱讀: 次
如何利用FAT表計算塊大小
我們知道,FAT表的表項號是連續的,即由0開始編號,0號表項與1號表項由系統保留作為特殊用途。
用戶數據由2號表項開始使用,也就是2號簇對應的FAT表項。表項內記錄的簇號可能是不連續的,但表項號本身則是連續的。利用表項號的這個連續性,我們就可以計算RAID塊的大小。
1.計算方法
利用FAT表計算塊大小的原理就是,相鄰磁盤的同條帶同位置的FAT項間占用的空間是一個塊大小。磁盤0和磁盤1是陣列中兩塊相鄰的磁盤,FAT項N位于磁盤0的某個塊,當該塊寫滿后,就會轉至磁盤1的同條帶進行寫入。FAT項M是磁盤1上與FAT項N同條帶同位置的FAT表項,這樣,由FAT項N開始至FAT項M前的空間即為一個塊。
因此,我們可以得出以下公式:
塊大小扇區數= (M- N)*每FAT表項字節數/每扇區字節數
最大的問題是,每個表項內記錄的值是為當前數據分配的下一個簇的簇號,而并不記錄表項號本身,我們必須想辦法得到當前FAT項的表項號才可以進行計算。那么,如何得到這個表項號呢?
我們知道,系統為文件分配空間時,會優先為其分配連續的空間,這時,它們的簇號就是連續的。簇號連續,則記錄這些簇號的相應表項也是連續的,簇號14、15、16連續,則它們所在的表項的號碼也是連續的。
因此,我們可以找到至少有三個連續的簇號記錄位置,取中間的簇號值(原則上另一磁盤的相同位置也需要符合同樣要求,但并不意味著不是三個連續的記錄位置就一定不能使用,因為可能會有結束標記存在。磁盤1中FAT項為M的位置記錄的是下一簇的簇號M+1,M-N與(M+1) - (N-1)結果是相同的。因此,我們可以使用符合要求的位置記錄的簇號直接進行計算。