NTFS体系结构

本文详细探讨了NTFS文件系统的体系结构,对比FAT的缺点,阐述了NTFS如何通过元数据文件和簇系统存储信息。重点介绍了卷启动扇区、主文件列表(MFT)以及NTFS对簇的管理,强调了NTFS的可扩展性和高效性能。

假定读者对NTFSNew Technology File System)已有基本的了解,不再赘述NTFS的特性。

Microsoft发明了NTFS文件系统,为了能出色的完成使命,NTFS在设计上及其精细和完整。本文详细讨论NTFS卷(volumes)的体系结构,和构成NTFS分区(partition)的关键数据结构,解释NTFS如何使用重要的文件系统结构来储存信息,有时会与FAT文件系统进行比较。

NTFS体系结构概览

FAT文件系统的大部分缺点都直接来自其简单又过时的设计,比如由于没有考虑可能的安全和可靠性属性,导致后来很难在FAT分区上添加这些功能。相反,NTFS采用了一种全新的体系结构,不仅能支持许多高级的属性和功能,还使用了一个简单而优美的方案允许更多属性加入其中。

这个优美的方案体现在NTFS分区是如何存储数据上。实质上,NTFS里的所有数据都是文件,甚至包括NTFS内部使用的分区管理数据,统计信息,和控制信息等。控制信息(control information)存储在一些特殊文件里,在NTFS分区格式化的时候创建,它们被称为“元数据文件(metadata files)”,包含了诸如用户文件列表、卷属性、簇分配信息之类的数据。唯一的例外就是“分区启动扇区(partition boot sector)”,它位于所有其他元数据文件之前,定义了NTFS分区最基本的一些操作,比如如何加载操作系统。

这个优美的方案还扩展到了文件内部的结构里。NTFS分区里每个文件都是一些属性(attributes)的集合,文件的数据(data)只是属性之一,其他的属性还有文件名和大小等。这种结构看起来很像是数据库——操作系统把文件看成是包含了众多属性的对象,然后以此为基础进行各种操作。于是NTFS给文件增加一些新属性,就是很容易的事情了。

在内部,NTFS把所有文件(包括元数据文件)的存储方式都采用簇系统(cluster system)——每个文件都分散到一个或多个簇里,每个簇包含了2的幂次个512字节的扇区。表面上这和FAT文件系统的存储方式一样,但是底层的实现却是有差别的。

NTFS卷启动扇区(Volume Boot Sector

当创建NTFS分区的时候,首先创建的是卷启动扇区。它在结构上与FAT文件系统里的类似,并且是NTFS下少数几个不存储在主文件列表(master file table)里的元数据之一。NTFS的卷启动扇区有时也叫做分区启动扇区(partition boot sector),卷启动记录(volume boot record),或其它类似的名字。

注意:虽然名字里有“扇区(sector)”,实际上卷启动扇区占用了16个磁盘扇区(8KB)。

NTFS的卷启动扇区起始于分区的一个扇区,包含2个主要结构:

l  BIOS参数块(BIOS Parameter Block):包含卷的基本信息,比如标识卷的格式是NTFS,卷标签和大小。除此之外,NTFS提供了一个扩展BIOS参数块,包含其它卷信息,例如重要元数据文件的位置。

l  卷启动代码(Volume Boot Code):在NTFS里,这块程序代码表示如何装载Windows NT2000操作系统。常见的过程是装载NTLDR,把控制权交给它,让它来装载操作系统的其他部分。

FAT文件系统的卷启动代码向来是病毒程序最亲睐的领地之一,因为修改这部分代码能使病毒优先于操作系统启动。Windows NT2000对此重新设计以保证安全性,使得卷启动代码里的病毒极难传播,因为操作系统一旦取得控制权,就会严格限制磁盘读写操作。(当然,病毒还是可能在Windows NT/ 2000系统里存在。)

NTFS系统(元数据)文件

前面已经说过,NTFS文件系统把所有的数据,无论用户的还是系统的,都存储成文件。所以有一部分文件对于NTFS是非常重要的,即元数据文件。元数据文件在NTFS卷格式化的时候自动产生,并组织在整个分区的前面。现在解释这些文件如何工作有些为时尚早,我们从它们在分区里的位置开始,首先是主文件列表(MFT Master File Table)。MFT实际上也是元数据文件,但是它描述了其他的元数据文件,甚至有的元数据文件整个就在MFT里面。MFT为每个文件或目录都保存一个记录(record),如果这个文件太小,那么整个文件就可能都存储在这个记录里。因为元数据文件在NTFS也是“文件”,所以它们在MFT里也有对应的记录。实际上,MFT的前16个记录就是为元数据文件保留的。

“怎么听起来这么麻烦?”是的,这个系统非常复杂,但是它在逻辑上是完整和一致的,而且运行得很好。下表列出了元数据文件的重要信息:

Metadata File Name

File Name

MFT Record #

Description

解析NTFS底层结构 一、NTFS系统结构 NTFSWindows NT引入的新型文件系统,如果您是一位熟悉FAT磁盘格式的专业人士,您可能会觉得NTFS系统的思想蹩脚而晦涩,如果您对FAT格式一无所知,那么恭喜您,您会更快的了解这种更有效率的磁盘格式。 NTFS的结构复杂,内容繁多,笔者仅对NTFS卷上的底层结构做分析,并提供卷上数据删除的特征状态供大家参考。 现在,我们首先来建立了解NTFS需要的基本概念。 1.0基本结构及基本概念 在NTFS中,文件以簇的形式分配。最小的单位为扇区,N个扇区为一簇。其中,N的值可以通过BPB(引导扇区)读出(以下会详细介绍)。 1.0.1卷与簇 卷大小(分区大小) 每簇的扇区 缺省的簇大小 小于等于512MB 1 512字节 513MB~1024MB(1GB) 2 1024字节(1KB) 1025MB~2048MB(2GB) 4 2048字节(2KB) 大于等于2049MB 8 4KB 表1 卷与簇的关系 从上面可以看出,也就是说不管驱动器多大NTFS簇的大小不会超过4KB。 1.0.2 NTFS的基本数据结构 NTFS的数据大体上可分为4个部分 (1) Partition boot sector(引导扇区,又称BPB),此部分为所有磁盘格式都共有,占用一个扇区,但是具体的内容当然各不相同(见表3)。 (2) Master File Table(主文件列表,MFT),它是对卷上所有文件的记录,每一个文件对应一个记录项,理论上占用该卷12%的空间。 (3) System files(系统文件),NTFS系统一共有16个系统文件,和8个保留文件。 (4) File area(数据区),留给用户的空间。 Partition boot sector 引导扇区 Master File Table 主文件列表 System files 系统文件 File area 用户文件区(数据区) 表2 NTFS磁盘分配情况
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值