NTFS文件系统解析
解析NTFS文件系统

NTFS稳定性和安全性微软做的很多事情都让他们受尽责备。
但是它做的一件非常好的事情就是创建了一个强壮、高效而且可扩展的文件系统。
NTFS(New Technology File System)文件系统最早出现在1993年的Windows NT操作系统中,它的出现大幅度地提高了微软原来的FAT文件系统的性能。
NTFS是一个日志文件系统,这意味着除了向磁盘中写入信息,该文件系统还会为所发生的所有改变保留一份日志。
这一功能让NTFS文件系统在发生错误的时候(比如系统崩溃或电源供应中断)更容易恢复,也让这一系统更加强壮。
在这些情况下,NTFS能够很快恢复正常,而且不会丢失任何数据。
在很少出错情况下,微软表示只要大概不到1%的概率才你需要运行CHKDSK修复程序来对磁盘卷进行维护。
NTFS另一个引人注目的特点,即良好的安全性是NTFS成为Windows网络中最常用的文件系统的最主要的原因。
NTFS的安全系统非常强大,可以对文件系统中对象的访问权限(允许或禁止)做非常精细的设置。
NTFS Master File Table (MFT)中包含了一个NTFS分区中所有文件的记录。
每个MFT入口都有一个特殊的metadata标签,叫做SD(security descriptor,安全描述符),这个标签中包含了谁可以访问这个文件或文件夹的所有控制信息。
每个SD标签都包含了一个用户列表,这个列表被称为Access Control List (ACL访问控制列表),只有包含在这个列表里的用户才被允许访问该对象。
请注意上面一段中出现的“metadata”一词。
NTFS是一个元数据驱动的系统。
事实上,当你第一次创建NTFS分区的时候,很多元数据文件就被创建了,每个元数据文件都帮助跟踪文件系统中某个特定的对象。
我在上一段中提到每个NTFS分区都会有一个Master File Table,这个关联文件被命名为$MFT。
事实上,NTFS创建了两个MFT文件。
了解计算机文件系统NTFSFAT和HFS的区别

了解计算机文件系统NTFSFAT和HFS的区别计算机文件系统是操作系统用来组织和管理计算机存储设备上的文件和目录的一种机制。
在不同的操作系统中,常见的文件系统有NTFS、FAT和HFS。
本文将就NTFS、FAT和HFS三种文件系统进行比较,以帮助大家更好地了解它们之间的区别。
一、NTFSNTFS(New Technology File System)是微软公司开发的一种高性能、可靠性和安全性较强的文件系统。
NTFS首次被引入Windows NT操作系统,并一直沿用至今。
1.1 文件系统结构NTFS采用了一种分层次的文件系统结构。
它包含了主引导记录(MBR)、分区表、文件记录、文件分配表等重要的组成部分。
而数据存储则是通过将文件分割成不同的簇来管理。
1.2 特点和功能NTFS具有许多先进的特点和功能,例如:- 安全性:NTFS支持访问控制列表(ACL)和文件加密,可以对文件和目录进行更细粒度的权限控制。
- 可靠性:NTFS采用了日志和冗余技术,使得文件系统更加稳定和可靠。
- 容量:NTFS最大支持16EB(1EB=1024PB)的存储容量,能够满足大容量存储的需求。
- 文件压缩和加密:NTFS支持文件压缩和加密,可以提高存储效率并保护敏感数据的安全性。
二、FATFAT(File Allocation Table)是一种较早的文件系统,最初是由微软开发的。
FAT文件系统广泛应用于早期的Windows操作系统和一些移动存储设备中。
2.1 文件系统结构FAT文件系统采用了一种比较简单的存储结构,它通过FAT表来管理文件和目录。
FAT表是一个记录簇号和下一个簇号之间对应关系的查找表。
2.2 特点和功能FAT文件系统具有以下特点和功能:- 简单易用:FAT文件系统结构简单,易于实现和维护。
- 兼容性好:FAT文件系统具有较好的兼容性,可以在不同操作系统之间进行文件共享和传输。
- 存储限制:FAT文件系统的文件大小限制为4GB,对于大容量存储设备来说可能不够满足需求。
NTFS文件系统结构分析

NTFS元文件 元文件
• • • • • • $MFT :中的第一个记录是$MFT自身。 $MFTMirr: 主文件表的部分镜像 $LogFile (日志文件),该文件是NTFS为实现可恢复性和安全性而设计。在系统失败时 能恢复NTFS卷。 $Volume(卷文件),它包含卷名、NTFS的版本和一个表明该磁盘是否损坏的标志位。 (NTFS系统以此决定是否需要调用Chkdsk程序来进行修复) $AttrDef:(属性定义表),其中存放着卷所支持的所有文件属性,并指出他们是否可以 被索引和恢复等。 $Root(跟目录),其中保存着该卷跟目录下的所有文件和目录的索引。
NTFS的元文件 的元文件
• NTFS系统中,文件按照簇进行分配,簇大小在格式化的时候由格式化 程序根据卷的大小自动进行分配。 • 文件通过主文件表MFT来确定文件在磁盘上的存储位置。主文件表是一 个对应的数据库,由一系列文件记录组成,卷中每个文件都有一个文件 记录。第一个文件记录称为基本文件记录,其中存储有其他扩展文件记 录的一些信息。文件表本身也有它自己的文件记录。 • MTF中的文件记录大小一般固定为1KB,文件记录在MFT文件记录数组 中物理上是连续的,从0开始编号。
• 1.容错性:NTFS可以自动地修复磁盘错误而不会显示出错信 息. • 2.安全性:NTFS有许多安全性能方面的选项,可以阻止没有授 权的用户访问文件. • 3.EFS提供对存储在NTFS分区的文件进行加密的功能 • 4.用户可以选择压缩单个文件整个文件夹. • 5.磁盘配额:就是管理员可以对本域中的每个用户所能使用 的磁盘空间进行定额限制,即每个用户只能使用最大定额范 围内的磁盘空间.
属性头
• 每个属性又分为属性头和属性内容两部分,属性头给出了该 属性的结构信息。 • 有的属性内容存储在记录项中(如文件名),称为常驻属性。 有的属性内容很大,需要在MFT外另外开辟空间存储(如 文件数据),则称为非常驻属性。 • 有的属性在属性头之后列出了属性名,而有的则没有。
文件系统fat和ntfs的原理

文件系统fat和ntfs的原理文件系统是计算机操作系统中的一部分,用于组织和管理计算机存储设备中的文件和目录。
常见的文件系统有FAT和NTFS两种。
本文将分别介绍FAT和NTFS文件系统的原理和特点。
一、FAT文件系统的原理和特点1. 原理:FAT(File Allocation Table)文件系统是由微软公司开发的一种简单的文件系统。
它使用了文件分配表来追踪磁盘上文件的存储位置。
FAT文件系统使用磁盘上的文件分配表来记录每个文件占用的簇号,并使用链表的方式将这些簇连接起来,从而形成完整的文件。
2. 特点:(1)FAT文件系统具有良好的兼容性,可以在多个操作系统中共享文件。
(2)FAT文件系统的存储结构简单,占用资源少,适用于较小容量的存储设备。
(3)FAT文件系统支持文件和目录的命名,可以对文件进行读写、删除、复制等操作。
(4)FAT文件系统对文件的大小和簇大小有一定的限制,无法支持大文件和大容量存储设备。
(5)FAT文件系统没有对文件进行加密和访问控制的能力,安全性较低。
二、NTFS文件系统的原理和特点1. 原理:NTFS(New Technology File System)文件系统是微软公司开发的一种高级文件系统。
它采用了B+树的数据结构来组织和管理文件和目录。
NTFS文件系统将磁盘空间划分为多个逻辑区域,通过文件记录和索引来管理文件的存储和访问。
2. 特点:(1)NTFS文件系统支持大容量存储设备和大文件,可以处理几TB 甚至PB级别的数据。
(2)NTFS文件系统具有高度的可靠性和稳定性,支持磁盘冗余和数据恢复。
(3)NTFS文件系统支持文件和目录的权限控制,可以对文件进行加密和访问控制。
(4)NTFS文件系统支持文件的压缩和加密,可以节省存储空间并提高数据安全性。
(5)NTFS文件系统支持文件的快照和防止数据损坏,可以提供更好的数据保护和恢复能力。
三、FAT和NTFS文件系统的比较1. 性能比较:FAT文件系统在小容量存储设备上性能较好,但在大容量存储设备上性能较差。
ntfs是什么意思

ntfs是什么意思NTFS是什么意思NTFS(New Technology File System)是一种面向Microsoft Windows操作系统的文件系统。
它于1993年引入,并作为Windows NT 3.1版本的一部分首次推出。
与旧版本的文件系统(如FAT和FAT32)相比,NTFS提供了更高的性能、更好的安全性和更多的功能。
NTFS是Windows操作系统的默认文件系统,它可以在各个Windows版本中找到,包括Windows NT、2000、XP、Vista、7、8和10。
它被设计用于支持大容量磁盘驱动器和大文件,同时提供了更高的数据可靠性和安全性。
NTFS的主要特点之一是支持文件和目录的访问控制。
通过访问控制列表(Access Control Lists,简称ACLs),NTFS可以配置每个文件和目录的权限,从而限制用户对其进行读取、写入和执行操作。
这意味着可以根据用户的需求来保护敏感数据并限制对重要文件的访问。
此外,NTFS还提供了文件压缩功能。
使用压缩,可以节省磁盘空间并提高存储效率,尤其是对于大量的文本文件。
但需要注意的是,压缩文件可能会导致读写速度减慢,因为操作系统需要对压缩和解压缩进行额外的处理。
NTFS还支持文件和目录的加密。
通过加密,可以保护文件和目录中的数据免受非授权访问。
只有拥有加密密钥的用户才能解密和访问这些文件。
这对于保护包含敏感信息的文件和数据非常重要。
另一个重要的特性是NTFS的日志功能。
NTFS使用事务日志(Transaction Log)记录文件系统的变化和操作。
这些日志记录允许进行恢复操作,在系统或磁盘故障发生时,可以恢复文件系统到一个一致的状态。
NTFS还提供了一些高级功能,例如文件和目录的链接。
链接可以允许一个文件或目录在多个位置上出现,而不需要实际的副本。
这种机制有助于提高存储效率和组织文件系统结构。
虽然NTFS是Windows操作系统的默认文件系统,但它并不是唯一的选择。
NTFS文件系统详细分析

NTFS⽂件系统详细分析第⼀部分什么是NTFS⽂件系统想要了解NTFS,我们⾸先应该认识⼀下FAT。
FAT(File Allocation Table)是“⽂件分配表”的意思。
对我们来说,它的意义在于对硬盘分区的管理。
FAT16、FAT32、NTFS是⽬前最常见的三种⽂件系统。
FAT16:我们以前⽤的DOS、Windows 95都使⽤FAT16⽂件系统,现在常⽤的Windows 98/2000/XP等系统均⽀持FAT16⽂件系统。
它最⼤可以管理⼤到2GB的分区,但每个分区最多只能有65525个簇(簇是磁盘空间的配置单位)。
随着硬盘或分区容量的增⼤,每个簇所占的空间将越来越⼤,从⽽导致硬盘空间的浪费。
FAT32:随着⼤容量硬盘的出现,从Windows 98开始,FAT32开始流⾏。
它是FAT16的增强版本,可以⽀持⼤到2TB(2048GB)的分区。
FAT32使⽤的簇⽐FAT16⼩,从⽽有效地节约了硬盘空间。
NTFS:微软Windows NT内核的系列操作系统⽀持的、⼀个特别为⽹络和磁盘配额、⽂件加密等管理安全特性设计的磁盘格式。
随着以NT为内核的Windows 2000/XP的普及,很多个⼈⽤户开始⽤到了NTFS。
NTFS也是以簇为单位来存储数据⽂件,但NTFS中簇的⼤⼩并不依赖于磁盘或分区的⼤⼩。
簇尺⼨的缩⼩不但降低了磁盘空间的浪费,还减少了产⽣磁盘碎⽚的可能。
NTFS⽀持⽂件加密管理功能,可为⽤户提供更⾼层次的安全保证。
在NTFS⽂件系统中,⽂件存取是按簇进⾏分配,⼀个簇必需是物理扇区的整数倍,⽽且总是2的整数次⽅。
NTFS⽂件系统并不去关⼼什么是扇区,也不会去关⼼扇区到底有多⼤(如是不是512字节),⽽簇⼤⼩在使⽤格式化程序时则会由格式化程序根据卷⼤⼩⾃动的进⾏分配。
⽂件通过主⽂件表(MFT)来确定其在磁盘上的存储位置。
主⽂件表是⼀个对应的数据库,由⼀系列的⽂件记录组成--卷中每⼀个⽂件都有⼀个⽂件记录(对于⼤型⽂件还可能有多个记录与之相对应)。
全面了解NTFS文件系统结构

解读NTFSNTFS是一个比FAT复杂的多的文件系统,我们一起努力来把它完整的解读出来NTFS的引导扇区也是完成引导和定义分区参数,和FAT分区不同,FAT分区的B OOT记录正常,就显示分区没有错误,即使文件不正确,而NTFS分区的BOOT不是分区的充分条件,它要求必须MFT中的系统记录如$MFT等正常该分区才能正常访问。
其BPB参数如下表所示。
字节偏移长度常用值意义0x0B 字 0x0002 每扇区字节数0x0D 字节 0x08 每簇扇区数0x0E 字 0x0000 保留扇区0x10 3字节 0x000000 总为00x13 字 0x0000 NTFS未使用,为00x15 字节 0xF8 介质描述0x16 字 0x0000 总为00x18 字 0x3F00 每磁盘扇区数0x1A 字 0xFF00 磁头数0x1C 双字 0x3F000000 隐含扇区0x20 双字 0x00000000 NTFS未使用,为00x28 8字节 0x4AF57F0000000000 扇区总数0x30 8字节 0x0400000000000000 $MFT的逻辑簇号0x38 8字节 0x54FF070000000000 $MFTMirr的逻辑簇号0x40 双字 0xF6000000 每MFT记录簇数0x44 双字 0x01000000 每索引簇数0x48 8字节 0x14A51B74C91B741C 卷标0x50 双字 0x00000000 检验和MFT中的文件记录大小一般是固定的,不管簇的大小是多少,均为1KB。
文件记录在MFT文件记录数组中物理上是连续的,且从0开始编号,所以,NTFS是预定义文件系统。
MFT仅供系统本身组织、架构文件系统使用,这在NTFS中称为元数据(metadata,是存储在卷上支持文件系统格式管理的数据。
它不能被应用程序访问,只能为系统提供服务)。
其中最基本的前16个记录是操作系统使用的非常重要的元数据文件。
详解NTFS文件系统

NT S 文 件 系 统 中 的 文 件 属 性 F 可 以 分 成 两 种 : 驻 属 性 和 非 常 驻 常
属 性 , 常 驻 属 性 直 接 保 存 在 MF T 中 , 文件 名 和相 关 时 间信 息 ( 像 例 如 创 建 时 间 、 改 时 间 等 ) 远 属 修 永 于 常 驻 属 性 , 常 驻 属 性 则 保 存 在 非 MF 之 外 , 会 使 用 一 种 复 杂 的 索 T 但 引 方 式 来 进 行 指 示 。如 果 文 件 或 文 件 夹 小 于 10 5 0字 节 ( 实 我 们 的 电 其 脑 中 有 相 当 多 这 样 大 小 的 文 件 或 文 件 夹 ) 那 么 它 们 的所 有 属 性 , , 包 括 内 容 都 会 常 驻 在 MF 中 , T 而 MF 是 W id w T n o s一 启 动 就 会 载 入
MF ) 但 如 果 它 所 在 的 磁 盘 扇 区 T , 恰 好 出 现 损坏 , F NT S文 件 系 统 会 比 较 智 能 地 将 MF 换 到 硬 盘 的 其 T 他 扇 区 , 证 了 文 件 系 统 的 正 常 使 保 用 , 就 是 保 证 了 W id w 也 n o s的 正 常 运 行 。而 以 前 的 F T 6和 F T 2 的 A 1 A 3 F T ( 件 分 配 表 ) 则 只 能 固 定 在 A 文
区 和 F T 2 分 区 的 文 件 可 以 随 意 A 3
在 分 区 间 移 动 , 容 不 会 因 此 产 生 内
任何 不同 。
分 区 引 导 扇 区 的 后 面 , 旦 遇 到 扇 一
区 损 坏 , 么 整 个 文 件 系 统 就 要 瘫 那
痪 。
到 内 存 中 的 , 样 当 你 查 看 这 些 文 这
详解NTFS文件系统

详解NTFS⽂件系统⼀、分析NTFS⽂件系统的结构当⽤户将硬盘的⼀个分区格式化为NTFS分区时,就建⽴了⼀个NTFS⽂件系统。
NTFS⽂件系统同FAT32⽂件系统⼀样,也是⽤“簇”为存储单位,⼀个⽂件总是占⽤⼀个或多个簇。
NTFS⽂件系统使⽤逻辑簇号(LCN)和虚拟簇号(VCN)对分区进⾏管理。
逻辑簇号:既对分区内的第⼀个簇到最后⼀个簇进⾏编号,NTFS使⽤逻辑簇号对簇进⾏定位。
虚拟簇号:既将⽂件所占⽤的簇从开头到尾进⾏编号的,虚拟簇号不要求在物理上是连续的。
NTFS⽂件系统⼀共由16个“元⽂件”构成,它们是在分区格式化时写⼊到硬盘的隐藏⽂件(以”$”开头),也是NTFS⽂件系统的系统信息。
NTFS的16个元⽂件介绍:⾸先找到该分区的起始扇区,具体可以参考这篇⽂章。
⼆、分析$Boot⽂件$Boot元⽂件由分区的第⼀个扇区(既DBR)和后⾯的15个扇区(既NTLDR区域)组成,其中DBR由“跳转指令”、“OEM代号”、“BPB”、“引导程序”和“结束标志”组成,这⾥和FAT32⽂件系统的DBR⼀样。
下图是⼀个NTFS⽂件系统完整的DBR。
下⾯我们分析⼀下DBR中的各参数EB 58 90:(跳转指令)本⾝占2字节它将程序执⾏流程跳转到引导程序处。
“EB 58 90″清楚地指明了OS引导代码的偏移位置。
jump 52H加上跳转指令所需的位移量,即开始于0×55。
4E 54 46 53 20 20 20 20:(OEM代号)这部分占8字节,其内容由创建该⽂件系统的OEM⼚商具体安排。
为“NTFS”。
BPB:NTFS⽂件系统的BPB从DBR的第12个字节开始,占⽤73字节,记录了有关该⽂件系统的重要信息,下表中的内容包含了“跳转指令”、“OEM代号”以及“BPB”的参数。
对照上⾯的BPB分析如下:02 00:每个扇区512个字节08:每个簇8个扇区00 00:保留扇区为000 00 00:为000:不使⽤F8:为硬盘00 00:为000 3F:每磁道63个扇区00 FF:每柱⾯255个磁头00 00 00 3F:隐藏扇区数(MBR到DBR)00 00 00 00:不使⽤80 00 80 00:不使⽤00 00 00 00 0C 80 33 FF:扇区总数20972851100 00 00 00 00 00 00 03:$MFT的开始簇号00 00 00 00 00 85 57 80:$MFTmirr的开始簇号00 00 00 F6:每个MFT记录的簇数00 00 00 01:每索引的簇数B8 11 2A 0C B8 11 2A 0C:分区的逻辑序列号引导程序:DBR的引导程序占⽤426字节,其负责完成将系统⽂件NTLDR装⼊,对于没有安装系统的分区是⽆效的。
NTFS 文件系统解析

UCHAR xpRecordNum[4]; // 0x30
// 用于 xp, 记录号
UCHAR USN[8]; } Mft_Header, *pMft_Header;
// 更新序列号(2B) 和 更新序列数组
第3页 共8页
图3 上面的头部结构体在扇区的数据偏移0x00 ~0x38;在0x38之后的4大块颜色数据是4条属性——描述名称,时间, 索引等信息,最后以“FF FF FF FF”结束。它们分别以0x10,0x30,0x80,0xB0作为标志;四种属性所描述的信息类型 可以由下表查得,对照数据和结构体可以把这4条属性解析出来。
NTFS 文件系统解析
一、Windows下磁盘文件读写
下面是读取D:\磁盘上的第0扇区512 Bytes 打开磁盘,获取文件句柄:CreateFile() 设置读写的位置:SetFilePointer() 读取磁盘扇区数据:ReadFile()
HANDLE hFile;
char drive[] = "\\\\.\\D:"; //------- \\.\D: -----
// 0x0200 扇区大小,512B
UCHAR SecsPerClu;
// 0x08 每簇扇区数,4KB
UCHAR rsvSecs[2]; UCHAR noUse01[5];
//
保留扇区
//
// 0x15
UCHAR driveDscrp; UCHAR noUse02[2];
// 0xF8 //
磁盘介质 -- 硬盘
UCHAR linkNum[2];
// 硬连接数 (多少目录指向该文件) 01 00
UCHAR firstAttr[2];
《NTFS文件系统》课件

NTFS文件系统的发展趋势
1
容量扩展
随着数据量的增加,NTFS文件系统将继续支持更大的分区和更大的文件。
2
性能提升
NTFS文件系统将继续改进读写性能和响应能力,以满足不断增长的计算需求。
3
安全加强
NTFS文件系统将引入更多的安全特性,以提供更好的数据和系统保护。
NTFS文件系统可以在不同版本的Window作。
NTFS文件系统的应用领域
服务器存储
个人电脑
NTFS文件系统广泛应用于服务器 领域,提供高性能和数据安全性。
NTFS文件系统是Windows个人电 脑的默认文件系统,适合处理各 种文件和数据。
外部存储设备
1 安全性高
NTFS文件系统支持访问控制列表(ACL),可以对文件和文件夹进行细粒度的权限控制。
2 稳定性强
NTFS文件系统具有自动修复和错误检测的能力,可以保证文件系统的稳定性,并防止数 据丢失。
3 支持大文件和大分区
NTFS文件系统支持非常大的文件和分区大小,可以满足现代计算机系统对大容量存储的 需求。
性能优异
NTFS文件系统具有较高的读写速度和响应能力, 适合处理大型文件和高并发访问。
灵活性强
NTFS文件系统支持管道、链接和挂载等高级特 性,可以满足不同的应用场景需求。
数据完整性
NTFS文件系统通过使用日志和校验机制来保证 数据的完整性,对系统崩溃和断电等异常情况具 有较好的容错能力。
兼容性广泛
NTFS文件系统的结构
主引导记录(MBR)
MBR是NTFS文件系统的引导扇 区,包含启动计算机所需的信 息。
NTFS文件系统解析 PPT课件

常 规 属 性 值 及 其 含 义
标准信息属性0x10
• 标准属性($STANDARD_INFOMATION)的类 型值为0x10,它总是常驻属性。它包含一 个文件或目录的基本元数据,如时间、所 有权和安全信息等。所有文件和目录必须 有这个属性。
• 在这个MFT项中,0x00~0x37是MFT的头部。 后面为属性列表。共有4个属性,前三个是 常驻属性,最后一个为非常驻属性。深色 部分则是每个属性的属性头。
• 图中可看出,前三个属性(常驻)属性头 一样大小,最后一个要大一些。
• NTFS将文件作为属性/属性值的集合来处理, 这一点与其他文件系统不一样。文件数据就 是未命名属性的值,其他文件属性包括文件 名、文件拥有者、文件时间标记等。下图显 示了一个用于小文件的MFT记录
NTFS文件系统解析
• 1、基本概念 • 元文件:NTFS包括几个系统文件,从NTFS卷来看,
它们都是隐藏的。文件系统用系统文件来存放元 数据并实现文件系统。系统文件是用Format程序 放在卷上的。
• MFT • 属性:NTFS中所有与数据相关信息都称之为“属
性”,甚至文件内容也被称为“数据属性”。
标准属性实例
• 0x00~0x1F字节处32个字节分为4个8字节部 分,分别为文件的建立时间、最后修改时 间、MFT改变时间和最后访问时间。
• 0x20~0x23处4个字节为标志,这个文件的标 志为0x22,则为“存档、隐藏”
文件名属性
• 文件名属性($FILE_NAME)的类型值为 0x30。任何文件和目录在它的MFT项中至少 有一个文件名属性。该属性用于存储文件 名,还包含文件大小、时间等信息。
NTFS文件系统详解之文件定位

图1 名字可能不太对但结构应该没差.png当找到⼀个NTFS⽂件系统的分区之后,接下来就可以开始着⼿遍历⽬录树和⽂件了。
你可能要问为什么不是第⼀步:读取NTFS的DBR扇区扇区的结构在之前那⽚⽂章写过了,下⾯给个DBR的截图。
图2 DBR扇区图中红⾊⽅框⾥⾯的数据是MFT的偏移(⼩端字节序),即0X 00 00 00 00 00 0C 00 00,单位是簇,即MFT 个扇区,我们转到该分区的第 6291456扇区,就是MFT⽂件的第⼀个扇区了。
接下来该分析MFT是什么⿁?百度⼀下。
MFT是什么⿁?百度⼀下。
图3 ???不好意思,进错⽚场了。
图4 MFT主⽂件表实际上MFT也是⼀个⽂件,在winhex中可以看到它:图5 WinHex中的MFT⽂件也能看到MFT的偏移和我们之前计算的结果时⼀致的。
MFT由⼀个个表项构成,每⼀个表项是⼀个⽂件记录,⼤⼩⼀般为1KB(两个扇区),记录着卷中每⼀个⽬录和⽂件的信息,每个⽂件记录的结构都是固定的,由图6 ⼀个⽂件记录其中,⽂件记录头的结构定义如下:1. // ⽂件记录头2. typedef struct _FILE_RECORD_HEADER3. {4. /*+0x00*/ BYTE Type[4]; // 固定值'FILE'5. /*+0x04*/ UINT16 USNOffset; // 更新序列号偏移, 与操作系统有关6. /*+0x06*/ UINT16 USNCount; // 固定列表⼤⼩Size in words of Update Sequence Number & Array (S)7. /*+0x08*/ UINT64 Lsn; // ⽇志⽂件序列号(LSN)8. /*+0x10*/ UINT16 SequenceNumber; // 序列号(⽤于记录⽂件被反复使⽤的次数)9. /*+0x12*/ UINT16 LinkCount; // 硬连接数10. /*+0x14*/ UINT16 AttributeOffset; // 第⼀个属性偏移11. /*+0x16*/ UINT16 Flags; // flags, 00表⽰删除⽂件,01表⽰正常⽂件,02表⽰删除⽬录,03表⽰正常⽬录12. /*+0x18*/ UINT32 BytesInUse; // ⽂件记录实时⼤⼩(字节) 当前MFT表项长度,到FFFFFF的长度+413. /*+0x1C*/ UINT32 BytesAllocated; // ⽂件记录分配⼤⼩(字节)14. /*+0x20*/ UINT64 BaseFileRecord; // = 0 基础⽂件记录 File reference to the base FILE record15. /*+0x28*/ UINT16 NextAttributeNumber; // 下⼀个⾃由ID号16. /*+0x2A*/ UINT16 Pading; // 边界17. /*+0x2C*/ UINT32 MFTRecordNumber; // windows xp中使⽤,本MFT记录号18. /*+0x30*/ UINT16 USN; // 更新序列号19. /*+0x32*/ BYTE UpdateArray[0]; // 更新数组20. } FILE_RECORD_HEADER, *pFILE_RECORD_HEADER;⽂件记录头后⾯就是属性了,属性由属性头和属性体构成,有如下⼏种类型:图7 属性类型属性有常驻属性常驻属性和⾮常驻属性⾮常驻属性之分,当⼀个属性的数据能够在1KB 的⽂件记录中保存的时候,该属性为常驻属性;⽽当属性的数据⽆法在⽂件记录中存放,需要存放到MFT 外的其他位置时,该属性为⾮常驻属性。
了解电脑文件系统NTFSFAT和exFAT有什么区别

了解电脑文件系统NTFSFAT和exFAT有什么区别了解电脑文件系统NTFS、FAT和exFAT有什么区别电脑文件系统在存储和组织数据方面起着关键作用,其中NTFS、FAT和exFAT是常见的文件系统。
本文将对这三种文件系统进行比较,分析它们的特点和区别。
一、NTFS(新技术文件系统)NTFS是Windows操作系统中最常见的文件系统,为较新的Windows版本所采用。
它具有以下特点:1. 安全性:NTFS支持访问控制列表(ACL),可以为文件和文件夹设置不同的权限。
这使得用户能够精确控制数据的访问和修改权限,增加了系统的安全性。
2. 容量和文件大小:NTFS支持大容量存储,并且能够存储单个文件的大小达到几个TB。
这种能力使得NTFS适用于需要存储大型文件的应用程序,如高分辨率多媒体文件。
3. 可靠性和错误检测:NTFS具有崩溃恢复功能和错误检测能力,可以自动修复硬盘驱动器上的文件系统错误。
这提高了数据的可靠性,并降低了数据丢失的风险。
4. 支持加密:NTFS可以对文件和文件夹进行加密,以保护用户的数据不被未经授权的访问者读取。
二、FAT(文件分配表)FAT是一种较早并且较简单的文件系统,它广泛用于旧版本的Windows操作系统和一些可移动存储设备中。
以下是FAT的特点:1. 兼容性:FAT文件系统具有良好的兼容性,几乎所有的操作系统都可以读取和写入FAT格式的文件系统。
这使得FAT成为通过不同操作系统之间共享文件的常用文件系统。
2. 文件大小限制:FAT文件系统支持最大文件大小为4GB-2字节,这意味着无法存储大于4GB的单个文件。
3. 文件碎片化:FAT文件系统容易出现文件碎片化问题,这会导致文件访问速度变慢。
4. 无安全机制:FAT文件系统不支持访问控制列表(ACL)和文件加密等安全功能,因此数据的安全性较低。
三、exFAT(扩展文件分配表)exFAT是FAT文件系统的扩展版本,主要用于可移动存储设备,如闪存驱动器和外部硬盘。
了解电脑文件系统FAT和NTFS的区别

了解电脑文件系统FAT和NTFS的区别在计算机科学领域,文件系统是指操作系统用来组织和存储计算机中的文件和目录的方法。
常见的文件系统包括FAT(File Allocation Table)和NTFS(New Technology File System)。
本文将详细介绍这两种文件系统的区别。
一、FAT文件系统FAT文件系统最早由微软公司开发,被广泛应用于DOS和早期的Windows操作系统上。
它的设计简单,具有一定的兼容性和易用性。
1. 文件分配方式:FAT文件系统采用的是基于文件分配表的方式来分配和管理磁盘空间。
文件分配表记录了磁盘上每个簇(一组连续的磁盘扇区)的使用情况。
FAT文件系统通过查询文件分配表来确定文件的物理位置。
2. 文件名和路径:FAT文件系统支持短文件名和长文件名两种命名格式。
短文件名最多只能使用8个字符的文件名和3个字符的文件扩展名。
而长文件名则支持更长的文件名,并可以使用特殊字符和空格。
3. 文件大小和磁盘容量限制:FAT16是FAT文件系统的一种变体,它支持的最大文件大小为2GB,磁盘容量上限为2TB。
而FAT32则支持的最大文件大小为4GB,磁盘容量上限为2TB。
二、NTFS文件系统NTFS文件系统是微软为Windows NT系列操作系统而开发的一种高级文件系统。
相比于FAT文件系统,NTFS具有更多的功能和更高的性能。
1. 安全性和权限控制:NTFS文件系统支持文件和目录的权限设置,可以通过给用户和用户组分配不同的访问权限来实现安全控制。
这种权限控制能力在多用户环境下尤为重要。
2. 文件分配方式:NTFS文件系统采用了类似于UNIX的索引分配方式,它使用一个B+树结构来管理文件的物理位置。
相比于基于文件分配表的FAT文件系统,NTFS能够更高效地分配和管理磁盘空间。
3. 文件名和路径:NTFS文件系统支持使用Unicode字符进行文件名的命名,可以使用更多种类的字符。
深入了解电脑文件系统NTFSFAT等

深入了解电脑文件系统NTFSFAT等深入了解电脑文件系统NTFS、FAT等随着计算机技术的不断发展,电脑成为人们生活和工作中不可或缺的工具。
而电脑中的文件系统则起到了至关重要的作用,它负责管理和组织计算机中的文件和文件夹。
本文将深入探讨电脑文件系统中的NTFS(New Technology File System)和FAT(File Allocation Table)两种常见文件系统,旨在帮助读者更全面地了解和使用电脑文件系统。
一、NTFS(New Technology File System)NTFS是由微软公司开发的一种高级文件系统,自Windows NT发布以来,已成为Windows系统中主要的文件系统。
相比于旧的FAT文件系统,NTFS具有以下优势。
1. 安全性较高:NTFS支持对文件和文件夹进行细粒度的权限控制,可以通过权限设置限制用户对文件的访问权,提高文件的安全性。
2. 容错性强:NTFS具备自动磁盘错误修复的能力,在存储介质出现故障时,可以通过磁盘检查修复工具自动修复错误,提高数据可靠性。
3. 支持大容量存储:NTFS支持更大的文件和磁盘容量,单个文件大小可达16EB(1EB=1024PB),磁盘容量上限为256TB,满足了现代计算机存储需求的不断增长。
4. 高效的文件加密和压缩功能:NTFS支持对文件和文件夹进行加密和压缩,提供了更高级别的数据保护和存储空间利用率。
二、FAT(File Allocation Table)FAT是一种较早的文件系统,最初由微软开发,被广泛应用于早期的DOS和Windows操作系统中。
虽然相对于NTFS来说功能较为简单,FAT文件系统仍然具有它的特点和应用场景。
1. 简单和通用:FAT文件系统的结构相对简单,易于实现和兼容,适用于各种计算机硬件平台和嵌入式设备。
2. 兼容性强:FAT文件系统具有良好的兼容性,可以在不同的操作系统之间进行文件共享,比如在Windows和Mac之间传输文件。
解读NTFS

NTFS是一个比FAT复杂的多的文件系统,我们一起努力来把它完整的解读出来NTFS的引导扇区也是完成引导和定义分区参数,和FAT分区不同,FAT分区的BOOT记录正常,就显示分区没有错误,即使文件不正确,而NTFS分区的BOOT不是分区的充分条件,它要求必须MFT中的系统记录如$MFT等正常该分区才能正常访问。
其BPB参数如下表所示。
字节偏移长度常用值意义0x0B 字 0x0002 每扇区字节数0x0D 字节 0x08 每簇扇区数0x0E 字 0x0000 保留扇区0x10 3字节 0x000000 总为00x13 字 0x0000 NTFS未使用,为00x15 字节 0xF8 介质描述0x16 字 0x0000 总为00x18 字 0x3F00 每磁盘扇区数0x1A 字 0xFF00 磁头数0x1C 双字 0x3F000000 隐含扇区0x20 双字 0x00000000 NTFS未使用,为00x28 8字节 0x4AF57F0000000000 扇区总数0x30 8字节 0x0400000000000000 $MFT的逻辑簇号0x38 8字节 0x54FF070000000000 $MFTMirr的逻辑簇号0x40 双字 0xF6000000 每MFT记录簇数0x44 双字 0x01000000 每索引簇数0x48 8字节 0x14A51B74C91B741C 卷标0x50 双字 0x00000000 检验和MFT中的文件记录大小一般是固定的,不管簇的大小是多少,均为1KB。
文件记录在MFT文件记录数组中物理上是连续的,且从0开始编号,所以,NTFS 是预定义文件系统。
MFT仅供系统本身组织、架构文件系统使用,这在NTFS中称为元数据(metadata,是存储在卷上支持文件系统格式管理的数据。
它不能被应用程序访问,只能为系统提供服务)。
其中最基本的前16个记录是操作系统使用的非常重要的元数据文件。
ntfs 原理 -回复

ntfs 原理-回复NTFS(New Technology File System)是Windows操作系统中使用的文件系统,它具有许多优点,如更高的性能、更好的稳定性、更高的安全性以及对大容量存储设备的支持等等。
本文将一步一步地回答关于NTFS 原理的问题,帮助读者更好地理解该文件系统。
第一部分:NTFS的概述NTFS是由微软公司在1993年推出的一种高性能、可靠性强的文件系统。
它是Windows NT系列操作系统的默认文件系统,并且在Windows 2000及其以后的版本中广泛使用。
NTFS采用了一些创新的技术来改善文件系统的性能和功能。
第二部分:NTFS的结构NTFS文件系统由几个核心组件组成,包括NTFS引导扇区、主文件表(MFT)、文件和目录、安全描述符、访问控制列表(ACL)等。
这些组件相互作用,使得NTFS能够有效地管理文件和目录,并提供高级的安全性和权限控制。
第三部分:NTFS的文件和目录管理NTFS使用主文件表(MFT)来存储文件和目录的元数据信息。
每个文件和目录都有一个唯一的标识符(inode),MFT中的记录存储了有关文件和目录的信息,如名称、大小、创建日期、修改日期等等。
NTFS使用B+树来组织MFT,这样可以快速地访问和管理大量的文件和目录。
第四部分:NTFS的磁盘空间管理NTFS使用了一种被称为“簇”的单位来管理磁盘空间。
每个簇的大小取决于磁盘的大小和格式化选项,一般情况下为4KB或8KB。
NTFS使用位图来跟踪簇的使用情况,这样可以快速地找到可用的磁盘空间并分配给新的文件或目录。
第五部分:NTFS的安全性和权限控制NTFS提供了强大的安全性和权限控制机制,可以对文件和目录进行精细的访问控制。
每个文件和目录都有一个安全描述符,包含了访问控制列表(ACL),ACL中定义了可以访问文件或目录的用户和组以及相应的权限。
NTFS还支持加密文件和压缩文件等功能,提供了更高的数据保护和节省存储空间的能力。
了解电脑文件系统FATNTFS和exFAT的区别与使用场景

了解电脑文件系统FATNTFS和exFAT的区别与使用场景了解电脑文件系统FAT、NTFS和exFAT的区别与使用场景电脑文件系统是一种组织和管理计算机硬盘或其他存储设备上文件和目录的方法。
常见的电脑文件系统包括FAT、NTFS和exFAT。
本文将介绍这三种文件系统的区别和使用场景。
一、FAT文件系统FAT(File Allocation Table)是DOS(Disk Operating System)和早期的Windows操作系统所使用的文件系统。
它的特点是简单、容易实现和兼容性好。
FAT文件系统将硬盘或存储设备划分为多个区块(cluster),并在磁盘上维护一个表格来记录文件和目录的存储位置。
FAT文件系统的优点是兼容性好,几乎所有的操作系统都能够读写FAT格式的存储设备。
然而,它也存在一些缺点,比如文件和目录的最大容量受到限制,文件名长度有限制,无法实现高级的访问权限控制等。
使用场景:FAT文件系统适用于需求简单的场景,比如在一些老旧的嵌入式设备上(如音频播放器、数码相机等),或者在需要与多个操作系统交互的存储设备上(如USB闪存驱动器)。
二、NTFS文件系统NTFS(New Technology File System)是Windows NT系列操作系统引入的文件系统,它采用了更先进的设计和管理方法。
与FAT文件系统相比,NTFS的功能更加强大,支持更大的存储容量和更高级的功能。
NTFS文件系统的特点包括:支持文件和目录的压缩和加密、支持动态磁盘、支持访问控制列表(ACL)和权限管理、支持文件系统日志和故障恢复等。
NTFS文件系统的优点是功能丰富,具备高级的权限管理和数据安全性保护能力。
然而,NTFS文件系统在某些低资源设备上可能存在着一定的兼容性问题。
使用场景:NTFS文件系统适合用于大容量存储设备,比如桌面电脑、服务器以及其他需要高级功能和数据安全性的场景。
三、exFAT文件系统exFAT(Extended File Allocation Table)是针对大容量存储设备而设计的文件系统。
文件系统ntfs

文件系统ntfsNTFS(新技术文件系统)是由微软公司开发的一种高级文件系统。
它是Windows操作系统中最常用的文件系统之一,是一种可靠且安全的文件系统。
本文将从NTFS的概述、特点、优势和应用方面来详细介绍这一文件系统。
NTFS是Windows NT系列操作系统的默认文件系统,也被广泛应用于其他Windows操作系统版本中。
相比于FAT和FAT32等文件系统,NTFS具有更多的优势和功能。
首先,NTFS支持更大的文件和更大的存储容量。
FAT32的文件大小限制为4GB,而NTFS支持单个文件大小高达16TB。
此外,NTFS支持更大的存储容量,可以管理大容量硬盘驱动器。
NTFS还具有更好的文件安全性和权限管理。
NTFS使用访问控制列表(ACL)来管理文件和文件夹的权限。
这意味着可以对指定的用户或用户组进行精确的权限设置,确保只有授权的用户才能访问文件。
同时,NTFS还支持文件加密功能,可以对敏感数据进行加密保护,提高数据的安全性。
另一个重要的特点是NTFS具有更好的文件系统恢复功能。
NTFS使用日志来记录文件系统的操作,以保护文件系统免受意外断电或系统崩溃的影响。
每个文件和文件夹的更改都会被记录在日志中,以便在系统崩溃时能够恢复文件系统到崩溃前的状态。
这种恢复能力提高了系统的可靠性和稳定性。
NTFS还支持文件压缩功能。
该功能可以在存储时对文件进行压缩,节省磁盘空间。
通过压缩文件,可以在不丢失文件数据的情况下,减小文件的占用空间。
这对于存储大量文档、图片和视频等大文件的用户来说,非常有用。
此外,NTFS还支持磁盘配额功能,可以限制每个用户使用的磁盘空间的大小。
这对于多用户共享同一台计算机的情况下,能够有效地管理磁盘空间的使用。
总的来说,NTFS是一种先进、可靠和安全的文件系统。
它具有更大的文件和存储容量支持、更好的文件安全性和权限管理、强大的文件系统恢复功能、文件压缩和磁盘配额等多种功能。
这些特点使得NTFS成为Windows操作系统中最常用的文件系统之一。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
非 常 驻 数 据 属 性
• 一个簇流项合一分为以下三部分: • 1、第一个字节为第一部分,分为高4bit和低4bit, 其中低4bit说明第二个部分的字节数。高4bit说明 第三部分的字节数 • 2、第二部分从第二个字节开始,长度为第一部分 的低4bit描述的字节数,用以说明簇流的长度,即 该簇流包含的簇数。 • 3、第三部分跟着第二部分,长度为第一部分高 4bit描述的字节数,用以说明簇流起始簇号。
属性头
• 属性头主要用于说明该属性的类型、大小 及名字,同时包含压缩、加密等标志。 • 常驻属性的属性头
非常驻属性头结构
• 常驻属性等很小的属性与其属性头一起存 放在MFT中,内容跟在属性头后面。 • 非常驻属性则另外存储在MFT以外的簇空间 中,并在MFT中的属性描述项中记录它的簇 地址。
• 可以看到,簇流起始位置为561055(0x 08 8F 9F)号簇。簇流长度为12(0x0C)个簇
其他属性
• 0x60 卷名属性($VOLUME_NAME)用来记 录卷名。最长为127个unicode字符。 • 0x90 索引根属性($INDEX_ROOT)为实现 B+树设置的根节点。 • 0xA0 索引分配属性($INDEX_ALLOCATION) 用于存放索引项。索引分配属性总是非常 驻属性,由一个个的索引记录组成。索引 记录存储在MFT之外的簇空间中,每个索引 记录有固定的大小,并包含一个分类树中 的节点,大小通常为4096字节。
NTFS文件系统解析
• 1、基本概念 • 元文件:NTFS包括几个系统文件,从NTFS卷来看, 它们都是隐藏的。文件系统用系统文件来存放元 数据并实现文件系统。系统文件是用Format程序 放在卷上的。 • MFT • 属性:NTFS中所有与数据相关信息都称之为“属 性”,甚至文件内容也被称为“数据属性”。 • NTFS与其他文件系统最大不同在于,大多数文件 系统是对文件内容进行读写,而NTFS则是对包含 文件内容的属性进行读写
• 当一个属性为非常驻时,如大文件的数据,它的 头部包含了NTFS需要在磁盘上定位该属性值的有 关信息。下图显示了一个存储在两个运行中的非 常驻属性
• 非常驻属性被存储在簇流中。簇流是一组 连续的扇区。簇流用它的起始簇号和流长 度加以说明。如,一个属性分为3部分,第 一部分存储在簇号为30,31,32,33,34的簇中, 则该簇流起始簇号为30,流长度为5。第二 部分存储在66,67号中,则第二个簇流起始 于簇66,长度为2。第三部分存储在39~42 号簇中,则第三个簇流起始于39号簇,流 长度为4。如图:
查看其DBR表
将文件名另存为16进制格式 在winhex中打开
找到G盘的MFT
查找“测试文件”对应的16进制字串
解析这一部分的结构可知:
• 1、该文件占用了6个簇 • 2、该文件起始位置 • LCN为0x 62 4F=25167(?扇区)
定位并复制文件数据
• 请思考,为什么两次操作后文件的实际大 小不一致?
• • • • • • • •
• • • • • • • • •
$MFT 主文件表(在DBR里30~37表示。数值不是扇区号,而是簇号。在看簇大小 0D 偏移,就是说:簇号X8=扇区数) $MFTMirr MFT的镜像 $LOGFILE 日志文件,这个是删不掉的。(元文件不能被删除,因为系统下不可访问) $volume 见文件,记录号,创建时间 $attrdef 属性定义列表 $bitmap 位图文件 $root 根目录文件 $badclus 坏簇的列表,在格式化的时候,NTFS发现坏的簇会做标记。防止系统访问他, 或者读取它。 $boot 引导文件 $quota 磁盘配额信息 $secure 安全文件 $upcase 大小写字母的转换 $extend metadata directry 扩展元文件目录 $ extend\$reparse 解析文件 $ extend\$usnjrnl 加密日志文件 $ extend\$quota 配额管理文件 $ extend\$objid 对象ID文件
浏览文件
• 点击WINHEX浏览文件
• • •
$mft和$mftmirr在系统下是看不到的,只能在这里看到。 $mft本身是一个文件大小会有变化,这里有32K $mftmirr只有4K,占用8个扇区。
MFT属性
• 属性的结构: • 每个MFT项大小为1024字节,分为两部分, MFT头和属性列表。 • 属性有许多类型,每种属性都有自己的内 部结构:属性头和属性内容。由于属性有 常驻属性和非常驻属性之分,所以属性头 也有差别,但不管是常驻还是非常驻,它 们属性头的前16个字节是相同的结构。 (如下图)
常 规 属 性 值 及 其 含 义
标准信息属性0x10
• 标准属性($STANDARD_INFOMATION)的类 型值为0x10,它总是常驻属性。它包含一 个文件或目录的基本元数据,如时间、所 有权和安全信息等。所有文件和目录必须 有这个属性。
标准属性实例
• 0x00~0x1F字节处32个字节分为4个8字节部 分,分别为文件的建立时间、最后修改时 间、MFT改变时间和最后访问时间。 • 0x20~0x23处4个字节为标志,这个文件的标 志为0x22,则为“存档、隐藏”
字节偏移(十六进制) 00-02 03-0A 0B-0C 0D 0E-0F 15 18-19
字节数 3 8 2 1 2 1 2
含义 跳转指令 OEM名(“明文NTFS”) 每扇区字节数 每簇扇区数 保留扇区数 介质描述符 每磁道扇区数(不检查此项)
1A-1B
1C-1F 24-27 28-2F 30-37 38-3F 40 41-43 44 45-47 48-4F 50-53 54-1FD 1FE-1FF
2
4 4 8 8 8 1 3 1 3 8 4 426 2
每柱面磁头数(不检查此项)
隐含扇区数(不检查此项) 总是80008000(不检查此项) 文件系统扇区总和 MFT起始簇号 MFT备份的起始簇号 每MFT项大小 未使用 每个索引的簇数 未使用 序列号 校验和 引导代码 签名55AA标记
• 以上引导扇区最为关键的字节数是0B-0C( 每扇区字节数) 0B-0C(每扇区字节数) 0D(每簇扇区数)28-2F(文件系统扇区总 和) 30-37(MFT起始簇号)38-3F(MFT备 份的起始簇号) 40(每MFT项大小)44( 每个索引的簇数),但数据发生不可预料 的损坏时,可以根据以上信息重建分区表 ,定位数据区,恢复MFT,重建DBR,这些 关键字节码的用处不言而喻。
• • • • • • • • •
向后边翻上两个扇区,就到了$MFTMirr MFT的镜像 $MFT我们在DBR里也能看到他在什么地方。30~37H的数值上体现) $MFTMirr我们在DBR里的38~3F 的数值上能体现出来。 镜像应该跟$MFT是一样的,但是他跟FAT32不一样,所以备份也不一定是完 全一样的。镜像只是前4个元文件的文件记录的备份。 1、 $MFT 2、 $MFTMirr 3、日志文件 4、卷标 四个元文件之后,就没有备份了。所以向下搜索是搜索不到的,只有4个
• NTFS中对文件或文件的某一部分进行位置描述时 用两种地址:LCN(逻辑簇号)和VCN(虚拟簇 号)。通过VCN到LCN的映射来描述非常驻属性流。 • LCN是文件系统的逻辑簇号,VCN则是一个文件内 容的内部编号。因此,属性流中VCN的0~4号簇对 应于LCN的30~34号簇,VCN的5,6号簇对应于LCN 的66,67号簇,VCN的7~10号簇对应于LCN的39~42 号簇。 • 因此LCN与VCN的对应关系及簇流列表中真正的记 录如图:
• 大文件或大目录的所有属性,就不可能都常驻在 MFT中。如果一个属性(如文件数据属性)太大 而不能存放在只有1KB的MFT文件记录中,那么 NTFS将从MFT之外分配区域。这些区域通常称为 一个运行(run)或一个盘区(extent),它们可 用来存储属性值,如文件数据。如果以后属性值 又增加,那么NTFS将会再分配一个运行,以便用 来存储额外的数据。值存储在运行中而不是在 MFT文件记录中的属性称为非常驻属性 (nonresident attribute)。NTFS决定了一个属性 是常驻还是非常驻的;而属性值的位置对访问它 的进程而言是透明的。
• NTFS的DBR
NTFS的引导扇区也位于文件系统的0号扇 区,这是它与FAT文件系统在布局 上的唯一 相同之处。 数据结构如下图,当格式化一个NTFS卷时 ,格式化程序分配开始的16个扇区给引导 扇区和自举代码。
•
在NTFS卷上,BPB后面的数据字段构成扩 展BPB。启动过程中,这些字段中的数据可 以使NTLDR(NT loader程序)找到主文件表 (MFT)。在NTFS卷上,MFT不会放在特定的 预定义扇区上(和FAT16或FAT32不一样),因 此,如果MFT通常的位置有坏扇区,它可以 移动。但是,如果数据遭到破坏,MFT无法 定位,则Windows NT/2000就认为该卷未格 式化。
文件名属性
• 文件名属性($FILE_NAME)的类型值为 0x30。任何文件和目录在它的MFT项中至少 有一个文件名属性。该属性用于存储文件 名,还包含文件大小、时间等信息。
数据属性
• 即($DATA,0x80)。这个属性存放文件的内 容。
• 常驻数据属性,可以看到,常驻数据属性 的内容直接跟着属性头之后,一起存储在 MFT中。
• 0xB0 位图属性($BITMAP)用于描述索引 或$MFT的分配情况。对于索引,它用1bit描 述索引的一个VCN,对于$MFT,用1bit描述 一个MFT项的分配情况。 • 0xC0 重解析点属性 • 0x100 安全属性
NTFS文件存储的定位
• 1、在G盘根目录创建文件
2、打开G盘
•
$MFT 主文件表(在DBR里30~37表示。数值不是扇区号,而是簇号。在看簇大小 0D 偏移,就是说:簇号X8=扇区数)