全面了解NTFS文件系统结构

合集下载

ntfs详细介绍

ntfs详细介绍

上一页下一页2 Windows NT的文件系统1. 概述(1)NTFS为多级目录结构,支持文件别名(符号链接方式);(2)NTFS文件由多个文件属性构成,每个属性由属性名和属性流(stream, 简单字节队列)组成;用户可自定义属性;(3)NTFS支持用户权限管理:有5种权限划分:读、写、运行、删除和修改权限;支持按用户、用户组分配权限;(4)NTFS文件支持数据压缩功能;(5)NTFS卷结构支持容错功能.2. NTFS结构NTFS的结构以卷为单位,卷与磁盘分区相关;卷由一组文件和未分配空间组成.NTFS以簇为基本硬盘分配单位,簇的大小为物理扇区的整数倍,通常为2K倍。

NTFS卷上的所有数据(包括用于引导、定位、空间分配等文件系统管理数据)都以文件的形式保存.NTFS结构由一组元文件构成:(1)主文件表($MFT):文件记录数组,每个记录为1KB;每个文件对应一个或多个文件记录;(2)主文件表副本($MFTMirr):是主文件表中前几项的副本,用于在主文件表不能读取时的元文件定位;(3)卷结构日志($LogFile):记录所有影响NTFS卷结构的操作,用于系统失败后的卷恢复;(4)空间分配位图($Bitmap):标识卷中每个簇的分配状态,即:空闲和已被分配;(5)引导文件($Boot):引导程序代码;(6)坏簇文件($BadClus):记录卷中据有损坏位置;(7)卷文件($V olume):卷名、文件系统版本、卷状态(卷是否被损坏);(8)属性定义表($AttrDef):卷中支持的属性类型列表.文件引用号:在主文件表中每个文件记录有一个64位的文件引用号;它由文件号和顺序号组成,文件号(48位:47~0)是文件在主文件表中的位置序号,顺序号(16位:63~48)在每次重复使用该文件记录时加1;NTFS文件是属性的集合,通常所说的文件内容是指未命名数据属性流.例:我们定义两个数据属性:ntfile(数据)和ntfile:data(自定义数据)。

ntfs文件系统1

ntfs文件系统1

一,ntfs文件系统nt文件系的统主要特征是在引导记录了描述的。

这些文件系统从引导扇区的位置开始直至这些磁道加上卷(分区)里的磁道区域。

分区是由簇构成,而且只能是簇(512字节)的整数倍。

每个分区的开始地址是(逻辑)0簇。

任何(软件的磁盘)定位系统都是用簇而不是磁道号。

各种(磁盘)信息储存在文件分配表(MFT)里。

文件分配表的位置在引导扇区的“第一文件分配表”表项里给出。

文件分配表是一个数据库,包含了此分区的所有文件及目录的信息。

每一个表项是1024字节(fat32是4个字节,fat16是2个字节,fat12是1.5个字节)。

每一个表项记录一个文件或目录(包括文件分配表自己),并且有一个记录号等于文件分配表的位置除以1024。

文件分配表的表项由一个表头和表示文件或目录属性的列表组成。

这些属性描述了文件或目录的名称、时间、大小等。

主要的属性如下:10 Standard information: contains time stamps and DOS attributes,30 File name: contains the file's name for different name spaces (usually NT's native Unicode file name and DOS compatible DOS file name),80 Data: if the entry represents a file, this attribute contains the file's data.90 Index root: if the entry is a directory, this attribute describes the root of a binary tree in which the directory entries are located,A0 Index allocation: if the entry is a directory, this attribute contains a list of file names.这些属性表比1024字节大,意味着一些属性必须记录在文件分配表表项外。

了解计算机文件系统NTFSFAT和HFS的区别

了解计算机文件系统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文件系统

NTFS文件系统NTFS(New Technology File System,新技术文件系统),是以MFT(Master File Table,主文件表或主索引记录)为核心,将整个分区的系统文件和用户文件有机地组织起来的文件系统。

NTFS最基本的原则:·磁盘上任何对象包括目录都是一种文件,都使用文件记录进行管理。

·所有与文件相关的项目,包括数据都被认为是属性。

·属性分常驻(在记录中)和非常驻两种,非常驻的大文件夹使用B+树结构进行管理。

·簇是NTFS最小的基本单位,一个1字节的文件也要占用一簇的空间。

·流是NTFS最基本的存储单元,是文件属性和属性值的集合。

●MFT文件◇MFT的位置和作用:MFT文件和它的备份,位于NTFS分区中部,前后都是数据区,能更好地受到保护。

与FAT 系统先放文件分配表,后接数据区的做法不同。

XP系统的NTFS分区,大致布局如下图:分区所有的文件,其相关的文件信息都保存在MFT中。

小于1K的小文件(目录),其整个内容都保存在MFT中。

大于1K的大文件(目录),只有它的起始信息保存在MFT中。

在NTFS中,文件通过主文件表MFT定位。

MFT是组织、架构NTFS文件系统最主要的数据库文件,对NTFS分区的性能有着至关重要的影响。

◇ID编号(MFT Entry Value,文件号):分区中的所有文件和目录(包括MFT文件自身),都被系统ID编号(编号0为MFT文件),并将它们的各类属性、起始信息或全部内容,以文件记录的形式,保存在MFT中。

分区高级格式化成NTFS文件系统时,首先建立了一个主文件表MFT。

在MFT文件中,会预先建立16个重要的文件(MFT记录的ID编号固定为0-15)和8个保留文件(MFT记录的ID编号固定为16-23),这24个文件是被称为元文件(Metafiles)或元数据(metadata)的系统文件(具体内容见后面),供系统本身组织、架构文件系统使用。

NTFS文件系统结构分析

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外另外开辟空间存储(如 文件数据),则称为非常驻属性。 • 有的属性在属性头之后列出了属性名,而有的则没有。

解析ntfs底层结构

解析ntfs底层结构

解析ntfs底层结构Ntfs是我们经常用的文件系统,不仅在Windows分区中起到了很大的作用。

还在我们经常使用的U盘上也平凡出现,那么我们了解经常使用的ntfs吗?小编就来带大家解析ntfs底层结构。

一、NTFS系统结构NTFS是Windows NT引入的新型文件系统,如果您是一位熟悉FAT磁盘格式的专业人士,可能会觉得NTFS文件系统的思想蹩脚而晦涩,如果您对FAT格式一无所知,那么恭喜您,您会更快的了解这种更有效率的磁盘格式。

NTFS的结构复杂,内容繁多,小编仅对NTFS卷上的底层结构做分析,并提供卷上数据删除的特征状态供大家参考。

现在,我们首先来建立了解NTFS需要的基本数据结构概念。

图一:ntfs1、NTFS的基本数据结构NTFS的数据大体上可分为4个部分(1) Partition boot sector(引导扇区,又称BPB),此部分为所有磁盘格式都共有,占用一个扇区,但是具体的内容当然各不相同(见表3)。

(2) Master File Table(主文件列表,MFT),它是对卷上所有文件的记录,每一个文件对应一个记录项,理论上占用该卷12%的空间。

(3) System files(系统文件),NTFS系统一共有16个系统文件,和8个保留文件。

(4) File area(数据区),留给用户的空间。

Ntfs说起来很复杂,用起来很简单。

我们常常会与其相遇,但都视而不见,以至于mac系统都对它视若无睹。

这是ntfs的悲伤,也是mac的绝情。

mac系统对ntfs格式的磁盘只可以读不可以写入,所以小伙伴们要是心疼ntfs,一直用自己强大的功能默默付出,去无人问津。

就在自己的mac电脑上下载软件ntfs for mac。

帮助ntfs走进mac的心里。

全面了解NTFS文件系统结构

全面了解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个记录是操作系统使用的非常重要的元数据文件。

6 NTFS文件系统

6 NTFS文件系统

文件记录
NTFS文件是属性的集合,通常所说的文件内容是指未命名 数据属性流 例:我们定义两个数据属性:ntfile(数据)和ntfile:data(自 定义数据)。在向FAT复制时,自定义属性会丢失
echo test....data >ntfile echo er defined data >ntfile:data more <ntfile more <ntfile:data copy ntfile e:ntfile (E:为NTFS文件系统) copy ntfile c:ntfile (C:为FAT文件系统) more <e:ntfile more <e:ntfile:data more <c:ntfile more <c:ntfile:data
NTFS可恢复性
日志文件服务:一组NTFS驱动程序内的核心态程序 日志记录
更新记录 检查点记录
恢复过程
维护两张表:事务表和脏页表 日志文件进行三次扫描
分析扫描 重做扫描 撤销扫描
NTFS坏簇恢复支持
8. NTFS安全性
NTFS文件加密系统结构
加密文件系统(EFS)可将加密的NTFS文件存 储在磁盘上 EFS使用基于RSA的公共密钥算法进行加密
索引分配
位图
索引缓冲区
文件1 文件2
文件4 文件5 文件6
NTFS目录组织与索引
索引根属性将相应目录中的文件名和子目录名 进行排序 索引分配属性包含了索引缓冲区的VCN到LCN 映射 位图属性跟踪在索引缓冲区中哪些VCN是在使 用而哪些是空闲的
标准信息 文件名 “ \” 索引根 文件4 文件9 文 件 14 其 他 文 件 索引分配 VCN到 LCN转 换 位图 ...

NTFS文件系统实例分析

NTFS文件系统实例分析

NTFS文件系统实例分析一、基本情况NTFS文件系通过主文件$MFT管理文件,每个文件都有很多属性,磁盘上每建立1个文件,在$MFT中记录文件的属性,文件记录大小都是1KB,小文件(小于1KB)的全部属性都存放在$MFT中,大文件(1K以上)在它的MFT基本文件记录中,其80数据属性有数据运行(dataRuns或一个盘区(extent),)指针(包含数据所在的起始簇号和簇的大小),也称为流描述,当流描述的第一个字节为0里就表示该流已经结束。

NTFS使用逻辑簇号(LCN,Logical Cluster Number)和虚拟簇号(VCN,Virtual Cluster Number)来对簇进行定位。

LCN是对整个卷中的所有的簇从头到尾进行简单编号,VCN是对特定文件的簇从头到尾进行编号,以便引用文件中的数据。

文件MFT记录的结束标志为ff ff ff ff。

二、举例建立一个小文本文件dd.txt和一个大文件large.txt。

1、文件属性修改打开主文件$MFT,按Unicode编码,向下查找文本,搜索文件名dd.txt,读出文件dd.txt记录,查看0x10属性,在偏移0x38处就是该文件属性,长度为4字节。

改变此字节就可改变文件是的只读、隐藏、系统等属性。

2、小文件(小于1KB,文件所有属性在MFT中的一条记录中容纳)打开主文件$MFT,按Unicode编码,向下查找文本,搜索文件名dd.txt,读出文件dd.txt的记录,查看0x80属性,在偏移0x18处就是该文件的内容,在此可直接修改文件内容。

2、大文件(大于1KB)打开主文件$MFT,按Unicode编码,向下查找文本,搜索文件名large.txt,读出文件large.txt的记录,查看0x80属性,在偏移0x10、0x18处分别用8个字节记录文件起始VCN和结束VCN,此例分别是00 00 00 00 00 00 00 00,01 00 00 00 00 00 00 00,说明文件只有0簇和1簇共2簇;在偏移0x20处的2个字节是该文件数据运行的偏移,此处的值为0x40,所以查看偏移0x40处就是文件的第1个运行的描述,该运行分为:子运行1:31 02 C6 3A 0C其中“31”中的“1”表示“31”后面第1个字节的数表示子运行的大小,即该子运行的大小为02簇。

详解NTFS文件系统

详解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 文件系统解析

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];

了解电脑的文件系统NTFSFAT和exFAT有何区别

了解电脑的文件系统NTFSFAT和exFAT有何区别

了解电脑的文件系统NTFSFAT和exFAT有何区别NTFS、FAT和exFAT是电脑中常见的文件系统,它们在存储和管理数据方面有着显著的区别。

本文将详细探讨NTFS、FAT和exFAT 三种文件系统的不同之处。

一、NTFS文件系统NTFS(New Technology File System)是由微软公司开发的一种高级文件系统。

它在Windows NT系列的操作系统中被广泛应用,并取代了旧版的FAT文件系统。

以下是NTFS文件系统的主要特点:1. 安全性:NTFS提供了更高级别的安全性和权限控制。

用户可以设置文件和文件夹的访问权限,限制特定用户或用户组的访问权限,从而更好地保护数据的安全性。

2. 容量支持:NTFS支持较大容量的硬盘驱动器和文件大小。

它能够处理大于4GB的单个文件,并能够有效地管理大容量的磁盘空间。

3. 冗余:NTFS文件系统使用数据冗余和磁盘镜像技术来提高数据的可靠性和恢复能力。

这意味着在某些情况下,即使硬盘出现故障,也可以通过镜像副本进行数据恢复。

4. 记录式文件系统:NTFS采用了记录式文件系统的结构,可以追踪数据的更改历史,包括创建、修改和删除等操作。

这种结构可以帮助恢复误删除的文件或者回滚到之前的版本。

二、FAT文件系统FAT(File Allocation Table)是一种较为简单的文件系统,主要用于早期的MS-DOS和Windows操作系统。

现代Windows操作系统仍然支持FAT文件系统,以便与兼容性较差的设备进行文件共享。

以下是FAT文件系统的主要特点:1. 兼容性:FAT文件系统具有良好的兼容性,可以在多个操作系统和各种设备之间共享和访问文件。

它被广泛应用于闪存驱动器、外部硬盘以及一些较旧的移动设备。

2. 简单性:由于FAT文件系统较为简单,它的数据结构相对较小。

这意味着对于较小容量的存储介质来说,FAT文件系统可以节省磁盘空间。

3. 有限的安全性:相比于NTFS,FAT文件系统的安全性较低。

Windows NTFS文件系统详解

Windows NTFS文件系统详解

(一)Windows文件系统简介一:簇我们知道一个新硬盘在使用之前,首先要创建分区或卷,然后再格式化才可以使用。

格式化就好象是在一张纸上打格子,这些打好的格子,就是簇。

簇的特点是:每一个文件存储时,都必须要以一个新簇开头。

二:FAT16这是较老的一种文件格式,是用于16位的操作系统之上,它的特点是:分区越大,簇也随之增大。

假如一个簇(格子)的大小为4KB,我们要存放一个6KB大小的文件,那么这个文件实际要占用8KB的空间,即占用2个簇。

第一个簇被占满,而第二个簇只使用了2KB,另外2KB的空间实际上是被闲置了。

这时假如再存放一个6KB的文件,它不能接着上面闲置的2KB空间继续存放,每一个文件都要以一个新簇开始。

于是这个文件又占去了8KB的空间。

这样,两个6KB的文件的实际占用空间是16KB可见簇越大,越浪费空间。

在FAT16文件系统中,如果一个分区的大小超过2GB的话,那么一个簇的大小是64KB,也就是说,既使你只存放一个1KB的文件,它实际也要占用64KB的硬盘空间。

FAT16文件系统是非常浪费空间的。

如果使用FAT16文件系统,一个分区最好不要超过2GB,推荐小于256MB,这样一个簇的大小小于4KB。

三:FAT32FAT32是32位文件系统,推荐FAT32每个分区小于32GB,这样每个簇的大小小于4KB,节约空间。

四:NTFS每个簇最大4KB,并且在格式化的时候,可选择簇的大小。

非常节约空间。

五:NTFS文件系统的特点(a)安全性好(b)簇小,节约空间(c)支持活动目录(AD)(d)支持文件加密系统(EFS)(e)不支持软盘(f)支持文件许可(Permission)六:文件格式的转化FAT转到N TFS的命令格式如下:Convert c:/fs:ntfsConvert为格式转换命令,c:代表要转换格式的分区(盘符)。

如果是系统盘,需要重新启动计算机,非系统盘不用重启。

NTFS转到FAT 或FAT32是不支持动态转换的,只能重新格式化,这样数据会全部丢失。

NTFS文件系统解析

NTFS文件系统解析

NTFS⽂件系统解析1. windows 下磁盘⽂件读写下⾯是读取D:\磁盘上的第0扇区 512 BytesCreateFile()打开磁盘,获取⽂件句柄;SetFilePointer()设置读写的位置;ReadFile()读取磁盘扇区数据。

HANDLE hFile;char drive[] = "\\\\.\\D:"; //------- \\.\D: -----//------- 创建⽂件句柄 ------hFile = CreateFile(drive, // 还可以为硬盘"\\\\.\\physicalDrive0"绝对读写, 或类似"D:\\abc\\fileName.txt"⽂件形式, GENERIC_READ, // 打开⽅式 FILE_SHARE_WRITE|FILE_SHARE_READ, // 前者表⽰之后打开该⽂件的程序 only write, 后者为only read NULL, // 安全属性 LPSECURITY_ATTRIBUTES OPEN_EXISTING, // how to Create 0, NULL); //if(hFile == INVALID_HANDLE_VALUE) return;// 中间两个参数分别是偏移字节数的低32Bit数值,和⾼32Bit的地址, ⾼32Bit不⽤则为零; 此处表⽰D:\从⾸扇区起,偏移字节数为0SetFilePointer(hFile, 0, NULL, FILE_BEGIN);DWORD lenRead;ReadFile(hFile, buf, 512, &lenRead, NULL); // 在设定的位置起,读取512Byte到缓存buf; 这⾥读取的是分区引导扇区2. 获取磁盘所有驱动器DWORD allDrive = GetLogicalDrive().// 返回值共有 32 Bits,从低位到⾼位分别表⽰A,B,C,D,E,.....// ⽐如0x0000 007C, 即 01111100, 表⽰有C,D,E,F,G 共5个驱动器;3. NTFS ⽂件系统 ⼀个NTFS系统是由引导扇区,主⽂件表MFT,和数据区组成;另外MFT有⼀部分重要备份在数据区。

通俗介绍NTFS的文件存储结构

通俗介绍NTFS的文件存储结构

通俗介绍NTFS的文件存储结构当我们将分区格式化成NTFS并存储文件时,系统做了什么呢?1、格式化后,系统在第0扇区写下DBR(这个FAT32一样)2、系统将所有扇区划分为n个簇,并在某个簇处建立$mft(主控文件表),超过10G以上的分区,$mft的起始簇一般在786432簇,5G以下的分区$mft的起始簇一般在262144簇(有趣吧,786432/262144=3),这个$mft又被划分为n个小表项,每个表项占用1K的空间(即2个扇区),NTFS将存储在分区的每个文件(包括系统文件)分配一个登记表项。

3、分区格式化后,首先建立16个系统文件(有的少个别文件),并在$mft的前16个项进行登记。

如图:这16个文件通过操作系统是看不到的,要用工具软件如winhex才能看到,16个文件中除了$boot和$AttDef表项损坏外,其它表项的损坏都会导致不能进入分区,显示目录结构损坏。

对分区的格式化就是重写这16个表项。

3、当我们向分区中存储一个文件或文件夹时,会在$mft的第24个表项进行登记(16-23表项系统保留),主要在这表项的2个扇区中写下文件(文件夹)的MFT号、文件名、创建时间、修改时间、访问时间、大小等,如果文件的内容在这1024个字节存储不下的话,就会向分区申请一个可用的空簇存储,并在mft表项中写下链接的数据流地址。

对于文件夹来说,如果其子文件(夹)少的话,子文件(夹)的内容就会一同登记在父文件夹的MFT中;如果其子文件(夹)多,就会向分区申请一个可用的空簇,将子文件(夹)作为一个个索引项登记在其中,并在父文件夹的mft表项中写下索引项的链接地址。

4、学习NTFS时首先从掌握文件的10、30、80、90、A0、B0属性入手。

一般文件的MFT表项中都有10属性、文件名长时有2个30属性、当文件内容很小,MFT中能容纳下的时候,它的80属性为常驻属性,一并存储着文件的内容。

当文件内容过大时,内容就会存储到分区的某个空簇内,在80属性中写下那个簇的偏移地址,这个地址就是查找文件内容的途径。

文件系统ntfs

文件系统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操作系统中最常用的文件系统之一。

NTFS文件系统结构

NTFS文件系统结构

NTFS文件系统结构前言:最近由于项目需要,研究了一下NTFS文件系统,NTFS文件系统是windows使用的文件系统,包括NT,2000,xp系列。

无奈万恶资本主义的windows将自家的东西全部藏在阴暗的角落,NTFS理所当然地也不开源,尽管没有源代码,还是有足够丰富的资料将NTFS文件系统曝光在自由的阳光下。

下面通过从NTFS文件系统的根源出发,展示如何通过一层层的解析,最终读取到其中的某个文件。

环境:LINUX Ubuntu16.04,待解析的文件系统:NTFS,追踪其中的文件:C:\WINDOWS\DtcInstall.log(随机找的,仅仅以此为例)说明:本人找了一块完整的NTFS文件系统镜像,它里面是一个完整的Windows XP系统,是从Windows XP虚拟机镜像切下来的(因为虚拟机镜像不止包括完整的文件系统,例如我的这块虚拟机镜像从第0x7E000字节以后才是完整的NTFS文件系统),这些都不重要,重要的是现在你只要有一块完整的NTFS文件系统,当然必须是Window XP系统的,因为我们还有追踪C:\WINDOWS\DtcInstall.log这个文件,所以其实在Windows XP中使用Disk Genius打开你C盘分区就是一块完整的NTFS文件系统,如果以16进制查看应该是这样的:NTFS文件系统的布局:BOOT存放一些文件系统基本信息,如一个扇区512bytes,一簇(cluster)有8个扇区,共4K,比较重要的一项是MFT的偏移簇号。

MFT是NTFS中最重要的部分,它是一个个以“FILE"开始的文件记录数据结构。

struct 文件记录{文件记录头;属性1;属性2;属性3;……}而属性包括属性头和属性体两部分,如下属性的数据结构。

struct 属性{属性头;属性体;}所以,下面的文件记录结构举例请参考文件记录结构、文件记录头结构、属性头结构、不同属性体结构来看!这个数据结构就是文件的全部信息,文件的各种属性都放在这个数据结构中,在NTFS中文件内容也属于文件的属性,所以在NTFS中文件的一切都是属性,比如在这个数据结构中有30H属性记录文件名,10H属性记录文件的一些元信息如创建、访问时间等,而80H属性则是文件的内容,因为一个文件记录数据结构仅仅4K,所以如果文件很大,80H属性存放的不再是文件内容,而是存放文件内容的簇索引号run list.对于run list 解析以后介绍,这里知道它是文件内容的簇偏移索引即可。

NTFS文件系统结构总览数据恢复迷

NTFS文件系统结构总览数据恢复迷

NTFS文件系统结构总览数据恢复迷当用户将硬盘的一个分区格式化为NTFS分区时,就建立了一个NTFS文件系统结构。

NTFS文件系统与FAT文件系统一样,也是用簇为基本单位对磁盘空间和文件存储进行管理的。

一个文件总是占有若干个簇,即使在最后一个簇没有完全放满的情况下,也是占用了整个簇的空间,这也是造成磁盘空间浪费的主要原因。

文件系统通过簇来管理磁盘,并不需要知道磁盘扇区的大小,这样就使NTFS保持了与磁盘扇区大小的独立性,从而使不同大小的磁盘选择合适的簇。

NTFS分区也被称为NTFS卷,卷上簇的大小,又称为卷因子,其大小是用户在创建NTFS卷时确定的。

和FAT文件系统一样,卷因子的大小和文件系统的性能有着非常直接的关系。

当一个簇占用的空间太小时,会出现太多的磁盘碎片,这样在空间和文件访问时间上会造成浪费;而相反的当一个簇占用的空间太大时,直接造成了磁盘空间的浪费。

因此,最大限度地优化系统对文件的访问速度和最大限度地减少磁盘空间的浪费是确定簇的大小的主要因素。

簇的大小一定是扇区大小的整数倍,通常是2n(n为整数)。

表4-28是NTFS文件系统中不同卷大小和簇的一般关系。

当然这并不是完全一定的,只是系统格式化磁盘时的默认情况,这个默认的簇的值一般被认为是最能优化系统的值。

表4-28 NTFS卷大小和簇大小关系表卷大小(MB)每簇的扇区默认的簇大小≤512 1 512个字节513~1024 2 1024个字节(1KB)1025~2048 4 2048个字节(2KB)≥20498 4KB当一个分区由FAT卷转变成为一个NTFS卷时,卷因子的大小总是占用一个扇区。

NTFS文件系统使用了逻辑簇号(Logical Cluster Number,LCN)和虚拟簇号(Virtual Cluster Number,VCN)对卷进行管理。

其中LCN是对卷的第一个簇到最后一个簇进行编号,只要知道LCN号和簇的大小以及NTFS卷在物理磁盘中的起始扇区(绝对扇区)就可以对簇进行定位,而这些信息在NTFS卷的引导扇区中可以找到(BPB参数),在系统底层也是用这种方法对文件的簇进行定位的。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

解读NTFS
NTFS是一个比FAT复杂的多的文件系统,我们一起努力来把它完整的解读出来
NTFS的引导扇区也是完成引导和定义分区参数,和FAT分区不同,FAT分区的B OOT记录正常,就显示分区没有错误,即使文件不正确,而NTFS分区的BOOT不是分区的充分条件,它要求必须MFT中的系统记录如$MFT等正常该分区才能正常访问。

其BPB参数如下表所示。

字节偏移长度常用值意义
0x0B 字 0x0002 每扇区字节数
0x0D 字节 0x08 每簇扇区数
0x0E 字 0x0000 保留扇区
0x10 3字节 0x000000 总为0
0x13 字 0x0000 NTFS未使用,为0
0x15 字节 0xF8 介质描述
0x16 字 0x0000 总为0
0x18 字 0x3F00 每磁盘扇区数
0x1A 字 0xFF00 磁头数
0x1C 双字 0x3F000000 隐含扇区
0x20 双字 0x00000000 NTFS未使用,为0
0x28 8字节 0x4AF57F0000000000 扇区总数
0x30 8字节 0x0 $MFT的逻辑簇号
0x38 8字节 0x54FF0000 $MFTMirr的逻辑簇号
0x40 双字 0xF6000000 每MFT记录簇数
0x44 双字 0x01000000 每索引簇数
0x48 8字节 0x14A51B74C91B741C 卷标
0x50 双字 0x00000000 检验和
MFT中的文件记录大小一般是固定的,不管簇的大小是多少,均为1KB。

文件记录在MFT文件记录数组中物理上是连续的,且从0开始编号,所以,NTFS是预定义文件系统。

MFT仅供系统本身组织、架构文件系统使用,这在NTFS中称为
元数据(metadata,是存储在卷上支持文件系统格式管理的数据。

它不能被应用程序访问,只能为系统提供服务)。

其中最基本的前16个记录是操作系统使用的非常重要的元数据文件。

这些元数据文件的名字都以“$”开始,所以是隐藏文件,在Windows 2000/XP中不能使用dir命令(甚至加上/ah参数)像普通文件一样列出。

在WINHEX中带有NFI.EXE,用此工具可以显示这些记录与文件的对应关系。

这些元数据文件是系统驱动程序管理卷所必需的,Windows 2000/XP给每个分区赋予一个盘符并不表示该分区包含有Windows 2000/XP可以识别的文件系统格式。

如果主文件表损坏,那么该分区在Windows 2000/XP下是无法读取的。

为了使该分区能够在Windows 2000/XP下能被识别,就必须首先建立Window
s 2000/XP可以识别的文件系统格式即主文件表,这个过程可通过高级格式化该分区来完成。

Windows以簇号来定位文件在磁盘上的存储位置,在FAT格式的文件系统中,有关簇号的指针包含在FAT表中,在NTFS中,有关簇号的指针则包含在$MFT及$MFTMirr文件中。

NTFS使用逻辑簇号(Logical Cluster Number,LCN)和虚拟簇号(Virtual C luster Number,VCN)来对簇进行定位。

LCN是对整个卷中所有的簇从头到尾所进行的简单编号。

用卷因子乘以LCN,NTFS就能够得到卷上的物理字节偏移量,从而得到物理磁盘地址。

VCN则是对属于特定文件的簇从头到尾进行编号,以便于引用文件中的数据。

VCN可以映射成LCN,而不必要求在物理上连续。

在NTFS卷上,跟随在BPB后的数据字段形成一个扩展BPB。

这些字段中的数据使得 Ntld r能够在启动过程中找到主文件表MFT(Master File Tabl )。

在NTFS卷上,MFT并不象在FAT 16卷和FAT 32卷上一样,被放在一个预定义的扇区中。

由于这个原因,如果在MTF
的正常位置中有坏扇区的话,就可以把MFT移到别的位置。

但是,如果该数据被破坏,就找不到MFT的位置,Windows 2000假设该卷没有被格式化。

因此,如果一个ntfs的卷提示未格式化,可能并未破坏MFT,依据BPB的各字段的意思是可以重建BPB的。

NTFS的缺省簇的大小
卷大小每簇的扇区缺省的簇大小
小于等于512MB 1 512字节
513MB~1024MB(1GB) 2 1024字节(1KB)
1025MB~2048MB(2GB) 4 2048字节(2KB)
大于等于2049MB 8 4KB
从上面可以看出,也就是说不管驱动器多大 NTFS 簇的大小不会超过 4KB
NTFS文档:文档属性定义
每个文档属性都由以下部分组成:
一个由该属性的实际值组成的被称为“流”的重要的字节序列,元数据可访问该流。

文件中的每个文件属性都可能会有一个名字:在这种情况下,在命令行方式下可以通过语法“文件名:属性名”来访问该流(这也是文件名中不能使用“:”的原因)。

Windows NT&reg; 使用以下在元数据文件$AttrDef中预定义的文件属性列表(一般会有一个未命名流,为缺省流,未命名流只能有一个,而命名流可以有多个,NTFS支持多流文件):
10 $STANDARD_INFORMATION (标准信息)
20 $ATTRIBUTE_LIST (属性列表)
30 $FILE_NAME (文件名)
40 $VOLUME_VERSION (卷版本)
50 $SECURITY_DEscriptOR (安全描述符)
60 $VOLUME_NAME (卷名)
70 $VOLUME_INFORMATION (卷信息)
80 $DATA (数据)
90 $INDEX_ROOT (索引根)
A0 $INDEX_ALLOCATION (索引分配)
B0 $BITMAP (位图)
C0 $SYMBOLIC_LINK(符号链接)
D0 $EA_INFORMATION (?信息)
E0 $EA
属性流结构
每个文件属性都分为两部分:尽管这两部分属性在文件记录的属性列表中以倒序方式进行记录,但是为了更好的理解它,让我们按下面的顺序进行介绍:
内容部分:
它的结构总是以属性名开始(N字节长),在属性名之后定义该属性是否为常驻属性。

当文。

相关文档
最新文档