mft文件记录属性头包括_NTFS 文件系统基础知识
1.??????NTFS 中所有都是文件,包括無數據,都是以文件形式進行訪問。
元數據文件包括:
$Mft? $MftMirr? $LogFile?$Volume? $AttrDef? $BitMap?$Boot? $BadClus? $Quota?$UpCase? $Cairo。
2.??????普通文件(目錄)的信息都是通過屬性/值對來表示的。
3.??????$MFT 中記錄了所有文件的文件記錄,文件記錄大小一般為 1K。也就是每個文件都會在 $MFT 文件中存放一份記錄,且這個文件記錄一般為 1K 大小。
文件記錄里一般也是屬性-值對來組織。
4.??????文件屬性包括
#define$UNUSED????????????????????????? (0X0)
#define$STANDARD_INFORMATION??????????? (0x10)
#define$ATTRIBUTE_LIST????????????????? (0x20)
#define$FILE_NAME? ?????????????????????(0x30)
#define$OBJECT_ID?????????????????????? (0x40)
#define$SECURITY_DESCRIPTOR???????????? (0x50)
#define$VOLUME_NAME???????????????????? (0x60)
#define$VOLUME_INFORMATION????????????? (0x70)
#define$DATA??????????????????????????? (0x80)
#define$INDEX_ROOT????????????????????? (0x90)
#define$INDEX_ALLOCATION??????????????? (0xA0)
#define$BITMAP????????????????????????? (0xB0)
#define$SYMBOLIC_LINK?????????????????? (0xC0)
#define$EA_INFORMATION????????????????? (0xD0)
#define$EA????????????????????????????? (0xE0)
#ifdef_CAIRO_
#define$PROPERTY_SET??????????????????? (0xF0)
#endif? //?_CAIRO_
#define$FIRST_USER_DEFINED_ATTRIBUTE??? (0x100)
#define $END???????????????????????????? (0xFFFFFFFF)
5.??????如果一個數據屬性太大而導致一個文件記錄不夠存儲,則會使用行串(run)來組織,一般一個文件的數據就是由這些行串表來組織起來的。對于非數據屬性,也可以這么做。
其實準確地說,并不一定是一個數據屬性,而是一個非駐留屬性,即文件記錄并不能記錄一個屬性的所有內容時,那么文件記錄中只會保留屬性頭和行串信息,在數據區域里,這些行串信息所代表的數據,才表示這個屬性。
6.??????如果一個文件記錄不能存儲下所有屬性或屬性頭,也就是一個文件的屬性太多時(常常是因為數據區太碎,導致屬性頭中的行串太多),則其它屬性會分配其它文件記錄來存儲,在 $ATTRIBUTE_LIST 里面會有串聯信息(文件引用)。那么第一個 MFT 記錄被稱為 base file record。
7.??????文件(記錄)引用:指該文件在 MFT 中的位置。
8.??????文件目錄,對于小的文件目錄,它的子文件及目錄的文件引用信息被存放在 $INDEX_ROOT 屬性中(不是 $DATA),對于大目錄,用 B-樹用來存放這些信息。B-樹中的每一項,除了包含文件名(目錄名)外,還包含相應的文件記錄引用以及時間戳和大小等。$INDEX_ALLOCATION 記錄了這些緩沖的行串信息。位圖屬性記錄中緩沖區中哪些 VNC 被使用。所以 $INDEX_ROOT, $INDEX_ALLOCATION, $BITMAP 構建了這個 B-樹。
9.??????$INDEX_ALLOCATION 記錄了目錄項的所有行串。
10.??行串表示為 ,表達式為 <0xXY ?Legnth(占用 x 個簇) Offset(y 起始簇號)>,比如: 0x31 0x06 0x12 0x34 0x56 ,表示 Length 為一個字節,偏移為 3 個字節,即表示從 簇號為 0x563412 開始的 0x06 個簇的空間。
行串計算的偏移是相對的,且是有符號的,第二個行串的偏移是根據第一個行串的偏移得來的。即拿第二個行串的偏移加上第一個行串的偏移,才得到第二個行串的真正偏移。
原文:http://blog.csdn.net/henzox/article/details/39579029
總結
以上是生活随笔為你收集整理的mft文件记录属性头包括_NTFS 文件系统基础知识的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python --version没输出_
- 下一篇: cass有坐标文件生成里程文件_怎样用C