NTFS文件系统若干技术研究.docx

上传人:b****5 文档编号:4164262 上传时间:2022-11-28 格式:DOCX 页数:77 大小:1.78MB
下载 相关 举报
NTFS文件系统若干技术研究.docx_第1页
第1页 / 共77页
NTFS文件系统若干技术研究.docx_第2页
第2页 / 共77页
NTFS文件系统若干技术研究.docx_第3页
第3页 / 共77页
NTFS文件系统若干技术研究.docx_第4页
第4页 / 共77页
NTFS文件系统若干技术研究.docx_第5页
第5页 / 共77页
点击查看更多>>
下载资源
资源描述

NTFS文件系统若干技术研究.docx

《NTFS文件系统若干技术研究.docx》由会员分享,可在线阅读,更多相关《NTFS文件系统若干技术研究.docx(77页珍藏版)》请在冰豆网上搜索。

NTFS文件系统若干技术研究.docx

NTFS文件系统若干技术研究

NTFS文件系统若干技术研究

作者:

Beiyu

主页:

电子邮箱:

beiyuly@

日期:

2007-4-26

ResearchonSomeTechniqueofNTFS

Author:

Beiyu

HomePage:

Email:

beiyuly@

Date:

2007-4-26

目录

NTFS文件系统若干技术研究1

ResearchonSomeTechniqueofNTFS1

目录2

表目录4

图目录5

摘要6

第一章NTFS介绍7

1.1现状7

1.2NTFS特点9

1.2.1优点9

1.2.2NTFS的不足11

1.3NTFS未来12

第二章NTFS相关概念理论14

2.1RAID简介14

2.2NTFS文件系统分区14

2.2.1基本分区14

2.2.2动态分区14

2.3NTFS参数结构介绍14

2.3.1NTFS的DBR15

2.3.2NTFS文件空间分配16

2.3.3NTFS元文件17

2.3.4元文件和DBR参数关系21

2.3.5NTFS的文件和目录23

2.3.6常驻属性与非常驻属性25

2.3.7MFT文件记录结构分析29

2.3.7.1基本概念29

2.3.7.2文件记录头分析31

2.3.7.3标准属性分析32

2.3.7.4文件名属性分析34

2.3.7.5数据流属性分析37

2.3.7.6位图属性分析37

2.3.7.7$MFT结构总结38

2.3.8$Boot元文件介绍39

2.3.9NTFS索引与目录40

2.4EFS43

第三章NTFS文件基本操作46

第四章NTFS文件系统数据恢复研究47

4.1数据恢复原理47

4.2常见数据恢复工具48

4.3NTFS数据技术基础50

4.3.1基础概念50

4.3.1.1硬盘数据结构50

4.3.1.2硬盘分区方式51

4.3.1.3数据存储原理52

4.3.1.4系统启动流程53

4.3.2硬盘数据恢复方案分析54

4.4数据恢复技术实现57

4.5数据恢复经验介绍57

4.5.1几个常识性问题57

4.5.2技术来源57

4.5.3硬盘修复需要理解的基本概念58

4.6数据备份介绍60

第五章NTFS相关领域技术介绍61

5.1RH8下最简单编译NTFS模块的方法61

5.2Ubuntu下安全读写NTFS分区格式文件61

5.3在Fat32中读写NTFS分区的数据63

5.4DOS下访问NTFS63

第六章结论65

参考文献66

附录Ados下访问ntfs分区,查找指定文件的源代码67

附录BWindows下ntfs文件恢复源代码71

后记83

表目录

表格一2文件系统比较7

表格一1NTFS文件系统组织9

表格二1BPB参数15

表格二2NTFS的缺省簇的大小16

表格二3从头部开始的偏移长度描述30

表格二4常驻属性从头部开始的偏移描述30

表格二5非常驻属性从头部开始的偏移描述30

表格二6标准索引头的结构41

表格二7常用索引列表42

图目录

图表一1操作系统和文件系统支持表7

图表一2NTFS文件属性示意图10

图表二1RAID性能比较14

图表二2NTFS目录17

图表二3NTFS元文件18

图表二4MFT空间分配20

图表二5NTFSDBR结构21

图表二6NTFSBPB结构22

图表二7$MFT和DBR关系23

图表二8小文件和目录的MFT23

图表二9$MFT存储情况24

图表二10NTFS常用属性25

图表二11小文件示意图126

图表二12小文件示意图226

图表二13小文件的文件记录27

图表二14小目录的MFT记录27

图表二15存储在两个运行中的非常驻属性28

图表二16大目录的MFT记录28

图表二17非常驻数据属性的VCN28

图表二18非常驻数据属性的VCN-LCN映射29

图表二19$MFT文件记录头部结构32

图表二20标准属性头结构33

图表二21标准属性的属性结构33

图表二22文件属性的含义34

图表二23文件名属性头结构35

图表二24文件名属性结构35

图表二25标志含义图36

图表二26常见的命名空间36

图表二27数据流属性头结构37

图表二28位图属性头38

图表二29$MFT的结构示意图39

图表二30$Boot元文件属性40

图表二31$Boot元文件未命名数据流含义40

图表二32根目录文件索引41

图表二33索引项结构示意图42

图表二34EFS加密过程44

图表二35EFS解密过程45

摘要

随着以NT为内核的Windows2000/XP的普及,很多个人用户开始用到了NTFS。

因此NTFS受到了越来越多的重视。

本文主要介绍NTFS的基本概念,基于NTFS的文件基本操作,NTFS文件数据恢复,NTFS相关领域技术。

关键字:

NTFS,文件操作,数据恢复,Windows,DOS

第一章

NTFS介绍

NTFS(NewTechnologyFileSystem)是一个比FAT复杂的多的文件系统,微软WindowsNT内核的系列操作系统支持的、一个特别为网络和磁盘配额、文件加密等管理安全特性设计的磁盘格式。

1.1现状

随着以NT为内核的Windows2000/XP的普及,很多个人用户开始用到了NTFS。

NTFS也是以簇为单位来存储数据文件,但NTFS中簇的大小并不依赖于磁盘或分区的大小。

簇尺寸的缩小不但降低了磁盘空间的浪费,还减少了产生磁盘碎片的可能。

NTFS支持文件加密管理功能,可为用户提供更高层次的安全保证。

WindowsNT/2000/XP/2003以上的Windows版本能识别NTFS系统,Windows9x/Me以及DOS等操作系统都不能直接支持、识别NTFS格式的磁盘,访问NTFS文件系统时需要依靠特殊工具。

图表一1操作系统和文件系统支持表

下面对目前Windows常用的文件系统作一个比较:

表格一2文件系统比较

比较标准

NTFS5

NTFS

FAT32

FAT16

适用操作系统

Windows2000、XP

WindowsNT、2000、XP

Windows98、Me、2000、XP

DOS、Windows所有版本

磁盘管理限制

最大分区尺寸

2TB

2TB

理论上2TB

2GB

分区中做多文件数目

接近无限

接近无限

接近无限

小于65000

最大文件尺寸

决定于文件存放分区的尺寸

决定于文件存放分区的尺寸

4GB

2GB

最大簇数

几乎无限

几乎无限

268435456

65535

最大文件名长度

255个英文字符

255个英文字符

255个英文字符

8.3文件名标准,VFAT中为255个英文字符

文件系统特征

Unicode(统一代码)文件命名

由Unicode字符设定

由Unicode字符设定

由系统字符设定

由系统字符设定

系统记录镜像

MFT镜像文件

MFT镜像文件

FAT文件表的第二拷贝

FAT文件表的第二拷贝

引导扇区位置

第一和最后的扇区

第一和最后的扇区

第一扇区

第一扇区

文件属性

标准属性加自定义属性

标准属性加自定义属性

标准属性设定

标准属性设定

交替数据流支持

支持

支持

不支持

不支持

数据压缩支持

支持

支持

不支持

不支持

数据加密支持

支持

不支持

不支持

不支持

对象标识支持

支持

支持

不支持

不支持

磁盘配额支持

支持

不支持

不支持

不支持

稀疏文件支持

支持

不支持

不支持

不支持

重装入点支持

支持

不支持

不支持

不支持

卷装入点支持

支持

不支持

不支持

不支持

性能概述

安全性构造

支持

支持

不支持

不支持

可恢复性

支持

支持

不支持

不支持

性能

在大分区上(>500MB)性能很高但在有非常多小文件的小分区上性能较低

在大分区上(>500MB)性能很高但在有非常多小文件的小分区上性能较低

在小分区上(<500MB)性能较低

在小分区上(<256MB)性能最高

磁盘空间节约

最大

最大

一般

在大分区上最低

磁盘数据容错性

最大

最大

最低

一般

注意:

1、交替数据流、对象标识、稀疏文件、重装入点和卷装入点的概念非常复杂,而且和普通用户的应用关系不大,列出来只是为了对比特性,故不做进一步解释。

2、表中对大、小分区容量的界定只是一个理论值,实际的分界点要高一些。

Windows2000/XP提供了分区格式转换工具“Convert.exe”。

Convert.exe是Windows2000附带的一个DOS命令行程序,通过这个工具可以直接在不破坏FAT文件系统的前提下,将FAT转换为NTFS。

它的用法很简单,先在Windows2000环境下切换到DOS命令行窗口,在提示符下键入:

D:

\>convert需要转换的盘符/FS:

NTFS。

如系统E盘原来为FAT16/32,现在需要转换为NTFS,可使用如下格式:

D:

\>converte:

/FS:

NTFS。

所有的转换将在系统重新启动后完成。

NTFS支持磁盘数据加密,加密文件系统(EncrpytedFileSysetm,EFS)是NTFS支持的重要特性。

由于NTFS文件分区格式具有良好的安全性,如果你不希望自己在硬盘中的文件被其他人调用或查看,使用权限控制方式加密是非常有效的方法。

设置方法非常简单:

以系统管理员身份登录,使用鼠标右键单击需要加密的文件夹,选择“Properties”,切换到“Security”选项卡。

在“Groupofusernames”项中设置允许访问的用户只有Administrator和自己。

删除其他的所有用户。

保存设置退出即可。

此后,其他用户将不能访问该文件夹。

使用这项功能需要注意的是:

一定要保证只有你一个人知道Administrator密码,并且设置其他用户不能属于Administrator。

此外,你还可以详细的给每个用户设置权限,包括设置读取权限、写入权限、删除权限等,这样使用起来就更加灵活。

你还可以设置权限,控制一个磁盘,或者磁盘分区只为自己使用,这样其他人就不能看到你的任何东西了。

表格一1NTFS文件系统组织

分区引导扇区

MFT表

系统文件

文件区域

NTFS的索引非常详细,尽管很利于查找文件,但相当于小型数据库的索引方式对硬件有较高的硬件要求,而且对于较小的分区上存放较多小文件的情况而言,这种检索方式可能反而没有简单的链式快。

最常见的情况就是笔记本用户,特别是前两年,笔记本硬盘的速度很慢,硬盘容量又小,而笔记本的性能又普遍低于台式机很多,所以这种情况下如果采用NTFS分区就可能会感觉慢。

笔者个人认为,要想体现NTFS分区的性能优势,至少和FAT持平的话,电脑要有如下水准:

硬盘的转速最好为7200r/s,CPU主频不低于700MHz,内存不少于256MB,单个分区不小于5GB。

前两年有不少台式机都有某些指标不能达到这个水平,难怪有人抱怨NTFS不好了。

但就目前的硬件水平而言,NTFS的优势会越来越明显。

1.2NTFS特点

1.2.1优点

NTFS的四大优点:

1、具备错误预警的文件系统

  在NTFS分区中,最开始的16个扇区是分区引导扇区,其中保存着分区引导代码,接着就是主文件表(MasterFileTable,以下简称MFT),但如果它所在的磁盘扇区恰好出现损坏,NTFS文件系统会比较智能地将MFT换到硬盘的其他扇区,保证了文件系统的正常使用,也就是保证了Windows的正常运行。

而以前的FAT16和FAT32的FAT(文件分配表)则只能固定在分区引导扇区的后面,一旦遇到扇区损坏,那么整个文件系统就要瘫痪。

  但这种智能移动MFT的做法当然并非十全十美,如果分区引导代码中指向MFT的部分出现错误,那么NTFS文件系统便会不知道到哪里寻找MFT,从而会报告“磁盘没有格式化”这样的错误信息。

为了避免这样的问题发生,分区引导代码中会包含一段校验程序,专门负责侦错。

2、文件读取速度更高效!

  恐怕很多人都听说NTFS文件系统在安全性方面有很多新功能,但你可否知道:

NTFS在文件处理速度上也比FAT32大有提升呢?

对DOS略知一二的读者一定熟悉文件的各种属性:

只读、隐藏、系统等。

在NTFS文件系统中,这些属性都还存在,但有了很大不同。

在这里,一切东西都是一种属性,就连文件内容也是一种属性。

这些属性的列表不是固定的,可以随时增加,这也就是为什么你会在NTFS分区上看到文件有更多的属性,如下图所示:

图表一2NTFS文件属性示意图

NTFS文件系统中的文件属性可以分成两种:

常驻属性和非常驻属性,常驻属性直接保存在MFT中,像文件名和相关时间信息(例如创建时间、修改时间等)永远属于常驻属性,非常驻属性则保存在MFT之外,但会使用一种复杂的索引方式来进行指示。

如果文件或文件夹小于1500字节(其实我们的电脑中有相当多这样大小的文件或文件夹),那么它们的所有属性,包括内容都会常驻在MFT中,而MFT是Windows一启动就会载入到内存中的,这样当你查看这些文件或文件夹时,其实它们的内容早已在缓存中了,自然大大提高了文件和文件夹的访问速度。

  小提示!

  为什么FAT的效率不如NTFS高?

  FAT文件系统的文件分配表只能列出了每个文件的名称及起始簇,并没有说明这个文件是否存在,而需要通过其所在文件夹的记录来判断,而文件夹入口又包含在文件分配表的索引中。

因此在访问文件时,首先要读取文件分配表来确定文件已经存在,然后再次读取文件分配表找到文件的首簇,接着通过链式的检索找到文件所有的存放簇,最终确定后才可以访问。

3、磁盘自我修复功能

  NTFS利用一种“自我疗伤”的系统,可以对硬盘上的逻辑错误和物理错误进行自动侦测和修复。

在FAT16和FAT32时代,我们需要借助Scandisk这个程序来标记磁盘上的坏扇区,但当发现错误时,数据往往已经被写在了坏的扇区上了,损失已经造成。

NTFS文件系统则不然,每次读写时,它都会检查扇区正确与否。

当读取时发现错误,NTFS会报告这个错误;当向磁盘写文件时发现错误,NTFS将会十分智能地换一个完好位置存储数据,操作不会受到任何影响。

在这两种情况下,NTFS都会在坏扇区上作标记,以防今后被使用。

这种工作模式可以使磁盘错误可以较早地被发现,避免灾难性的事故发生。

4、“防灾赈灾”的事件日志功能

  在NTFS文件系统中,任何操作都可以被看成是一个“事件”。

比如将一个文件从C盘复制到D盘,整个复制过程就是一个事件。

事件日志一直监督着整个操作,当它在目标地——D盘发现了完整文件,就会记录下一个“已完成”的标记。

假如复制中途断电,事件日志中就不会记录“已完成”,NTFS可以在来电后重新完成刚才的事件。

事件日志的作用不在于它能挽回损失,而在于它监督所有事件,从而让系统永远知道完成了哪些任务,那些任务还没有完成,保证系统不会因为断电等突发事件发生紊乱,最大程度降低了破坏性。

5、附加功能

  其实,NTFS还提供了磁盘压缩、数据加密、磁盘配额(在“我的电脑”中右击分区并并行“属性”,进入“配额”选项卡即可设置)、动态磁盘管理等功能,这些功能在很多报刊杂志上介绍的比较多了,这里不再详细介绍。

  NTFS提供了为不同用户设置不同访问控制、隐私和安全管理功能。

如果你的系统处于一个单机环境,比如家用电脑,那么这些功能对你意义不是很大。

  小提示!

从FAT转换过来的NTFS,性能有折扣

如果分区是从FAT32转换为NTFS文件系统的(使用命令为“CONVERT驱动器盘符/FS:

NTFS”),不仅MFT会很容易出现磁盘碎片,更糟糕的是,磁盘碎片整理工具往往不能整理这各分区中的MFT,严重影响系统性能。

因此,建议将分区直接格式化为NTFS文件系统

1.2.2NTFS的不足

知道了FAT和NTFS的组织结构后,很容易理解正是因为不同的组织管理方式,导致了完全不同的文件操作方式,从而决定了最终的性能差异。

例如当访问一个文件时,由于FAT文件系统的文件分配表只列出了每个文件的名称及起始簇,并没有说明这个文件是否存在,而需要通过其所在文件夹的记录来判断,而文件夹的入口又包含在文件分配表的索引中。

因此首先要读取文件分配表来确定文件已经存在,然后再次读取文件分配表找到文件的首簇,最后通过链式的检索找到文件所有的存放簇,最终确定后才可以访问。

而在NTFS文件系统中,由于任意文件都在MFT中有详细的记录,所以只要读取MFT中的相关记录文件马上可以使用。

这就是NTFS在文件操作性能上要好于FAT的根本原因。

事实上,NTFS不断引入的新特性,如综合索引等,仍在进一步拉大这种差距。

从技术角度来说这个差距是巨大的,但为何有些人无法感觉到这种差异甚至有相反的感觉呢?

  

原因也很简单,绝大多数人的计算机应用环境简单,其磁盘操作主要是单文件的操作。

再加上很多人的硬盘远不够大,并发操作量也远不够多,因此NTFS与FAT的单个文件操作速度差异往往仅在毫秒之间.根本无法察觉,但如果是在大型的网络服务器上,访问量很多,文件操作频繁,还存在大量并发操作,这种性能差异就会相当惊人。

另一方面随着100GB以上容量的硬盘逐渐成为主流,再加上个人使用电脑同时执行多个任务的机会不断增加,这种差距也会越来越明显。

那么觉得NTFS文件系统更慢的原因是什么呢?

  

NTFS的索引非常详细,尽管很利于查找文件,但相当于小型数据库的索引方式对硬件有较高的硬件要求,而且对于较小的分区上存放较多小文件的情况而言,这种检索方式可能反而没有简单的链式快。

最常见的情况就是笔记本用户,特别是前两年,笔记本硬盘的速度很慢,硬盘容量又小,而笔记本的性能又普遍低于台式机很多,所以这种情况下如果采用NTFS分区就可能会感觉慢。

笔者个人认为,要想体现NTFS分区的性能优势,至少和FAT持平的话,电脑要有如下水准:

硬盘的转速最好为7200r/s,CPU主频不低于700MHz,内存不少于256MB,单个分区不小于5GB。

前两年有不少台式机都有某些指标不能达到这个水平,难怪有人抱怨NTFS不好了。

但就目前的硬件水平而言,NTFS的优势会越来越明显。

1.3NTFS未来

无论是FAT还是NTFS,用户访问某个文件都必须通过层次型的目录树结构到达其保存位置,如果不知道文件保存位置,那就只能使用操作系统的搜索功能了。

不知道你有没有想过:

我们需要的是文件,而不是它的位置,即然如此,为什么要我们必须记住这些“无用”的信息?

为解决这个问题,微软将在下一代操作系统中(内部代号Longhorn)中推出传说中的WinFS(windowsFutureStorage,windwos未来存储)服务,也就是被人们误以为是文件系统的那个东西。

事实上,NTFS将是“Longhorn”的唯一文件系统,WinFS服务可以看作是在NTFS的基础上增加了一个数据库层,这个数据库层以即将出现的SQLServer的“Yukon”版为基础。

对于WinFS来说,文件除了我们熟悉的属性,诸如文件名称、大小、日期外,还将通过诸如作者名、图像大小之类的元数据建立索引。

系统底层的目录结构仍将存在,但用户使用的将是一个相似文件构成的库(Library)。

每个库由一组通过查询WinFS数据库获得的文件构成。

如果WinFS确实能将查找文件的依据改变为它是什么,而不是它在哪里的话,无疑这将是基于NTFS文件系统的一个突破。

第二章

NTFS相关概念理论

2.1RAID简介

RAID(RedundentArrayofInexpensiveDisks)由美国加州伯克利分校的D.A.Patterson教授在1988年提出。

图表二1RAID性能比较

WindowsNT/2000XP/2003种的RAID5是一种软RAID。

2.2NTFS文件系统分区

2.2.1基本分区

 

2.2.2动态分区

 

2.3NTFS参数结构介绍

本节主要介绍NTFS的参数概念。

2.3.1NTFS的DBR

NTFS的DBR和FAT32的DBR作用相同,由MBR得到DBR,再由DBR引导操作系统。

在WindowsNT/2000/XP/2003上,由DBR调入NTLDR,由NTLDR启动操作系统。

 NTFS的引导扇区完成引导和定义分区参数。

FAT分区中,即使文件不正确,而BOOT记录正常,分区会显示没有错误。

和FAT分区不同,而NTFS分区的BOOT记录不是分区正确与否的充分条件。

因为必须MFT中的系统记录(如$MFT等)正常,该分区才能正常访问。

NTFS的BPB参数如下表所示:

        

表格二1BPB参数

字节偏移

长度

常用值

意义

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字节

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

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

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 小学教育 > 数学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1