探索NTFS

才智咖 人氣:2.91W
探索NTFS
探索NTFS

NTFS是WindowsNT引入的新型檔案系統,它具有許多新特性。本文旨在探索NTFS的底層結構,所敘述的也僅是檔案在NTFS捲上的分佈。NTFS中,卷中所有存放的資料均在一個叫$MFT的檔案中,叫主檔案表(MasterFileTable)。而$MFT則由檔案記錄(FileRecord)陣列構成。FileRecord的`大小一般是固定的,通常情況下均為1KB,這個概念相當於Linux中的inode。FileRecord在$MFT檔案中物理上是連續的,且從0開始編號。$MFT僅供FileSystem本身組織、架構檔案系統使用,這在NTFS中稱為元資料(Metadata)。以下列出Windows2000Release出的NTFS的元資料檔案(我將要給出的示例程式碼的部分輸出結果)。
FileRecord(inode)FileName
--------------------------
0$MFT
1$MFTMirr
2$LogFile
3$Volume
4$AttrDef
5.
6$Bitmap
7$Boot
8$BadClus
9$Secure
10$UpCase
11$Extend

Windows2000中不能使用dir命令(甚至加上/ah引數)像普通檔案一樣列出這些元資料檔案。實際上FileSystemDriver()維護了一個系統變數NtfsProtectSystemFiles用於隱藏這些元資料。預設情況下,這個變數被設為TRUE,所以使用dir/ah將得不到任何檔案。知道這個行為後使用i386kd修改NtfsProtectSystemFiles後即可以列出元資料檔案:

kd

TAGS:探索 ntfs