问题描述:
重装系统时,有两种方法格式系统盘,用FAT NTFS呢?它们各有什么区别?
解析:
还是用FAT吧。用NTFS可能会出现意料之外的麻烦
在FAT与NTFS之间做出选择
如果您刚刚开始接触Windows NT,那么,您可能对NTFS文件系统的复杂结构还不甚了解。正如您所耳闻的那样,FAT文件系统与NTFS文件系统分别适用于不同的应用环境。在这篇文章中,我们将就这两种文件系统的不同之处展开讨论,并解释如何获取它们各自所提供的最大优势。
何谓FAT?
作为一种文件系统名称,FAT听起来似乎有些陌生,然而,它实际上正是文件分配表的英文缩写。自1981年首次问世以来,FAT已经成为一个历经沧桑的计算机术语。由于时代原因,包括Windows NT、Window 98、MacOS以及多种UNIX版本在内的大多数 *** 作系统均对FAT提供支持。
FAT文件系统限制使用8.3格式的文件命名规范,这就是说,在一个文件名中,句点之前部分的最大长度为8个字符,句点之后部分的最大长度为3个字符。FAT文件系统中的文件名必须以字母或数字开头,并且不得包含空格。此外,FAT文件名不区分大小写字母。
何谓VFAT?
您或许还曾听说过一种称作VFAT的文件系统。作为FAT文件系统的一种扩展,VFAT在Windows 95中首次引入。VFAT在保持针对FAT向后兼容能力的同时,大大放宽了各项规范。举例来说,VFAT文件名中最多可以包含255个字符,并且允许使用空格或多个句点。尽管VFAT能够保持文件名的大小写状态,然而它同样无法对其加以区分。
当您通过VFAT创建一个长文件名(长度超过8.3)时,文件系统实际上同时创建了两个文件名。其中一个为实际输入的长文件名,这个文件名对于Windows 95、Windows 98和Windows NT(4.0及更高版本)是可见的。另一个文件名为DOS下所使用的别名,该文件名为长文件名的缩写。这个DOS别名由长文件名中的前六个字符(不包含空格)、代字符(~)以及数字后缀所组成。
VFAT文件系统存储长文件名的方式产生了一个有趣的副作用。当您在VFAT文件系统中创建一个长文件名时,VFAT将为DOS别名分配一个目录项,为长文件名中的每13个字符分配一个目录项。从理论上讲,一个长文件名最多可以占用21个目录项。一般情况下,根目录中最多可以包含512个文件,然而,如果在根目录中使用最大长度的文件名,那么,上述限制条件将缩小的最多包含24个文件。由此可见,应当尽可能避免在根目录中使用长文件名。除根目录外,其它目录均不受这一制约因素的限制。
我们之所以在这里对VFAT进行讨论,主要是因为这种文件系统的应用范围比FAT更加广泛。除以上所提到的不同之处外,这两种文件系统在其它方面遵守相同的规范。当您在Windows NT中使用FAT对某一分区进行格式化时,该分区实际将被格式化为VFAT。在Windows NT 4.0系统环境下,您唯一可能接触真正FAT分区的方式便是使用由其它 *** 作系统(如MS-DOS)完成格式化的分区。
何谓NTFS?
为弥补FAT在功能上的缺陷,Microsoft创建了一种称作NTFS的新型文件系统技术。NTFS所提供的新增特性包括容错性和增强安全性等等。目前,您可能对以上所介绍的这些文件系统知之甚少,没有关系,接下来,我们将从各种不同角度就其各自的性能加以对比。
兼容性
在确定某一分区所需使用的文件系统类型前,您必须首先考虑兼容性问题。如果多种 *** 作系统都将对该分区进行访问,那么,您必须使用一种所有 *** 作系统均可读取的文件系统。通常情况下,具备普遍兼容性的FAT文件系统可以胜任这种要求。相比之下,只有Windows NT能够支持NTFS分区。
需要说明的是,这种限制条件仅适用于本地计算机。举例来说,如果一台计算机上同时安装了Windows NT与Windows 98两种 *** 作系统,并且这两种 *** 作系统都需要对同一个分区进行访问,那么,您必须通过FAT方式对该分区进行格式化。与此相反,如果这台计算机上只安装了Windows NT一种 *** 作系统,那么,您可以将该分区格式化为NTFS,此时,运行其它 *** 作系统的计算机仍可通过网络方式对该分区进行访问。
卷容量
另一项决定因素为分区物理容量。FAT最大支持2 GB分区容量。如果分区容量超过2 GB,您必须通过NTFS方式对其进行格式化,或者将其拆分为多个容量较小的分区。需要注意的是,NTFS本身所需耗费的资源多于FAT。如果您所使用的分区容量小于200 MB,那么,您应当选择FAT文件系统以避免NTFS文件系统自身占用过多磁盘空间。NTFS分区的最大容量为16 EB(千兆兆字节--一千兆兆字节等于2^64字节或1024千兆字节)。
容错性
在妥善考虑分区容量与兼容性问题后,您便可以根据自身需要灵活选取最为合适的文件系统类型。在做出这一决定时,您应当考虑容错性问题。Windows NT能够通过软件方式对几种用以提高访问速度并/或实现容错性的交替磁盘访问方式提供支持。其中包括普通磁盘带区以及具备奇偶校验功能的磁盘带区。这类访问方式通常需要NTFS文件系统为其提供支持。如果您计划使用基于硬件实现方式的带区集,那么,您可以随意选择文件系统类型。
即便不考虑这些高级容错选项,NTFS自身仍旧包含了远远优于FAT的内建容错功能。举例来说,当NTFS将更改内容写入磁盘时,它将自动在相应日志文件中对更改内容加以记录。在出现电源故障或磁盘错误时,Windows NT可以使用这些日志文件对您的数据进行修复。
NTFS还可在不显示错误消息的情况下自动修复硬盘错误。当Windows NT向NTFS分区中写入文件时,它将在内存中为该文件保留一个备份。当写入 *** 作完成后,Windows NT将再次读区该文件以验证其是否与内存中所存储的备份相匹配。如果两份拷贝内容不一致,Windows NT将把硬盘上的相应区域标记为受损并不再使用这一区域。此后,它将使用存储在内存中的文件拷贝在硬盘的其它位置上重新写入文件。
FAT文件系统未提供任何安全保护特性。FAT所采取的唯一保护措施便是同时维护文件分配表的两份拷贝,如果其中一份拷贝遭到破坏,它将自动使用另一份拷贝对其进行修复。然而,这一功能必须通过诸如Scandisk之类的实用工具方可实现。
安全性
正如前面所提到的那样,NTFS拥有一套内建安全机制。您可以为目录或单个文件设置不同权限。这些权限可以在本地及远程对文件与目录加以保护。举例来说,如果某人坐到您的PC前并尝试使用受限文件,那么,NTFS将对这些文件予以保护。
如果您正在使用FAT文件系统,那么,安全特性将通过共享权限加以实现。共享权限将通过网络对文件予以保护,该特性无法提供本地保护措施。试图访问受限文件的用户只需坐到本地计算机前便可获取完整文件访问权限。共享权限的另一项不足之处在于管理混乱。假设您拥有一台包含几百名用户的服务器,而每名用户又拥有自己的目录。为对其进行管理,您可能需要同时维护数以百计的共享权限--这些共享权限可能相互重叠,从而导致更大的复杂性。
文件压缩
NTFS的另一项优势在于针对文件压缩功能的内建支持能力。与前辈技术相比,NTFS所提供的压缩功能更为出色。这项功能使您能够对选定文件或文件夹进行压缩。由于此项功能以文件为单位进行压缩,因此,局部硬盘故障不会破坏整个压缩方案并导致数据丢失。此外,对单独文件或文件夹执行压缩还允许您仅对不经常使用的文件进行压缩。通过这种方式,您可以在不降低 *** 作系统运行速度的情况下在每次执行文件访问 *** 作时对其进行解压。
系统分区
您可能会认为本文在向您传达这样一种观点,即NTFS远远胜过FAT,除非分区容量较小或需要与其他 *** 作系统实现兼容,否则,您就应当使用NTFS。然而,实际情况并非如此。
正如我们在前面所提到的那样,NTFS分区仅能通过Windows NT进行访问。如果您的Windows NT *** 作系统发生致命错误,您将无法简单的通过系统盘引导至命令行方式并修复NTFS分区上所出现的问题。为避免出现这种问题,Microsoft建议您在硬盘上安装第二套Windows NT *** 作系统,并通过这套 *** 作系统来修复NTFS分区上所出现的问题。
令人遗憾的是,这种方法存在某些严重缺陷。首先,根据您在安装过程中所设置的选项,第二套 *** 作系统可能需要耗费150 MB左右硬盘空间。其次,在系统引导过程中,这两套 *** 作系统将共享相同的文件。因此,如果您的系统分区(用以引导PC的分区)采用NTFS格式并且出现问题,那么,您可能无法启动任意一套Windows NT *** 作系统并修复问题。尽管系统分区出现错误的几率微乎其微,但当您对磁盘分区进行修改时,很多情况下都需要手工更新Boot.ini文件。如果您在这种更新过程中执行了错误 *** 作,那么,Windows NT将无法正常启动。此时,由于初始引导文件位于系统分区上,因此,所有安装在系统中的Windows NT都将无法共享这一文件。
一种较为理想的解决方案是将您的系统分区格式化为FAT文件系统。如果您对系统安全性的要求不高,那么,请为系统分区指定较小的分区容量并且不在该分区上存放除Windows NT系统文件以外的任何内容。请记住,除非未经授权的用户能够通过物理方式对您的计算机进行访问,否则,FAT文件系统在安全性方面还是完全值得信赖的。
参考文件
FAT32文件系统有几个基本的几个概念:
先拿一个真实的4G SD卡分析数据:
使用winhex物理方式查看,截一部分图:
全称Master Boot Record,即主引导记录。
主引导记录分为两个部分,一个部分是前446字节,另外一个部分是后64字节。
前446个字节,一般取值为0,不过有的时候也会有其他的设置值。
这部分也叫DPT,全称Disk Partition Table,即磁盘分区表。
磁盘分区表有4个区,每个区有16字节,总体是64字节。因此,MBR字节数为512字节,刚好是一个扇区的数量。
DPT的4个部分,每一个部分的16字节含义如下表:
00 82 03 00 0B E6 DC CA 00 20 00 00 00 E0 ED 00(16进制)
这里,就贴出来上面截图的数据内容。(我们使用的是小字节序)
0x00 :
通常的取值。
0x82:
开始磁头。
0x03 0x00 :
实际为0x0003,按照2进制编码为0000 0000 0000 0011。
那么开始扇区为:0。
开始柱面为:3。
0x0B :
分区类型,为Win95 FAT32类型。
0xE6 :
结束磁头为230。
0xDC 0xCA:
实际为0xCADC,按照2进制编码为1101 1100 1100 1010。
那么结束扇区为:55。
结束柱面为:220。
0x00 0x20 0x00 0x00 :
实际为:0x00002000,也就是8192,为分区的开始扇区地址。那么我们后面就可以从这里去找DBR。
0x00 0xE0 0xED 0x00 :
实际为:0x00EDE000,也就是15589376,为分区的总扇区数。
从这里其实可以算出SD卡的容量。
也就是:
分区大小:15589376x512 = 7981760512。这个值大约是7.612G。
从物理0地址到起始地址:8192*512 = 4194304
那么总容量为:7981760512+4194304 = 7985954816。
该部分包括一个叫BPB的内容。
先截出DBR部分的实际SD卡上的内容:
在WinHex下使用逻辑磁盘打开FAT32文件系统的存储介质来看,偏移位置与表示的含义有如下表所示:
25字节的分区块(BPB):
扩展分区BPB:
按照定义,将实际的图 MBR.png分析如下:
从偏移为0x0BH地址开始:
00 02 10 96 04 02 00 00 00 00 F8 00 00 3F 00 FF 00 00 20 00 00 00 E0 ED 00 B5 1D 00 00
00 02 :
即0x0200,表示扇区字节数,也就是512字节。
10:
即0x10,每簇扇区数为16。也就是16 512=8 1024=8K。
96 04:
即0x0496,保留扇区数为1174。
02:
即0x02,FAT表份数为2。
00 00:
即0x0000,为保留。
00 00:
即0x0000,为保留。
F8:
即为本地硬盘。
00 00:
即0x0000,为保留。
3F 00:
即0x003F,即每磁道扇区数为63。
FF 00:
即0x00FF,即磁头数为255。
00 20 00 00:
即0x00002000,即隐藏扇区数为8192。
00 E0 ED 00:
即0x00EDE000,即磁盘总扇区数为15589376。
B5 1D 00 00 :
即0x001DB5,即FAT表占用扇区数为7605。
好了,根据这些内容,可以计算出两个参数:
FAT1的开始扇区 = 分区开始扇区+ 保留扇区=8192+1174 = 9366。
FAT2的开始扇区 = FAT1的开始扇区+FAT表占用的大小 = 9366 + 7605 = 16971。
首目录簇 = FAT1的开始扇区+FAT的表份数 x FAT表占用的大小=9366+2*7605 = 24576。
继续追踪,找到首目录簇中的已经新建的文件。
现在,先解析粘贴出来的每个部分的内容的含义。
具体内容下面的FAT中会说。
a.txt部分的解析:
41 20 20 20 20 20 20 20 54 58 54 20 18 8B 2A 90
96 4A A1 4A 00 00 0F 8C A1 4A 03 00 10 00 00 00
41 20 20 20 20 20 20 20:
表示文件名:“A TXT”
20 :
表示的是文件的属性。归档。
18:
为系统保留。
8B:
创建时间的10ms位。也就是1390ms。
2A 90:
也就是0x902A,换成2进制为1001 0000 0010 1010 。表示的是创建时间。
细分如下:
则时间值为:
时:0x12 = 18,
分:0x1 = 1,
秒:0xAx 2s + 1390ms= 10x 2s + (1390ms) = 21s,
所以创建时间为18:01:21。
96 4A:
也就是0x4A96,换成2进制为0100 1010 1001 0110,表示的是创建日期。
细分如下:
则日期值为:
年:1980+0x25 = 2017,
月:0x4 = 4,
日:0x16= 22,
所以,创建日期为2017年4月22日。
A1 4A:
也就是0x4AA1,换成2进制为0100 1010 1010 0001,表示的是最后访问日期。
则日期为:
年:1980+0x25 = 2017,
月:0x5 = 5,
日:0x1= 1,
所以,最后访问日期为2017年5月1日。
00 00:
起始簇高16位。
0F 8C:
也就是0x8C0F,换成2进制为1000 1100 0000 1111,表示的是最近修改时间。
时:0x11 = 17,
分:0x20 = 32,
秒:0xf x 2 = 30s,
所以最近修改时间为17:32:30。
A1 4A:
也就是0x4AA1,换成2进制为0100 1010 1010 0001,表示的是最近修改日期。
则日期为:
年:1980+0x25 = 2017,
月:0x5 = 5,
日:0x1= 1,
所以,最近修改日期为2017年5月1日。
03 00:
即0x0003,表示起始簇低16位,也就是说,起始簇高位与起始簇低位相或,得到0x00000003,起始簇为3。
10 00 00 00:
即0x00000010,表示文件数据长度,也就是16字节。
分析完a.txt,b.txt也一样分析即可。
从而可以得到的是,a.txt的内容位置在:(3-2)*16+24576 = 24592上。
后使用winhex进行验证,确认是正确的。
文件分配表(FAT),是FAT文件系统中用于磁盘数据索引和定位而引进的一种链式结构。在FAT文件系统中,文件的存储依照FAT表制定的簇链式数据结构来进行。同时,FAT文件系统将组织数据时使用的目录也抽象为文件,以简化对数据的管理。
如DBR所述,偏移0EH处存储了保留扇区的个数,而保留扇区数指的就是当前分区内DBR到FAT表之间的所有扇区的个数(包括DBR但不包括FAT表)。据此,可以定位FAT表所在的起始偏移位置了。
如DBR所述,偏移24H处存储了保留扇区的个数,知道FAT2是紧邻FAT1的。那么FAT2表的位置为:FAT1的起始偏移地址+FAT1的大小。
FAT表由一系列大小相等的FAT表项组成,它有如下特性:
在FAT32文件系统中,根目录的位置不再硬性地固定,可以存储在分区内可寻址的任意簇内,不过通常根目录是最早建立的(格式化就生成了)目录表。所以,我们看到的情况基本上都是根目录首簇紧邻FAT2,占簇区顺序上的第1个簇(即2号簇)。同时,FAT32文件系统将根目录当做普通的数据文件来看,所有没有了目录项数的限制,在需要的时候可以分配空簇,存储更多的目录项。
对于短文件名格式的目录项:
注意:*表示此字段在段文件目录项中,不可取值0FH。若取值为0FH,目录段为长文件名目录段。
0BH字段取值如下:
FAT32的一个重要的特点是完全支持长文件名。长文件名依然是记录在目录项中的。为了低版本的OS或程序能正确读取长文件名文件,系统自动为所有长文件名文件创建了一个对应的短文件名,使对应数据既可以用长文件名寻址,也可以用短文件名寻址。不支持长文件名的OS或程序会忽略它认为不合法的长文件名字段,而支持长文件名的OS或程序则会以长文件名为显式项来记录和编辑,并隐藏起短文件名。
长文件名的实现有赖于目录项第12字节属性字节,当此字节的值为0FH时,支持长文件名的系统会将其当做长文件名的依据,而只支持短文件名的系统会认为是异常而忽略掉。系统将长文件名以13个字符为单位进行切割,每一组占据一个目录项。所以可能一个文件需要多个目录项,这时长文件名的各个目录项按倒序排列在目录表中,以防与其他文件名混淆。
长文件名中的字符采用unicode形式编码,每个字符占据2字节的空间。其目录项定义如:
FAT32,NTFS都是硬盘分区格式的类型。
FAT32
FAT32指的是文件分配表是采用32位二进制数记录管理的磁盘文件管理方式,因FAT类文件系统的核心是文件分配表,命名由此得来,FAT32只能支持32GB分区,单个文件也只能支持最大4GB。
NTFS
NTFS分区是New Technology File System的缩写,为Windows NT 系列所设计,被用来代替File Allocation Table(FAT)文件系统。
NTFS 提供长文件名、数据保护和恢复,并通过目录和文件许可实现安全性。NTFS 支持大硬盘和在多个硬盘上存储文件(称为卷)。NTFS可以支持的分区(如果采用动态磁盘则称为卷)大小可以达到2TB。
扩展资料
FAT32和NTFS的区别
1、磁盘分区容量区别
NTFS可以支持的分区(如果采用动态磁盘则称为卷)大小可以达到2TB(2048GB),而FAT32支持分区的大小最大为32GB。
2、单个文件容量区别
FAT32在实际运行中不支持单个文件大于4GB的文件,一旦超过容量限制那么系统就会提示磁盘空间不足。NTFS就目前来说已经突破了单个文件4GB的容量限制,目前来说似乎没容量限制,只要硬盘空间容量有多大,那么就NTFS就可以分到多大。
3、安全方面区别
FAT32文件安全设置:不支持;NTFS文件安全设置:支持。
参考资料来源:百度百科-FAT32
参考资料来源:百度百科=NTFS
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)