NTFS文件系统规范(三)

 
 

Flag
Description
0x02
Indexed
0x40
Resident (always)
0x80
Non-Resident (allowed to be)

 

 

 
在MFT 文件的属性记录集

Type
Description
Name
0x10
$STANDARD_INFORMATION
0x30
$FILE_NAME
.
0x50
$SECURITY_DESCRIPTOR
0x80
$DATA
$MountMgrDatabase
0x90
$INDEX_ROOT
$I30
0xA0
$INDEX_ALLOCATION
$I30
0xB0
$BITMAP
$I30

  MountMgrDatabase 数据流

仅当Reparse Points on the Volume.

 

Offset
Size
Description
0x00
4
Size of entry
0x04
4
Flags? (bitfield?)
0x08
2
Offset to UNC Path
0x0A
2
Size of UNC Path
0x0C
2
Offset to data
0x0E
2
Size of data

 
该文件记录了卷中所有逻辑簇的使用情况。文件中每个BIT表示一个逻辑簇。在每个字节中,逻辑簇号按从小到大的顺序排列,如:BIT0对应逻辑簇号A,则BIT1对应逻辑簇号A+1。
 
在MFT 文件的属性记录集

Type
Description
Name
0x10
$STANDARD_INFORMATION
 
0x30
$FILE_NAME
$Bitmap
0x80
$DATA
[Unnamed]

 $Boot 
在MFT 文件的属性记录集

Type
Description
Name
0x10
$STANDARD_INFORMATION
 
0x30
$FILE_NAME
$Boot
0x50
$SECURITY_DESCRIPTOR
 
0x80
$DATA
[Unnamed]

 
未命名数据流格式
   
 
NTFS卷的第一个重要的数据区是BPB(BIOS Parameter Block),数据区位于卷中第一个个区域:$Boot文件的第一个扇区中。该扇区也叫做引导扇区。
引导扇区与BPB结构

名字
偏移
尺寸
描述
BS_jmpBoot
0
3
跳转到引导代码处。本域允许有以下两种格式:
jmpBoot[0]=0xEB,jmpBoot[1]=0x??,jmpBoot[2]=0x90
jmpBoot[0]=0xE9,jmpBoot[1]=0x??,jmpBoot[2]=0x??
0x??指这里可以是任意值,上述格式是跳转到代码的Intel x86无条件跳转指令,引导代码存放在卷中第一个扇区中BPB表的后面
BS_OEMName
3
8
“NTFS    ”本域是判别卷是否为NTFS卷的必要条件,NTFS卷中此域必须设置为上述值
BPB_BytsPerSec
0x0b
2
每扇区字节数,该值仅可以从以下值中选取一个:512、1024、2048、1096。为了兼容以前的软件,建议使用512这个值
BPB_SecPerClus
0x0d
1
每个分配单元扇区数,大于0而且必须是2的整数次幂,本值可以是1,2,4,8,16,32,64,128。注意本值必须保证使每簇字节数(BPB_BytsPerSec * BPB_SecPerClus)小于4K。
BPB_RsvdSecCnt
0x0e
2
保留区域中保留的扇区数,0
BPB_NumFATs
0x10
1
FAT表的个数,本域是为了保持与FAT/FAT32的BPB兼容而保留,其值固定为0
BPB_RootEntCnt
0x11
2
为保持兼容性而保留,值固定为0
BPB_TotSec16
0x13
2
为保持兼容性而保留,值固定为0
BPB_Media
0x15
1
存储介质代码,对固定磁盘为0xF8,对于可移动介质,其值通常是0xF0,合法的值有0xF0,0xF8,0xF9,0xFA,0xFB,0xFC,0xFD,0xFE,0xFF。
BPB_FATSz16
0x16
2
为保持兼容性而保留,值固定为0
BPB_SecPerTrk
0x18
2
Int 13H调用中的每磁道扇区,本值仅当存储介质按CHS方式寻址且能被Int 13H识别才有意义。
BPB_NumHeads
0x1a
2
Int 13H调用中的磁头数,其意义同前面的BPB_SecPerTrk。注意该值的基数是1。
BPB_HiddenSec
0x1c
4
隐藏扇区数,分区每一个扇区相对于分区表的偏移扇区数。
BPB_TotSec32
0x20
4
为保持兼容性而保留,值固定为0
BS_DrvNum
0x24
1
Int 13H调用的磁盘号参数。
BS_Reserved1
0x25
1
保留,值为0。
BS_Reserved2
0x26
2
保留,值80H。
BS_TotSec64
0x28
8
卷总扇区数。
BS_1stClusOfMFT
0x30
8
$MFT文件第一个簇的簇号
BS_1stClusOfMFTMirr
0x38
8
$MFTMirr文件第一个簇的簇号
BS_ClusPerFR
0x40
4
每个文件记录占用的簇数1
BS_ClusPerDR
0x48
4
每个目录记录点用的簇数1
BS_Serial
0x70
8
卷序列号
~
 
 
 
 
0x200
 
NT loader

  注1:每个记录占用的簇数如果为正值则表示该记录占用的簇数;如果为负值则表明记录尺寸小于簇尺寸,此时计算记录尺寸的方法应该是:记录的尺寸=2^(~每文件记录占用簇数)。

比如:BS_ClusPerFR=0xF6(-10),此时记录的尺寸是   BytsPerRecord=2^(~0xf6)=2^10=1024
 
 
该文件记录了卷中的坏簇的信息。该文件是一个稀疏文件,只记录有坏簇的描述。该文件拥有两个数据属性,第一个数据属性无名且是空属性,第二个数据属性名为:“$Bad”,该属性记录了卷中的坏簇的VCN,该属性中的数据分配的空间是整个卷的尺寸,数据占用的实际空间也是卷的尺寸,已初始化数据尺寸为0。在属性的数据流描述中非稀疏的描述就是坏簇的VCN。
坏簇在$Bitmap文件中相应的位总是被标记为已使用。
 
在MFT 文件的属性记录集

Type
Description
Name
0x10
$STANDARD_INFORMATION
 
0x30
$FILE_NAME
$BadClus
0x80
$DATA
[Unnamed]
0x80
$DATA
$Bad

Type
Description
Name
0x10
$STANDARD_INFORMATION
 
0x30
$FILE_NAME
$Secure
0x80
$DATA
$SDS
0x90
$INDEX_ROOT
$SDH
0x90
$INDEX_ROOT
$SII
0xA0
$INDEX_ALLOCATION
$SDH
0xA0
$INDEX_ALLOCATION
$SII
0xB0
$BITMAP
$SDH
0xB0
$BITMAP
$SII

 
本站域名:www.mrtlab.com | QQ交流群:250649022 | 使用条款 | 备案:鄂ICP备2020023514号
MRT数据恢复网,专业的硬盘固件维修与数据恢复技术资料提供站!
Copyright 2003-2020 Powered By MrtLab