概述
在 NTFS 文件系统里面,磁盘上的所有东西都以文件的形式出现。即使是元数据也是以一组文件的形式存储的。主文件表( MFT )是这个卷上每一个文件的索引。 MFT 为每一个文件保存着一组称为“属性”的记录,每个属性存储了不同类型的信息。
属性
Type |
Description |
Name |
0x10 |
$STANDARD_INFORMATION |
|
0x30 |
$FILE_NAME |
$MFT |
0x80 |
$DATA |
[Unnamed] |
0xB0 |
$BITMAP |
[Unnamed] |
文件结构:
未命名的数据流
有关每个文件的描述被打包到 FILE 记录里面。如果一个 FILE 记录不够大(通常不会不够大),则还需要一个 $ATTRIBUTE_LIST 属性。
前 24 个文件记录是为系统文件保留的。可到 NTFS-File 页查看一个完整列表。
注意:
MFT 区域
为了防止 MFT 有过多的碎片, windows 为它预留了一个缓冲区域。除非磁盘上的其它空间已经被用光,否则系统不会使用这些为 MFT 保留的区域。这个缓冲区域的大小是可调的:可以是磁盘空间的 12.5 % , 25 % , 37.5 %或者 50 %, 每当其余磁盘空间变满的时候,缓冲器大小减半。
其它信息:
MFT 是自参比的。
MFT 保留了一些空间作以后的扩充用。 MFT 的 12-15 表项标为在用,其实是空的。 MFT 的 16-23 表项标为未用,可是从来不用。
在 windows 下,当系统运行时 MFT 不能收缩。
特别感谢开放源代码项目 Linux-NTFS Project 众多的 Linux 爱好者们,正因为他们多年来的不懈努力才使得 NTFS 文件系统的面纱被慢慢的揭开,并且通过开放源代码的威力让更多的编程爱好者在本文档的基础上编写了丰富的开源数据恢复及系统恢复等灾难拯救项目,你可以通过以下网址访问本项目位于 sourceforge.net 的原英文站点(http://linux-ntfs.sourceforge.net)
此版中文译本翻译、校正、注释并首发于补天时代 http://www.iqwork.com