2013-08-25 48 views
1

我想知道每個MFT記錄的實際(磁盤)大小。由於每個MFT記錄的簇數量在引導扇區中設置,因此我猜每個扇區的大小都相同。NTFS - 文件記錄大小

但是,每個記錄標題存儲一個附加值:其Allocated size(在0x1C)。據我所知,這個值總是等於存儲在引導扇區中的值。

這兩個有可能是不同的(和何時)? 如果沒有,每個記錄中的Allocated size值是有點浪費,對吧?

回答

1

這實際上不是那麼多浪費。您應該嘗試查看存儲在文件記錄中的屬性數量超過1 KB時會發生什麼情況。 (通過添加額外的文件名,流等)。如果附加屬性存儲在卷的數據部分或另一個文件記錄中,則對於不同版本的NTFS,至少不清楚(至少對我而言)。

在以前的NTFS版本中,MFT文件記錄的大小等於一個簇的大小(通常爲4KB),這是浪費空間,因爲有時候所有的屬性都需要小於1KB的空間。由於NT 5.0(我可能是錯的),經過一些研究,微軟決定所有的MFT文件記錄應該是1KB。因此,存儲該號碼的一個原因可能是向後兼容。想象一下你找到了一個仍然使用4KB文件記錄的舊硬盤,並且你想添加一些文件到該驅動器或複製一些文件。

另一個用於存儲該數字的用法是,每次獲取文件記錄時都不需要讀取引導扇區,以查看其大小應爲多少。想象一下,如果您是由於向後兼容性而必須緩解4KB記錄到1KB記錄之間的傳輸的算法。如果你不知道會發生什麼,你將不得不讀取引導扇區來找出預期的記錄大小。

如果您無法訪問引導扇區或者您嘗試從引導扇區已被擦除或簇已損壞的驅動器恢復文件,該怎麼辦?如果卷位於多個盤區並且您正在從一個盤區讀取MFT並且引導扇區處於您無法訪問的另一個盤區,會發生什麼情況?

通常情況下,文件系統是由很多人在很長一段時間內設計的。如果這些價值是多餘的,我認爲他們肯定會注意到。