细说FAT16与FAT32区别

 更新时间:2007年03月11日 00:00:00   作者:  
在说明FAT文件系统之前,我们必须清楚FAT是什么?FAT(File Allocation Table)是“文件分配表”的意思。顾名思义,就是用来记录文件所在位置的表格,它对于硬盘的使用是非常重要的,假若丢失文件分配表,那么硬盘上的数据就会因无法定位而不能使用了。不同的操作系统所使用的文件系统不尽相同,在个人计算机上常用的操作系统中,MS-DOS 6.x及以下版本使用FAT16;OS/2使用HPFS;Windows NT则使用NTFS;而MS-DOS 7.10及ROM-DOS 7.10同时提供了FAT16及FAT32供用户选用。其中我们接触最多的是FAT16、FAT32文件系统。
一、FAT16文件系统 
    FAT16使用了16位的空间来表示每个扇区(Sector)配置文件的情形,故称之为FAT16。 
    FAT16由于受到先天的限制,因此每超过一定容量的分区之后,它所使用的簇(Cluster)大小就必须扩增,以适应更大的磁盘空间。所谓簇就是磁盘空间的配置单位,就象图书馆内一格一格的书架一样。每个要存到磁盘的文件都必须配置足够数量的簇,才能存放到磁盘中。FAT16各分区与簇大小的关系如下表: 
分区大小      FAT16簇大小 
16MB-127MB    2KB 
128MB-255MB   4KB 
256MB-511MB   8KB 
512MB-1023MB  16KB 
1024MB-2047MB 32KB 
    如果你在一个1000MB的分区中存放50KB的文件,由于该分区簇的大小为16KB,因此它要用到4个簇才行。而如果是一个1KB的文件,它也必须使用一个簇来存放。那么每个簇中剩下的空间可否拿来使用呢?答案是不行的,所以在使用磁盘时,无形中都会或多或少损失一些磁盘空间。 
由上可知,FAT16文件系统有两个最大的缺点: 
(1)磁盘分区最大只能到2GB。当前只要你添购计算机的话,想必其中的硬盘大小必定至少有2GB,而3.2GB、4.3GB以上的硬盘比比皆是,且物美价廉。FAT16文件系统已不能适应当前这种大容量的硬盘,必须被迫分区成几个磁盘空间。而分区磁盘的大小又牵扯出簇的问题来,可谓影响颇大。 
(2)使用簇的大小不恰当。试想,如果一个只有1KB大小的文件放置在一个1000MB的磁盘分区中,它所占的空间并不是1KB,而是16KB,足足浪费了15KB!当前流行的HTML文件,其大小几乎多为1KB、2KB,而制作一个网站往往用到数十个HTML文件。如果你的硬盘中有100个这种小文件的话,你浪费的磁盘空间可从700KB(511MB的分区),到3.1MB(2047MB的分区)。 
    以上这两个问题常常使得用户在“分多大的分区,才能节省空间,同时又可使硬盘的使用更加方便有效”的抉择中徘徊不定。
二、FAT32文件系统 
    为了解决FAT16存在的问题,开发出FAT32系统。FAT32使用了32位的空间来表示每个扇区(Sector)配置文件的情形。利用FAT32所能使用的单个分区,最大可达到2TB(2048GB),而且各种大小的分区所能用到的簇的大小,也是恰如其分,上述两大优点,造就了硬盘使用上更有效率。现将与分区与簇的大小汇整如下,我们可仔细做个比较: 
分区大小      FAT16簇大小 FAT32簇大小
16MB-32MB     2KB         不支持
32MB-127MB    2KB         512bytes
128MB-255MB   4KB         512bytes 
256MB-259MB   8KB         512bytes 
260MB-511MB   8KB         4KB 
512MB-1023MB  16KB        4KB 
1024MB-2047MB 32KB        4KB 
2048MB-8GB    不支持      4KB 
8GB-16GB      不支持      8KB 
16GB-32GB     不支持      16KB 
32GB以上      不支持      32KB 
    以当前硬件所能支持的情况下,如将8GB硬盘划分为单个分区的话,使用的簇的大小也只有4KB,比起以往的FAT16来说,真是节省了许多空间。
三、FAT32使用上的限制 
    看到这些优点,你一定迫不及待地想将FAT16转换为FAT32。不过在转换之前,要注意下面几点: 
(1)与其他的PC操作系统不兼容。当前支持FAT32的操作系统仅有MS-DOS 7.10、ROM-DOS 7.10、FreeDOS和Windows 2000以上版本,而其他操作系统则根本不能读取FAT32的分区。例如你以MS-DOS 6.x等旧版本的DOS启动盘开机的话,你硬盘中的FAT32分区就会凭空消失,完全看不到这个分区。另外,如果你要使用多重开机来启动多种不同的操作系统,建议你不要将C:这个分区改为FAT32。因为有一些操作系统会强迫一定要从C:这个主要分区来安装、开机,如果你将C:改为FAT32,而该操作系统不认FAT32,那就不能开机了。 
(2)有些磁盘工具、防毒软件还不认得FAT32,可能会造成转换后,磁盘工具软件不能对FAT32的分区进行磁盘处理工作,而防毒软件会不认得这种文件系统,误判为中毒现象。 
(3)一些版本较旧的软件不能在FAT32的分区中执行,例如Office 95等。 
(4)小于512MB的分区一般不让转换为FAT32。虽说我们从前面的列表中发现小于512MB的分区只使用512Bytes大小的簇,但是在Windows 98中,你只能转换512MB以上的分区。如果想转换32MB到512MB这间的分区,必须使用CVT.EXE中的/MIN命令,如CVT D: /CVT32 /MIN,或FDISK /FPRMT。
(5)不能在FAT32分区中做磁盘压缩,即使使用Windows 98中的磁盘压缩也是行不通的。 
(6)如果你主板的BIOS支持"suspend-to-disk"的功能,那么请将这项功能关闭,因为在FAT32分区中是不能使用的。 
(7)Windows 98所提供的转换工具只能将FAT16转换为FAT32,并不能再从FAT32转换回FAT16。要转换回来只有:重新进行分区(Partition)、格式化(Format),然后重新安装系统、应用软件等。 
    要从FAT32转换回FAT16,还可以借助一项工具:PowerQuest的Partition Magic 3.0或以上版本。这是一套能让你自由改变分区大小、文件系统,而毫不损坏磁盘数据的一套软件。你可以利用这套软件将FAT32转换为FAT16,而不必重新格式化你心爱的硬盘。如果你没有该软件,那么要有“准备后悔”的念头,请在FAT16转换FAT32前先做好备份。同时我们提醒大家,如果您的计算机配置不是很高(即不是PⅡ或同一级别的CPU),最好不要将分区表转换成FAT32,因为这样会影响硬盘读取速度的。

相关文章

  • 批处理for命令使用指南

    批处理for命令使用指南

    本文由浅入深,为大家专门讲解for的用法,希望大家喜欢。 首先应该明确的是,for不是一个简单的命令,它的用法比较复杂,它还可以带四个参数(/L /D /R /F),其中:/L和/F参数是最经常用到的。当然,它本身也可以不带参数,下面我们通过具体的例子来讲解for的运用。
    2015-09-09
  • 批处理bat标准化获取当前系统日期的几种方法

    批处理bat标准化获取当前系统日期的几种方法

    这篇文章主要介绍了批处理bat标准化获取当前系统日期的几种方法,需要的朋友可以参考下
    2014-07-07
  • 为cmd设置密码的批处理

    为cmd设置密码的批处理

    大家都知道,微软的溢出漏洞真是一箩筐,而溢出自然就是要拿到CMD权限,但是如果我们的CMD要密码的话……今天就给大家教CMD的防范方法。
    2009-05-05
  • 写了个批量替换字符串的bat批处理(replaceChar.bat)

    写了个批量替换字符串的bat批处理(replaceChar.bat)

    鉴于dos知识有限,还没找到好的办法来避免这两种状况。如果用shell脚本完成替换功能就简单多了。或者直接用ultraedit的替换功能更简单
    2017-04-04
  • IP地址自动设置的批处理代码分享

    IP地址自动设置的批处理代码分享

    批处理(Batch),也称为批处理脚本。顾名思义,批处理就是对某对象进行批量的处理,通常被认为是一种简化的脚本语言,它应用于DOS和Windows系统中。
    2019-02-02
  • DOS批处理中%cd%和%~dp0的异同分析

    DOS批处理中%cd%和%~dp0的异同分析

    在DOS的批处理中,有时候需要知道当前的路径。在DOS中,有两个环境变量可以跟当前路径有关,一个是%cd%, 一个是%~dp0。这两个变量的用法和代表的内容是不同的
    2012-06-06
  • 使用forfiles命令批量删除N天前文件

    使用forfiles命令批量删除N天前文件

    这篇文章主要介绍了使用forfiles命令批量删除N天前文件,因为最近备份的文件都是保存一个月的就可以了,所以就需要删除30天以前的文件,服务器上软件不太信任,用bat挺方便的,需要的朋友可以参考下
    2016-11-11
  • 批处理维护工具菜单实现

    批处理维护工具菜单实现

    非常不错的批处理流程控制,大家可以学习一下编写批处理根绝用户输入的思路。
    2009-05-05
  • 批处理读取注册表中run下面的值的代码

    批处理读取注册表中run下面的值的代码

    这个批处理可以获取注册表中run下面的值,其实就是列出系统启用的程序路径,大家可以在这个基础上增加功能了。
    2009-05-05
  • windows常用网络命令使用脚本分享

    windows常用网络命令使用脚本分享

    这篇文章主要介绍了windows常用网络命令使用脚本,包括查看本地网卡接口信息、查看路由、表添加路由、跟踪路由等命令,需要的朋友可以参考下
    2014-04-04

最新评论