FAT32文件系统的存储组织结构(二)

  前面已经基于一个格式化的空U盘分析了一下FAT32文件系统存储的组织结构,下面我们从文件操作的角度来分析一下文件系统的运作机制。由于换了个U盘,所以仍然贴出刚格式化的空U盘的几个重要的数据区如下:

 

我们可以看出,在分区格式化的时候,系统将卷标TEST_FAT32存储在2号簇,即跟目录区,如上面根目录贴图所示。同时,在FDT区2号簇标记位置写入了文件结束符FF FF FF 0F。显然,FAT32文件系统将目录当做普通文件来处理的。

下面我们在根目录下新建一个文件夹TEST1,看会有什么变化:

建立了TEST1文件夹后,FDT变成如下:

根目录变成如下:

重新分配了3号簇:

从上面的变化可以直观的看出,系统在新建文件夹时完成了如下动作:

     a.在父目录所在簇上建立新的目录项,存储当前所建文件夹信息。

     b.分配一个新簇,给新建的文件夹建立两个目录项:父目录和当前目录。

     c.在FDT表中新分配的簇对应的位置上写下文件结束符。

     d.建立各部分的链路关系:新建文件夹所对应的目录项的文件起始簇号字段写上新分配簇的簇号,新簇上的两个目录项的文件起始簇号字段分配写上父目录所在簇号(此处是0,本来我以为是2,即根目录所在簇,不知道为什么,可能特地用0指示根目录吧)和当前簇号(此处是3)。

为了验证我们上面分析的正确性,我们再在TEST1文件夹下建立新文件夹TEST11,看是否做了如下操作:

      a.在父目录(即TEST1)所在簇(即3号簇)上建立新的目录项,存储TEST11文件夹信息。

     b.分配一个新簇(应该是4号簇),给新建的文件夹(即TEST11)建立两个目录项:父目录和当前目录。

     c.在FDT表中新分配的簇(应该是4号簇)对应的位置上写下文件结束符。

     d.建立各部分的链路关系:新建文件夹(即TEST11)所对应的目录项的文件起始簇号字段写上新分配簇的簇号(应该是4号簇),,新簇上的两个目录项的文件起始簇号字段分配写上父目录所在簇号(3号簇)和当前簇号(应该是4号簇)。

新建TEST11文件夹后FDT变成:

根目录没有变化:

3号簇变成:

新分配4号簇:

显然我们的估计没有错的,也进一步证明我们前面的分析是正确的。

下面我们再分析建立文件的情况

我们先建立一个100字节的文件TEST.TXT,然后把这个文件拷贝到U盘的根目录下,FDT变成如下:

根目录变成:

新分配5号簇保存文件内容:

从上面的变化可以直观的看出,系统新建文件和新建文件夹所完成的操作是一样一样的:

     a.在父目录所在簇上建立新的目录项,存储当前所建文件信息。

     b.分配一个新簇,存储新建的文件的内容。

     c.在FDT表中新分配的簇对应的位置上写下文件结束符。

     d.建立链路关系:新建文件所对应的目录项的文件起始簇号字段写上新分配簇的簇号。

结束总结:

      1.在FAT32文件系统中,目录和文件的存储采用统一的方式。

      2.文件系统的操作的单位是簇,每新建立一个文件或文件夹,至少会重新分配一个簇号。

      3.如果一个文件或目录的内容要多个簇才能存储得下,则系统会分配多个簇来存储文件或目录的内容

      4.当需要多个簇时,这些簇可能连续也可能不连续,但无论是连续或是不连续,系统都是采用FDT链表的形式来组织的。

时间: 2014-08-27

FAT32文件系统的存储组织结构(二)的相关文章

《NTFS文件系统扇区存储探秘》——2.4 FAT32扇区寻址实例分析

2.4 FAT32扇区寻址实例分析 NTFS文件系统扇区存储探秘 现在以作者的1号硬盘中的H盘为例,说明对FAT32文件系统各部分扇区的寻址计算方法. 根据2.2节中的扇区号备查文件记录,可以读出H盘存储分区链表的扇区号.因为每一个逻辑驱动器备份两个扇区数据,所以与H盘对应的扇区应该是第11和第12个记录.第11个记录是分区链表扇区号,读出其值是"20964825",第12个记录是分区引导记录的首扇区号. 运行"查看硬盘扇区数据.EXE"程序,将"2096

《NTFS文件系统扇区存储探秘》——2.3 FAT32的扇区分配

2.3 FAT32的扇区分配 NTFS文件系统扇区存储探秘 FAT32文件系统可以认为是扩展了的FAT16文件系统,因为它的数据结构基本上与FAT16文件系统相同.如FAT表的结构是相同的,只不过簇登记项使用了32位的标识符:文件目录登记项的字段记录基本是一样的,只不过没有放在固定的FDT表中,而是存储在数据区中.这种扩充是计算机技术飞速发展的需要,其中最主要的原因是硬盘容量的快速增长. FAT32文件系统的扇区分配与FAT16文件系统相比较,有一些地方不相同,主要表现在以下几个方面. (1)F

《NTFS文件系统扇区存储探秘》——1.3 分区引导记录

1.3 分区引导记录 NTFS文件系统扇区存储探秘 硬盘的主引导记录只有一个,存储在硬盘的线性0号扇区上.而硬盘的分区引导记录不止一个,每一个逻辑驱动器都有一个分区引导记录.如果将一个硬盘分为C.D.E.F.G5个逻辑驱动器,就应该有5个分区引导记录,分别存储在各个逻辑驱动器的第1个逻辑扇区中. 分区引导记录主要由4部分组成. (1)BIOS参数记录块BPB(BIOS Parameter Block). (2)磁盘标志记录表. (3)分区引导记录代码区. (4)结束标志"55 AA".

移动存储卡仍然用FAT32文件系统的真相

微软在2001年就为自家的XP系统的本地磁盘默认使用了NTFS文件系统,但是12年之后,市面上的USB可移动设备和SD卡等外置存储器仍然在用着FAT32文件格式,这是什么理由让硬件厂商选择过时的文件系统格式? 很显然,这不是硬件厂商自身的问题,但是对于用户而言,用过NTFS格式后,会发现FAT32文件系统格式带来诸多不便. FAT32文件系统的不足之处: • FAT32文件系统不支持4G及以上单文件的存储,FAT32文件系统最大支持的储存空间为2TB.例如高清电影,几乎无法往FAT32格式的磁盘

《NTFS文件系统扇区存储探秘》——2.2 FAT16扇区寻址实例分析

2.2 FAT16扇区寻址实例分析 NTFS文件系统扇区存储探秘 详细了解文件系统的扇区分配是排除硬盘逻辑故障的重要基础.下面以作者使用的硬盘为例,介绍FAT16文件系统的扇区地址的寻址计算方法. 在进行扇区寻址和计算的过程中,需要用到后面<工具篇>中介绍的一些工具程序,本章先使用这些程序的执行结果,程序的详细运行方法在后面的章节中再作介绍. 作者使用的计算机上挂接了两块硬盘,为了在以后进行扇区扫描时节省时间,特意选用了两块小容量的硬盘.一块容量是6.2GB,接在第一IDE接口上,硬盘编号是&

《NTFS文件系统扇区存储探秘》——1.2 主分区表

1.2 主分区表 NTFS文件系统扇区存储探秘 主分区表占用0号扇区(线性寻址)的64字节,位移从1beH到1fdH,字节编号为447到510.它共有4个分区表项,每个分区表项占16字节.一般只使用2个分区表项,另外2个分区表项全为0.分区表项的格式见表1-1. 注:偏移量和字节编号是第1个分区表项的值,后面的分区表项按照相同的规律递增. 通常说的分区表指的是主分区表,另外在扩展分区的每一个逻辑驱动器中,都有一个分区链表,对它们的解读方法基本是相同的. 下面将图1-1所示的两个分区表项单独列出来

《NTFS文件系统扇区存储探秘》——1.4 文件分配表FAT

1.4 文件分配表FAT NTFS文件系统扇区存储探秘 FAT文件系统在管理磁盘上的用户文件时,使用了文件分配表的管理方式.不过系统引导所需要的数据,不在文件分配表的管理范围之内.在这一点上与NTFS文件系统的存储方式是完全不相同的,NTFS文件系统将磁盘上的所有事物都看作文件,不管是用户的还是系统的. 文件分配表在FAT文件系统中占有非常重要的地位,对文件的所有操作,包括读.写.修改和复制,都要依赖于文件分配表中的有关记录.正因为如此,当初设计者将文件分配表作了两份相同的拷贝存储在磁盘上. 1

《NTFS文件系统扇区存储探秘》——1.6 数据区DATA

1.6 数据区DATA NTFS文件系统扇区存储探秘 数据区DATA的所有扇区都划分成以簇为单位的逻辑结构,每一个簇在FAT表里都有一个簇登记项与之对应. 在对硬盘的引导故障进行修复时,一般只访问主引导记录.分区表和分区引导记录,极个别的情况下可能访问到FAT表和FDT表,而DATA区是访问不到的. FAT16文件系统的DATA区紧接在FDT表之后.FAT32文件系统因为没有FDT表,所以紧接在第二个FAT表之后的就是DATA区.

《NTFS文件系统扇区存储探秘》——1.5 文件目录表FDT

1.5 文件目录表FDT NTFS文件系统扇区存储探秘 操作系统为了管理磁盘上的目录和文件,在特定的扇区上建立了一个文件目录表FDT,它是由高级格式化程序FORMAT在格式化磁盘时建立的. FAT16分区格式的FDT表占用固定的32个扇区,扇区地址紧跟在第2个FAT表之后.FAT32分区格式没有固定的FDT表,在第2个FAT表之后就是数据区DATA.目录名和文件名也作为数据对待,存放在数据区内. 两种分区格式都使用一个32字节长的"目录登记项",来说明目录或文件的有关特性.FAT16分