这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 综合技术 » 基础知识 » fat32_fat32文件系统

共4条 1/1 1 跳转至

fat32_fat32文件系统

高工
2014-06-12 10:31:24     打赏

FAT32定义

FAT32是Windows系统硬盘分区格式的一种。这种格式采用32位的文件分配表,使其对磁盘的管理能力大大增强,突破了FAT16对每一个分区的容量只有2 GB的限制。由于现在的硬盘生产成本下降,其容量越来越大,运用FAT32的分区格式后,我们可以将一个大硬盘定义成一个分区而不必分为几个分区使用,大大方便了对磁盘的管理。目前已被性能更优异的NTFS分区格式所取代。

FAT32概述

性能特点

  FAT32具有一个最大的优点:在一个不超过8GB 的分区中,FAT32分区格式的每个簇容量都固定为4KB,与FAT16相比,可以大大地减少磁盘的浪费,提高磁盘利用率。目前,支持这一磁盘分区格式的操作系统有Win95、Win98、Win2000、Win2003和Win7。但是,这种分区格式也有它的缺点,首先是采用FAT32格式分区的磁盘,由于文件分配表的扩大,运行速度比采用FAT16格式分区的磁盘要慢。

约束

  windows 2000和windows XP能够读写任何大小的FAT32文件系统,但是这些平台上的格式化程序只能创建最大32GB的FAT32文件系统。

  在dos系统下可直接访问fat32分区,而ntfs分区则不能在dos下直接访问。

缺点

  但FAT有一个严重的缺点:当文件删除后写入新资料,FAT不会将档案整理成完整片段再写入,长期使用后会使档案资料变得逐渐分散,而减慢了读写速度。硬盘碎片整理是一种解决方法,但必须经常整理来保持FAT文件系统的效率。

主磁盘结构

主启动区 文件 分配表 #1 文件 分配表 #2 根目录 其他所有资料...剩下磁盘空间

  一个FAT文件系统包括四个不同的部分。

1、保留扇区

  位于最开始的位置。第一个保留扇区是引导区(分区启动记录)。它包括一个称为基本输入输出参数块的区域(包括一些基本的文件系统信息尤其是它的类型和其它指向其它扇区的指针),通常包括操作系统的启动调用代码。保留扇区的总数记录在引导扇区中的一个参数中。引导扇区中的重要信息可以被DOS和OS/2中称为驱动器参数块的操作系统结构访问。

2、FAT区域

  它包含有两份文件分配表,这是出于系统冗馀考虑,尽管它很少使用,即使是磁盘修复工具也很少使用它。它是分区信息的映射表,指示簇是如何存储的。

3、根目录区域

  它是在根目录中存储文件和目录信息的目录表。在FAT32下它可以存在分区中的任何位置,但是在早期的版本中它永远紧随FAT区域之后。

4、数据区域

  这是实际的文件和目录数据存储的区域,它占据了分区的绝大部分。通过简单地在FAT中添加文件链接的个数可以任意增加文件大小和子目录个数(只要有空簇存在)。然而需要注意的是每个簇只能被一个文件占有,这样的话如果在32KB大小的簇中有一个1KB大小的文件,那么31KB的空间就浪费掉了。

启动扇区

格式如下

  偏移(字节) 长度(字节) 说明

  0x00 3 跳转指令(跳过开头一段区域)

  0x03 8 OEM名称(空格补齐)。MS-DOS检查这个区域以确定使用启动记录中的哪一部分数据。常见值是IBM 3.3(在“IBM”和“3.3”之间有两个空格)和MSDOS5.0.

  0x0b 2 每个扇区的字节数。基本输入输出系统参数块从这里开始。

  0x0d 1 每簇扇区数

  0x0e 2 保留扇区数(包括启动扇区)

  0x10 1 文件分配表数目

  0x11 2 最大根目录条目个数

  0x13 2 总扇区数(如果是0,就使用偏移0x20处的4字节值)

  0x15 1 介质描述 0xF8 单面、每面80磁道、每磁道9扇区

  0xF9 双面、每面80磁道、每磁道9扇区

  0xFA 单面、每面80磁道、每磁道8扇区

  0xFB 双面、每面80磁道、每磁道8扇区

  0xFC 单面、每面40磁道、每磁道9扇区

  0xFD 双面、每面40磁道、每磁道9扇区

  0xFE 单面、每面40磁道、每磁道8扇区

  0xFF 双面、每面40磁道、每磁道8扇区

  同样的介质描述必须在重复复制到每份FAT的第一个字节。有些操作系统(MSX-DOS 1.0版)全部忽略启动扇区参数,而仅仅使用FAT的第一个字节的介质描述确定文件系统参数。

  0x16 2 每个文件分配表的扇区(FAT16)

  0x18 2 每磁道的扇区

  0x1a 2 磁头数

  0x1c 4 隐藏扇区

  0x20 4 总扇区数(如果超过65535,参见偏移0x13)

  0x24 4 每个文件分配表的扇区(FAT32)。扩展基本输入输出系统参数块从这里开始。

  0x24 1 物理驱动器个数(FAT16)

  0x25 1 当前磁头(FAT16)

  0x26 1 签名(FAT16)

  0x27 4 ID (FAT16)

  0x28 2 Flags (FAT32)

  0x2a 2 版本号 (FAT32)

  0x2c 4 根目录启始簇 (FAT32)

  0x2b 11 卷标(非FAT32)

  0x30 2 FSInfo 扇区 (FAT32)

  0x32 2 启动扇区备份 (FAT32)

  0x34 12 保留未使用 (FAT32)

  0x36 8 FAT文件系统类型(如FAT、FAT12、FAT16)

  0x3e 2 操作系统自引导代码

  0x40 1 BIOS设备代号 (FAT32)

  0x41 1 未使用 (FAT32)

  0x42 1 标记 (FAT32)

  0x43 4 卷序号 (FAT32)

  0x47 11 卷标(FAT32)

  0x52 8 FAT文件系统类型(FAT32)

  0x1FE 2 扇区结束符(0x55 0xAA)

  这里描述的启动扇区能在如OS/2 1.3的启动盘上看到。早期的版本使用一个较短的基本输入输出系统参数块,它们的启动代码在前面开始(如OS/2 1.1中是偏移0x2b)。




关键词: fat32     fat32文件系统    

高工
2014-06-12 10:31:24     打赏
2楼
FAT32特点

FAT32实际上是文件分区表采取的一种形式,它是相对于FAT16而言的。众所周知,Dos和Windows95采用的都是FAT16格式。至于FAT32,准确地说是在Windows95OSR2中第一次出现的,之所以没有宣传是因为当时该文件系统还不够成熟,尚处于试探阶段。那么为什么一定要推出FAT32呢?这主要是由其自身的优越性决定的。

  首先,它可以大大地节约磁盘空间。文件在磁盘上是以簇的方式存放的,簇里存放了一个文件就不能再存放另外的文件。假如一个磁盘的分区大小为512MB,基于FAT16的系统的簇的大小为8KB,而FAT32系统的簇的大小仅是4KB,那么,现在我们存放一个3KB的文件,FAT16系统就会有5KB的空间被浪费,而FAT32的浪费则会少一些。如果分区达到1GB,FAT16的簇为16KB,而FAT32还是4KB,节省的也就更多了。

  在推出FAT32文件系统之前,通常PC机使用的文件系统是FAT16。像基于MS-DOS,Win 95等系统都采用了FAT16文件系统。在Win 9X下,FAT16支持的分区最大为2GB。我们知道计算机将信息保存在硬盘上称为“簇”的区域内。使用的簇越小,保存信息的效率就越高。在FAT16的情况下,分区越大簇就相应的要增大,存储效率就越低,势必造成存储空间的浪费。并且随着计算机硬件和应用的不断提高,FAT16文件系统已不能很好地适应系统的要求。在这种情况下,推出了增强的文件系统FAT32。同FAT16相比,FAT32主要具有以下特点:

  1. 同FAT16相比FAT32最大的优点是可以支持的磁盘大小达到2TB(2048GB),但是不能支持小于512MB的分区。基于FAT32的Win 2000可以支持分区最大为32GB;而基于 FAT16的Win 2000支持的分区最大2GB。

  2. 由于采用了更小的簇,FAT32文件系统可以更有效率地保存信息。如两个分区大小都为2GB,一个分区采用了FAT16文件系统,另一个分区采用了FAT32文件系统。采用FAT16的分区的簇大小为32KB,而FAT32分区的簇只有4KB的大小。这样FAT32就比FAT16的存储效率要高很多,通常情况下可以提高15%。

  3. FAT32文件系统可以重新定位根目录和使用FAT的备份副本。另外FAT32分区的启动记录被包含在一个含有关键数据的结构中,减少了计算机系统崩溃的可能性。

FAT32 功能

与以前的 FAT 文件系统实现相比,FAT32 提供了以下增强功能: · FAT32 支持最大为 2 TB 的驱动器。

  注意:Microsoft Windows 2000 仅能支持最大为 32 GB 的 FAT32 分区。

  · FAT32 可以更高效地使用空间。FAT32 使用较小的簇(即,对于大小在 8 GB 以内的驱动器,使用 4 KB 的簇),这与大的 FAT 或 FAT16 驱动器相比,可将磁盘空间的使用率提高 10% 到 15%。

  · FAT32 更稳定可靠。FAT32 可以重新定位根文件夹,而且它使用文件分配表的备份副本,而不是使用默认副本。此外,FAT32 驱动器上的引导记录也得到扩展,包括了关键数据结构的备份副本。因此,与现有的 FAT16 驱动器相比,FAT32 驱动器不容易受单点故障的影响。

  · FAT32 更灵活。FAT32 驱动器上的根文件夹是普通的簇链,因此它可以位于驱动器上的任何位置。以前对根文件夹数量的限制不复存在。此外,可以禁用文件分配表镜像,这样就可以让文件分配表的副本而不是让第一个文件分配表处于活动状态。这些功能允许您动态重调 FAT32 分区的大小。不过要注意,虽然 FAT32 的设计允许这一功能,但 Microsoft 将不在初始版本中实现此功能。

FAT32 兼容性注意事项

软硬件的兼容问题

  为了与现有程序、网络和设备驱动程序保持最大程度的兼容性,FAT32 尽可能不改动现有的 Windows 体系结构、内部数据结构、应用程序编程接口(API) 和磁盘上的格式。然而,因为现在需要 4 字节来存储簇值,所以许多内部的和磁盘上的数据结构以及发布的 API 都作了修改或扩展。某些情况下,现有的 API 无法在 FAT32 驱动器上运行。大多数程序不会受这些更改的影响。现有工具和驱动程序在 FAT32 驱动器上应能够继续正常运行。不过,MS-DOS 块设备驱动程序(例如 Aspidisk.sys)和磁盘工具需要经过修改才能支持 FAT32 驱动器。

  所有 Microsoft 捆绑磁盘工具(格式化、Fdisk、碎片整理、基于 MS-DOS 和 Windows 的磁盘扫描)已经过修改,可以在 FAT32 中正常运行。此外,Microsoft 正在与一些主要设备驱动程序和磁盘工具厂商协作,帮助他们修改其产品以支持 FAT32。

  注意:不能使用 Microsoft DriveSpace 或 DriveSpace 3 压缩 FAT32 卷。

FAT32 性能

  转换到 FAT32 文件系统是您可以在基于 Windows 98 的计算机上实现的最大的一种性能增强。

双启动计算机

  目前,在 Microsoft 操作系统中,只有 Windows 95 OSR2、Windows 98、Windows 2000 和 Windows Me 可以访问 FAT32 卷。MS-DOS、Windows 95 原始版和Windows NT 4.0不识别 FAT32 分区,它们无法从 FAT32 卷启动。此外,如果使用其他操作系统(例如,Windows 95 或 MS-DOS 启动盘)启动计算机,也无法正确访问 FAT32 卷。

  Windows 95 OSR2 和 Windows 98 可以在实模式下启动(例如为了运行游戏)并可以使用 FAT32 卷。


高工
2014-06-12 10:31:24     打赏
3楼
创建 FAT32 驱动器

  在 Windows 95 OSR2、Windows 98 和 Windows Me 中,如果在大小超过 512 兆字节 (MB) 的硬盘上运行 Fdisk 工具,Fdisk 将提示您是否启用大磁盘支持。如果回答“是”(启用大磁盘支持),您创建的任何大于 512 MB 的分区都将被标记为 FAT32 分区。

  Windows 98 和 Windows Me 中还带有一种 FAT32 转换工具,您可以使用该工具将现有驱动器转换为 FAT32 文件系统。要使用该转换工具,请按照下列步骤操作: 1. 单击开始,依次指向程序、附件、系统工具,然后单击驱动器转换器 (FAT32)。

  2. 单击下一步。

  3. 单击希望转换为 FAT32 文件系统的驱动器,然后单击下一步。

  4. 按照屏幕上的说明操作。

  支持范围

  Microsoft 将支持 FAT32 文件系统的功能,以实现无错读取和在实模式或保护模式下保存文件。Microsoft 支持 Windows 95 中所带的实模式和保护模式工具。

  对于旧式(较早的)程序,如果它们无法在 FAT32 卷上安装,或者无法正确保存文件或读取文件,则您必须与软件包的生产厂商联系。

  注意:虽然 FAT32 文件系统所支持的硬盘容量最高可以达到 2 TB,但有些硬盘可能会因为计算机基本输入/输出系统 (BIOS) INT13 接口的限制而无法包含大于 7.8 GB 的可启动分区。请与硬件制造商联系,以确定您计算机的 BIOS 是否支持更新后的 INT13 扩展。

  http://support.microsoft.com/default.aspx?scid=kb;zh-cn;184006

  Windows 操作系统使用 FAT32 文件系统时存在以下限制: · 簇不能是 64 千字节 (KB) 或更大。如果簇为 64 KB 或更大,有些程序(例如安装程序)在计算磁盘空间时可能会出错。

  · 卷必须包含至少 65,527 个簇,才能使用 FAT32 文件系统。您不能增加使用 FAT32 文件系统的卷上的簇大小,以致于该卷的最终簇数小于 65,527。

  · 在使用 FAT32 文件系统的卷上,簇最多是 268,435,445 个。对于文件分配表 (FAT) 的空间,每簇最大为 32 KB,据此计算出的最大磁盘大小大约为 8 太字节 (TB)。

  · Microsoft Windows 95 和 Microsoft Windows 98 附带的“磁盘扫描”工具是 16 位程序。这样的程序有一个内存块,该内存块的最大分配大小等于 16 MB 减去 64 KB。因此,Windows 95 或 Windows 98 的“磁盘扫描”工具无法处理使用 FAT32 文件系统(其 FAT 大小大于 16 MB 和 64 KB 之差)的卷。使用 FAT32 文件系统的卷上的 FAT 项使用 4 字节,因此 ScanDisk 无法处理使用定义的簇数大于 4,177,920(包括两个保留的簇)的 FAT32 文件系统的卷上的 FAT。将 FAT 本身包括在内,按每簇最大 32 KB 计算,卷大小为 127.53 吉字节 (GB)。

  · 您不能减少使用 FAT32 文件系统的卷上的簇大小,以致于 FAT 的最终大小大于 16 MB 与 64 KB 之差。

  · 在 Windows 2000 中您无法使用 FAT32 文件系统格式化大于 32 GB 的卷。Windows 2000 FastFAT 驱动程序可以安装和支持使用 FAT32 文件系统且大于 32 GB的卷(受到其他限制),但是您不能使用格式化工具创建一个这样的卷。这种现象是设计使然。如果需要创建大于 32 GB 的卷,请改用 NTFS 文件系统。

  备注:在尝试格式化大于 32 GB 的 FAT32 分区时,在进程快结束时格式化会失败,并出现以下错误:

  Logical Disk Manager:Volume size too big.

  http://support.microsoft.com/default.aspx?scid=kb;zh-cn;314463

Windows XP 中 FAT32 文件系统的限制

  当您在 Windows XP 中使用 FAT32 文件系统时,请注意下列限制: · 簇不能等于或大于 64 KB。如果簇大小为 64 KB 或更大,则有些程序(例如安装程序)可能会不正确地计算磁盘空间。

  · FAT32 卷必须至少包含 65,527 个簇。您不能增加使用 FAT32 文件系统的卷上的簇大小,这样会导致卷上的簇数少于 65,527 个。

  · 如果考虑到以下可变因素,则最大磁盘大小大约为 8 TB:一个 FAT32 卷上允许的最大簇数为 268,435,445,每个簇最大为 32 KB,另外还有文件分配表 (FAT) 所需的空间。

  · 您不能减少 FAT32 卷上的簇大小,这样会导致 FAT 的大小大于 16 MB 减去 64 KB。

  · 在 Windows XP 安装过程中,您不能使用 FAT32 文件系统格式化大于 32 GB 的卷。Windows XP 可以装入和支持大于 32 GB 的 FAT32 卷(受到其他限制),但是您不能在安装期间使用 Format 工具创建大于 32 GB 的 FAT32 卷。如果您需要格式化大于 32 GB 的卷,请使用 NTFS 文件系统来格式化。另一种方法是从 Microsoft Windows 98 或 Microsoft Windows Millennium Edition (Me) 启动盘启动,然后使用该磁盘上包含的 Format 工具。

  有关如何使用 Microsoft Windows 98 或 Microsoft Windows Millennium Edition (Me) 启动盘格式化硬盘的其他信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:

  255867 如何使用 Fdisk 和 Format 工具对硬盘进行分区或重新分区

  注意:当您在 Windows XP 安装过程中试图格式化大于 32GB 的 FAT32 分区时,在格式化过程快结束时操作将会失败,并且您可能会收到以下错误信息:

  Logical Disk Manager:Volume size too big.

  · MS-DOS(Microsoft Windows 95 的原始版本)和 Microsoft Windows NT 4.0 及更低版本都不能识别 FAT32 分区,因此无法从 FAT32 卷启动。

  · 您不能在 FAT32 分区上创建大于 (2^32)-1 字节(即 4 GB 减去 1 个字节)的文件。

  FAT32格式理论上可以支持128TB的磁盘,即簇的大小乘簇的数量32K*(2^32),但由于受到软硬件的限制和其他方面的原因,不可能达到理论值。

FAT32数据恢复原理

  由于FAT与FDT对数据的链式存储管理的,可以通过链式搜索查找。只有FAT表和FDT配合使用,才能可以统一管理整个磁盘文件,也就可以准确定位被删除的文件的确切位置。

  在 Window操作系统下对文件的删除工作,是将FDT中该文件的第一个字符改“E5”来表示该文件已经删除,同时改写引导扇区的第二个扇区中表示该分区点用空间大小的相应信息。因此,在设计的时候,根据其存储结构,对相应的地方进行修改,搜索E5删除标志,再按被删文件数据链进行恢复。

  具体步骤如下

  (1) 获取磁盘分区类型,分区存储空间,FAT、FDT、文件等存储的起始扇区。

  (2) 获取FAT、FDT表项内的簇信息,即簇的删除、未使用、坏簇、以及文件占用簇的起始扇区信息等。

  (3) 通过FAT、FDT计算不同文件在物理扇区的起始位置,包括有标识E5的删除文件起始位置、文件类型、占用大小和存储的所在簇。

  (4) 改变删除位,通过第3步得到的结果,并按FAT表对文件进行链式查找并缓存,当达到文件所在簇尾时,停止操作。

  (5) 对存储的数据进行转换,生成文件。

  (6) 对文件进行异区存储。 而操作系统在读写文件时,会根据FDT中的起始单元,结合FAT表就可以知道文件在磁盘的具体位置,然后顺序读取每个簇的内容,文件的查找如图4-1所示。具体的方法如下:

  (1)在文件目录项FDT中找到存放在FAT表中的文件File的地址M(2)2*M得到FAT表中File文件数据链表首地址B。

  (3)在FAT表中的B地址中,存放有文件FILE数据链表头P。

  (4)P*4得到在FAT表项中的下一个偏移位置,即下一个数据链表。

  (5)如果下一个数据链表内的信息为0FFFFFFH,则表示文件存储已经结束图4-1查找文件流程需要说明的是,新建文件时,系统在FAT表中查找未用的簇记录在新文件目录项中做为首簇;FDT文件目录项中,第0~7字节为文件名(若有剩余字节用20填充)第1字节表明了该文件的状态,第1字节又表明了文件的状态,00HE5H及其它字符。当该字节为00H时,表示该目录项是空表项,可以使用。当为E5H时,表示该目录项以前用过,但是文件被已经删除了。


高工
2014-06-12 10:31:24     打赏
4楼
FAT32转NTFS方法



一、FAT32转NTFS
在“运行”中输入“CMD”打开“命令提示符”窗口,输入:“CONVERT F: /FS:NTFS”,其中“F:”是分区盘符(要跟冒号),“/FS:NTFS”是把指定分区转换为NTFS格式。本来以为很快就可以搞定了,但却出了点意外,转换失败!卷有不一致性,要求运行CHKDSK磁盘检查工具。既然如此,那就按要求运行CHKDSK命令。先运行“CHKDSK /?”查看该命令的帮助,从中了解到参数“/F”是“修复磁盘上的错误”,“/R”是“查找不正确的扇区并恢复可读信息(隐含 /F)”。既然“/R”隐含“/F”,那直接使用“/R”参数就可以了。运行“CHKDSK F: /R”检查并修复F盘。除了使用CHKDSK这种DOS方式修复磁盘外,还可以使用WIN窗口方式,在需要修复的磁盘上点右键,选择“属性”,在其中“工具”选项中有“查错”这一功能,点击“开始检查”,在打开的“检查磁盘”窗口内,勾选中“自动修复文件系统错误”和“扫描并试图恢复坏扇区”,同样可以检查修复该磁盘。检查修复所用时间根据磁盘中的文件数量而定,还好朋友磁盘中的文件不算太多,七八分钟就检测修复完成了,接下来再次运行“CONVERT F: /FS:NTFS”,转换成功。朋友看我使用这两个命令就转换了分区格式,很是激动,从我手中夺走了主动权,说要把他的盘全转为NFTS格式的……
二、NTFS转FAT32
第二天,天刚亮,朋友的电话就来问候我了。原来他装了双系统WIN98和WINXP,昨天一时激动把所有的分区全转为NTFS了,当想进入WIN98时,才发现已不行了,因为天太晚了,没好意思打扰我,就自已上网找资料,才知道WIN98不支持NTFS格式,这不天一明,就来SOS了,问能不能把转成NTFS格式的分区再转为FAT32格式。NTFS转FAT32,这个我倒没有听说过,为了不让自已在朋友面前掉份,装出一幅不在乎的口气:“没问题!我停一会就去”。放下电话,赶忙开机上网,其实我也很急啊!打开百度,搜索关于NTFS转FAT32的相关资料。很快找到一则,说是用XP安装盘,在安装过程中,可以把NTFS格式转换为FAT32格式。要用到安装盘,太麻烦还费时,这个不行,PASS!又看到了一些介绍使用PQ魔术师的资料,但也有异议,PQ在转换分区时,对中文不太支持,看来PQ的安全性能不是太高,先暂时PASS!接下来,又找到一条资料,“Paragon Hard Disk Manager”软件,可以轻松且安全的随意改变磁盘分区格式,并支持分区内的中文文件,看来这个值得一试!Down了一个“Paragon Hard Disk Manager 6.01.847 汉化版 ”,按默认选项安装在本机中,程序运行后的界面,瞧!好多的功能!但那一项才是转换分区格式的?经过一番摸索,找到了分区格式互换的方法。首先在“Paragon Hard Disk Manager”窗口里,找到要转换分区格式的磁盘,如M盘,在其上点右键,选择“修改”菜单中的“转换”,在打开的“转换”窗口里,把“转换为”中的类型选为“FAT32”,,然后点“确定”返回到“Paragon Hard Disk Manager”窗口,接下来再点击工具栏中的“更改”按键,打开如图7的“挂起更改”窗口,点击“应用”就开始转换分区类型了。随着进度条的不断刷新,很快就把NTFS格式转为FAT32了,转换成功。由于当前系统中还保留着旧的磁盘信息原因,分区格式虽已从NTFS转为FAT32了,但在打开的磁盘属性窗口中,显示的还是NTFS,但只要重启一下,显示类型就更改过来了。虽然显示的是NTFS,但其中的选项已少了NTFS格式所特有的“安全”和“配额”两项,说明已是FAT32分区格式了。

共4条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]