系统文件
不同于FAT/FAT32分区固定的数据块布局,NTFS卷中所有的数据都以文件的方式保存,包括引导记录与目录等卷重要数据(在NTFS卷中重要数据块被称为系统文件),这样就允许将卷重要数据存放到卷中的任何地方(除了引导记录),并且对于所有重要数据都有一个标准的方法对其进行操作。这个特性使得任意改变卷尺寸十分方便(在卷位图文件后加上或减去增减的扇区信息就行了),而且也可以很容易地避免了FAT/FAT32卷中FAT表部分有物理损坏则卷中就会有很大部分空间使用的问题。
对应于重要数据的种类,NTFS分区共有16个系统文件,他们分别是:
记录号
|
名字
|
OS
|
描述
|
0
|
$MFT
|
|
Master File Tab 主文件表。该文件记录了卷中所有的文件(包括$MFT自己)的描述信息,通过$MFT文件可以访问卷中的所有信息。$MFT文件由多个文件记录(FRS)组成。每个文件的描述信息占用一个或多个文件记录。对于每一个文件,$MFT用一套被称为属性(Attributes)的记录来保存其信息。$MFT中前12个文件信息分别记录了12个系统文件的信息,从12-23号记录保留,从24号记录起记录其他文件的信息。
|
1
|
$MFTMirr
|
|
Mirror of $MFT $MFT文件中前4个文件($MFT、$MFTMirr、$LogFile、$Volume)的描述的备份。本文件主要用于卷数据损坏时恢复卷。
|
2
|
$LogFile
|
|
卷事务的日志信息文件。
|
3
|
$Volume
|
|
卷基本信息,包括卷名,序列号等信息。
|
4
|
$AttrDef
|
|
属性定义,该文件定义了本卷中可用的属性类型。
|
5
|
.(Root Directory)
|
|
NTFS卷的根目录。
|
6
|
$Bitmap
|
|
记录卷中所有分配单元的使用情况。本文件中每一个Bit数据对应一个簇。
|
7
|
$Boot
|
|
引导记录,通过本文件的代码系统才能从NTFS卷中启动。本文件是NTFS卷中唯一一个位置固定的文件,必须置于卷的第一个扇区处。
|
8
|
$BadClus
|
|
记录卷中坏簇的信息,本文件是稀疏文件,只包含坏簇的信息。
|
9
|
$Qutoa
|
NT
|
|
9
|
$Secure
|
2K
|
记录卷中用到的安全描述符信息。
|
10
|
$UpCase
|
|
本记录Unicode编码下的所有字符的大写的代码,用于比较和排序文件名。
|
11
|
$Extend
|
2K
|
本文件是一个目录,扩展元数据目录,其中记录了卷中的对象的GUID及配额等信息。$ObjId, $Quota, $Reparse, $UsnJrnl
|
12
|
$Extend\$Reparse
|
2K
|
重解析点文件 11~15 标记为使用
|
13
|
$Extend\$UsnJrnl
|
2K
|
变更日志文件
|
14
|
$Extend\$Quota
|
2K
|
配额管理文件
|
15
|
$Extend\$ObjId
|
2K
|
对象ID文件
|
16~23
|
|
|
保留, 标记为未使用
|
>24
|
A File
|
|
一般文件
|
>24
|
A Dir
|
|
一般目录
|
…
|
…
|
|
|
文件至少含有$STANDARD_INFORMATION , $FILE_NAME属性
$MFT
在MFT 文件的属性记录集
Type
|
Description
|
Name
|
0x10
|
$STANDARD_INFORMATION
|
|
0x30
|
$FILE_NAME
|
$MFT
|
0x80
|
$DATA
|
[Unnamed]
|
0xB0
|
$BITMAP
|
[Unnamed]
|
未命名数据流格式
Inode
|
Filename
|
Description
|
0
|
$MFT
|
Master File Table -An index of every file
|
1
|
$MFTMirr
|
A backup copy of the first 4 records of the MFT
|
2
|
$LogFile
|
Transactional logging file
|
3
|
$Volume
|
Serial number, creation time, dirty flag
|
...
|
...
|
...
|
该文件是$MFT文件的备份,存放了$MFT中前4个文件的文件记录。该文件的作用就是当$MFT文件被损坏时恢复卷中的数据。
在MFT 文件的属性记录集
Type
|
Description
|
Name
|
0x10
|
$STANDARD_INFORMATION
|
|
0x30
|
$FILE_NAME
|
$MFTMirr
|
0x80
|
$DATA
|
[Unnamed]
|
Inode
|
Filename
|
Description
|
0
|
$MFT
|
Master File Table -An index of every file
|
1
|
$MFTMirr
|
A backup copy of the first 4 records of the MFT
|
2
|
$Logfile
|
Transactional logging file
|
3
|
$Volume
|
Serial number, creation time, dirty flag
|
4
|
...
|
If present, further FILE records from the MFT (see $MFT)
|
$LogFile
在MFT 文件的属性记录集
Type
|
Description
|
Name
|
0x10
|
$STANDARD_INFORMATION
|
|
0x30
|
$FILE_NAME
|
$LogFile
|
0x80
|
$DATA
|
[Unnamed]
|
在MFT 文件的属性记录集
Type
|
Description
|
Name
|
0x10
|
$STANDARD_INFORMATION
|
|
0x30
|
$FILE_NAME
|
$Volume
|
0x50
|
$SECURITY_DESCRIPTOR
|
|
0x60
|
$VOLUME_NAME
|
|
0x70
|
$VOLUME_INFORMATION
|
|
0x80
|
$DATA
|
[Unnamed]
|
未命名数据流格式
0 字节长
在MFT 文件的属性记录集
Type
|
Description
|
Name
|
0x10
|
$STANDARD_INFORMATION
|
|
0x30
|
$FILE_NAME
|
$AttrDef
|
0x50
|
$SECURITY_DESCRIPTOR
|
|
0x80
|
$DATA
|
[Unnamed]
|
Offset
|
Size
|
Description
|
0x00
|
128
|
Label in Unicode
|
0x80
|
4
|
Type
|
0x84
|
4
|
Display rule
|
0x88
|
4
|
Collation rule
|
0x8C
|
4
|
Flags
|
0x90
|
8
|
Minimum size
|
0x98
|
8
|
Maximum size
|
Flag
|
Description
|
0x00
|
Binary
|
0x01
|
Filename
|
0x02
|
Unicode String
|
0x10
|
Unsigned Long
|
0x11
|
SID
|
0x12
|
Security Hash
|
0x13
|
Multiple Unsigned Longs
|
|