关键词不能为空

当前您在: 主页 > 英语 >

FAt32 文档

作者:高考题库网
来源:https://www.bjmy2z.cn/gaokao
2021-02-14 03:25
tags:

-

2021年2月14日发(作者:儿童是祖国的花朵)


FAT32


文件系统简介



[


日期:


2008-09-27]


来源:



作者:



[


字体:







]





(一)


FAT32


文件系统将逻辑盘 的空间划分为三部分,依次是引导区(


BOOT


区)、文件分配 表区(


FAT


区)、


数据区(


DATA


区)。引导区和文件分配表区又合称为系统区。






(二)引导区从第一扇区开始,使用了三个扇区,保存了该逻辑盘每扇区字节数,每簇对应的扇区数等 等重要参数


和引导记录。之后还留有若干保留扇区。而


FAT1 6


文件系统的引导区只占用一个扇区,没有保留扇区。






(三)文件分配表区共保存了两个相同的文件分配表,因为文件所占用的存储空间(簇链)及空闲空间的管理都是


通过


FAT


实现的,

< br>FAT


如此重要,保存两个以便第一个损坏时,还有第二个可用。文件系统对数据 区的存储空间是按


簇进行划分和管理的,簇是空间分配和回收的基本单位,即,一个文件 总是占用若干个整簇,文件所使用的最后一簇


剩余的空间就不再使用,而是浪费掉了。< /p>








从统计学上讲,平均每个文件浪费


0.5


簇的空间,簇越大,存储文件时空间浪费越多,利用率越 低。因此,簇的


大小决定了该盘数据区的利用率。


FAT16< /p>


系统簇号用


16


位二进制数表示,



0002H



FF EFH


个可用簇号


(FFF0H



FFFFH


另有定义


,

用来表示坏簇,文件结束簇等


)


,允许每一逻辑盘的数据区 最多不超过


FFEDH(65518)


个簇。

< br>FAT32


系统簇号改用


32


位 二进制数表示,


大致从


00000002H


FFFFFEFFH


个可用簇号。


FAT


表按顺序依次记录了该盘各


簇的使用情况,是一种位示 图法。








每簇的使用情况用


32


位二进制填写,未被分配的簇相应位置写零;坏簇相应位置填入特定值;已 分配的簇相应


位置填入非零值,具体为:如果该簇是文件的最后一簇,填入的值为


FFFFFF0FH


,如果该簇不是文件的最后一簇,


填入的值为该文件占用的下一个簇的簇号,这样,正好将文件占用的各簇构成一个簇链,保存在


FAT


表中。


0000000

< br>H



00000001H


两簇号 不使用,其对应的两个


DWORD


位置


(FAT


表开头的


8


个字节

< p>
)


用来存放该盘介质类型编号。


F


AT


表的大小就由该逻辑盘数据区共有多少簇所决定,取整数个扇区。








(四)


F AT32


系统一簇对应


8


个逻辑相邻的 扇区,理论上,这种用法所能管理的逻辑盘容量上限为


16TB(16384

< p>
GB)


,容量大于


16TB


时,可以用一簇对应


16


个扇区,依此类推。


FAT16


系统在逻辑盘容量介于


128MB



256MB


时,一簇对应

8


个扇区,容量介于


256MB



512MB


时,一簇对应


16


个扇区,容量介于


512MB



1GB


时,一簇对



32


个扇区,容量介于


1GB



2GB


时,一簇对应


32


个扇 区,超出


2GB


的部分无法使用。显然,对于容量大于


51


2MB


的逻辑盘,采用

FAT32


的簇比采用


FAT16


的簇小很多,大大减少了空间的浪费。








但是,对于容量小于


512MB


的盘,采用


FAT32


虽然一簇


8


个扇区,比使用


FAT16


一簇


16


个扇区,簇有所减


小,但


FAT 32



FAT


表较大,占用空间较多, 总数据区被减少,两者相抵,实际并不能增加有效存储空间,所以微


软建议对小于


512M


的逻辑盘不使用


FAT32









另外,


对于使用


FAT16


文件系统的用户提 一建议,


硬盘分区时,


不要将分区


(< /p>


逻辑盘


)


容量正好设为某一区间的下


限,例:将一逻辑盘容量设为


1100M(


稍大于


1024M)


,则使用时其有效存储容量比分区为


950M


的一般还少,因其簇


大一倍,浪费的 空间较多。还有,使用


FDISK


等对分区指定容量时,由于对


1MB


的定义不一样


(


标准的二进制的


1MB



10 48576B


,有的系统将


1MB


理解 为


1000000B



1000KB< /p>



),


及每个分区需从新磁道开始等因素 ,实际分配的容量


可能稍大于指定的容量,亦需注意掌握。






五)


根目录区



ROOT

< p>
区)


不再是固定区域、


固定大小,


可看作是数据区的一部分。


因为根目录已改为根目录文件,

采用与子目录文件相同的管理方式,一般情况下从第二簇开始使用,大小视需要增加,因此根目录下的文件数 目不再


受最多


512


的限制。


FAT16


文件系统的根目录区(


ROOT


区)是固定区域、固定大小的,是从


FAT


区之后紧接着的


3


2


个扇区,最多保存


512


个目录项,作为系统区的一部分。








(六)目录区中的目录项变化较多,一个目录项仍占


32


字节,可以是文件目录项、子目录项、卷标项


(


仅跟目录



)

、已删除目录项、长文件名目录项等。目录项中原来在


DOS


下保留未用的


10


个字节都有了新的定义,全部


32



节的定义如下:





(1)


0--


7


字节



文件正名。





(2)


8-- 10


字节



文件扩展名。





(3)


11


字节



文 件属性,按二进制位定义,最高两位保留未用,


0


< p>
5


位分别是只读位、隐藏位、系统位、卷标位、子


目录位、归档位。





(4)


11-- 13


字节



仅长文件名目录项用,用来 存储其对应的短文件名目录项的文件名字节校验和等。





(5)


13-- 15


字节



24


位二进制的文件建立时间,其中的高


5


位为小时,次


6


位为分钟。





(6)


16-- 17


字节



16


位二进制的文件建立日期,其中的高


7


位为相对于

< p>
1980


年的年份值,次


4


位为月份,后


5


位为月


内日期。





(7)


18--19


字节


< br>16


位二进制的文件最新访问日期,定义同


(6)






(8)


20-- 21


字节



起始簇号的高


16


位。





(9)


22-- 23


字节



16


位二进制的文件最新修改时间,其中的高


5


位为小时,次


6


位为分钟,后


5


位的二倍为秒数。





(10)24--25


字节



16


位二进制的文件最新修改日期,定义同


(6 )






(11)26--27


字节



起始簇号的低


16


位。





(12)28-- 31


字节



32


位的文件字节长度。








其中第


(4)



(8)


项为以后陆续定义的。


< /p>


对于子目录项,其


(12)


为零;已删除 目录项的首字节值为


E5H


。在可以使


用长文件名的


FAT32


系统中,文件目录项保存该文件的短文 件名,长文件名用若干个长文件名目录项保存,长文件名


目录项倒序排在文件短目录项前 面,全部是采用双字节内码保存的,每一项最多保存十三个字符内码,首字节指明是


长文 件名的第几项


,11


字节一般为


0FH



12


字节指明类型,


13


字节为校验和,


26-- 27


字节为零。





修复被


CIH


破坏的硬盘一例(


FAT32






1)


用无毒系统


Windows


9X


软盘启动计算机,进入


CMOS


SETUP


,将系统日期修改为


26< /p>


日以前。





2)


用软盘重新引导计算机,运行


FDISK

/MBR


,清除主引导记录


MBR


代码区。





3)


运行


DEBUG


,输入以下程序:





-a




XXXX:0100


mov


ax,201




XXXX:0103


mov


bx,1000




XXXX:0106


mov


cx,1




XXXX:0109


mov


dx,80




XXXX:010C


int13




XXXX:010E


int3




XXXX:010F


[


回车


]




-g




....(


显示寄存器结果,略去


)




-f11BE


11FD


00




-f11FE


11FF


55


AA




-a100




XXXX:0100


mov


ax,301




XXXX:0103


[


回车


]




-g=100




......




-q




以上程序清空分区表。或者,直接运行


DISKEDIT


,选择物理驱动器


HARD


DISK


1


,按


Alt-P




选择物理扇区,


Side


0



Cylinder


0



Sector

< br>1


,用


00


清空偏移

< p>
01BE



01FD


,并 在扇区最





后输入


55



AA

< br>。在启动


DISKEDIT


后,系统自动设为

< p>
READ


ONLY


,从菜单中选


TOOLS-]CONFIGURATION






清除


READ


ONLY


标记并回车,就可以对硬盘进行写操作了。在写操作之后,按


Ctrl-W< /p>


存盘。





4)


清空分区表后,用


NDD


重建原分区。如果硬盘上还有除


C


以外的逻辑 分区,可以一齐找回。





5)


为重建逻辑驱动器


C

< p>
,下面将计算


FAT


区:





a)


Windows


9X


操作系统的逻辑 驱动器


C



BOOT

< br>区在


Cylinder


0



Side


1



Sector


1






b)



D ISKEDIT



FIND


功能寻找< /p>


ASC


II


字符串:


COMMAND


COM





COMMAND



COM

< p>
中间有一个空格,


ASC


II

< br>值为


20


,找寻


FDT


表中



的原因是,根目录中一

般都有此文件,如果你的计算机里该文件不在根目录,就将上述字符串改为根目录中的其他文件名,如




MS



。但要注意文件名和后缀名之间要有空格,总长度为


11

字节)





c)


找到后,用


PgUp

< p>
向前翻页,直到上一扇区尾部出现连续的


00




(一般说,没见过硬盘的最后几十


K


还有存放数据的情况,否则,


Windows


9X


的虚拟内存恐怕就没法建立了,)





d)


记 录该扇区的


Cylinder



Sid e



Sector


值。


——


ROOT




e)


寻找


FAT2

< br>的开始扇区,其特点是:





(


要选中


“Search


at


specified


sector


offset:[0...]”)




扇区偏移


0000H


处为


F8


FF


FF



FAT16




扇区偏移


0000H


处为


F8


FF


FF


FF



FAT32




找到后,确认上一扇区尾部出现连续的


00


,则该扇区为


FAT2


头部。< /p>






FAT1


应与


FAT2


内容相同,但其头部数个扇区已被


CIH


破坏)





f)


记录该扇区的


Cylinder


< br>Side



Sector


值。< /p>


——


FAT2




g)


计算


FAT2


的扇区数,用以下公式,其中,尾标


0



FAT2


地址,尾标


1



ROOT


地址:





扇区数


= (Cylinder1-Cylinder0)*Sectors/Cylinder+(Side1-Side 0)*Sides




*Sectors/Cylinder+Sector1-Sector0




说明:


S ectors/Cylinder


为每道扇区数,


Sides< /p>


为硬盘的总磁头数。


一个简单的查看方法是:


DISKEDIT


中按下


[En d]


键,屏幕右下角的


Sector


值 即为每道扇区数,而


Side



+1< /p>


即为总磁头数。


FAT1


扇区数与


FAT2


相同。





h)


计算出


FAT1


头部地址,并记录。


——


F AT1




i)

< br>在


DISKEDIT


中按


Alt -P


重选


Physical


Sect or


,起始地址为步骤


e)


记录的地址 。扇区数为步骤


g)


计算出的扇区数。



Alt-W


将选中的扇区(即


FAT 2


)存至


FAT1


开始的地址(步骤< /p>


h)


计算出的


FAT1

< br>头部)。





j)


至此,


FAT2-]FAT1< /p>


的恢复工作宣告结束。





6)


下面恢复主引导记录中的标志:






DISKEDIT


选择


Cylinder


0



Side


0



Sector

< br>1


,将此扇区尾部偏移为


01C2H

地址的标志修复。如果为


FAT16


统,应为


06H


;如果为


FAT3 2


系统,应为


0CH


。均表示


PRI-DOS


分区。





7)


恢 复


BOOT


扇区,位置在


Cylind er


0



Side


1



Sector

< br>1


,以下用


0-1-1


表示,以 此类推。





a)


在步骤


5)

中,已计算出了


FAT1


的起始位置。在

< br>FAT16


系统中,


FAT1


一 般自


0-1-2


开始;在


FAT32< /p>


系统中,


FA


T1


一般自


0-1-33


开始。如果你的系统与此不同,以实际计 算出的数值为准。





b)



FAT1

的起始扇区号减


1


,就是系统的隐含扇区数,一般


FAT16



1



FAT32



32






c)


如为


FAT16


系统,跳过本步骤,至


d)






选择一台无毒的


FAT32


系统作参考,将


0-1-1


< br>FAT1


前面的隐含扇区保存到






FAT16/FAT32


文件系统介绍




本文旨在给通用


PC


或数码相机用户介绍文件分配表


(FAT)


和簇的概念 和意义,并介绍


12


位、


16


位和


32



FAT


的特


点和不同应用以及未来的发展趋势。




在开发最初的个人计算机时,人们用


180KB


的软磁盘,不久便采用


360KB

< br>的双面磁盘。为了组织这些存储设备上数


据,


最初的


DOS


系统开发者设计一个表来指示哪个扇区属于哪些文件,


以及哪些扇区空闲,


这样操作系统可以最大限


度地利用这些磁盘空间,使文件可以存储在不连续的扇区上。文件数据可以分散有组织地存储在磁盘的不同扇区, 这


称为文件分割。




由于在


360KB


磁盘上有


7 20


个扇区,


因此,


表要做得足够大以 能标识每个扇区,


并预留一些空间以备未来采用更大存


储空间的 磁盘。表中的每个记录只用一个字节,这样只能有


256


个可能 值,不能满足这么多扇区的需要。如果采用两


个字节则最多可以有


65,536


个记录,但这样将浪费磁盘空间。因此,综合这两种情况,决定采用


12


位作为表记录的


长度来跟踪磁盘上扇区 的利用情况。采用


12


位长度可以有


4 ,096


个可能值,如果每个表记录对应一个


512

< p>
字节扇区,


那么这个


FAT


表可以处理高达


2MB


存储容量的存储设备。




但要从这么长的表中得到需要的信息将花太长时间 ,因此,人们引入了簇


(cluster)


的概念。这使设备的 最小存储单元从


单个扇区增加到固定数量扇区,这些固定数量扇区称为簇。对于


180KB


磁盘,簇的大小为两个扇区


(1,0 24


字节


)


。因


此,如果要保存一个


500


字节的文件,将占用磁盘上


1,024


个字节。这看上去会浪费,但实际上簇的概念在存储大文< /p>


件时效果很好,而实际上多数系统和用户文件都是较大的。表


1< /p>


列出


FAT


所能代表簇的最大数字。




簇的概念




磁盘上最小可寻址存储单元称为扇区,通常每个扇区为


512


个字节


(


或字 符


)


。由于多数文件


比扇区大得多,因 此如果对一个文件分配最小的存储空间,将使存储器能存储更多数据,这


个最小存储空间 即称为簇。根据存储设备


(


磁盘、闪卡和硬盘

< br>)


的容量,簇的大小可以不同以


使存储空间得到最有效的 应用。在早期的


360KB


磁盘上,簇大小为

< br>2


个扇区


(1,024


字节


)



第一批的


10 MB


硬盘的簇大小增加到


8


个扇区


(4,096


字节


)



现在的小型闪存设备上的典型簇大小是


8KB



16KB



2GB


以上的硬盘驱动器有


32KB


的簇。表


2


列出在给定簇大小和


FAT


类型的最大分区。




为什么 采用簇呢?通常,存储设备上的空间分配是随机的。在一个新存储设备上,文件连续存储,并知道开始和结束


扇区和长度,在读取时可以根据这些信息重新得到所存储的文件。但是,过一段时间后,有些 文件将会被擦掉,同时


可能有些文件增大,这时不能保证同一个文件存储在连续的一系列 扇区里。因此,需要一种方法来辨别哪个扇区被分


配到某些文件,以及还有哪些扇区可用 。这时可以采用一种表结构来实现这种功能,使每个扇区对应一个表记录。然


而,由于大 多数文件存储在多个扇区,一个记录对应一个扇区的作法将造成一些浪费。因此,采用每个记录代表一个


固定数量扇区将更有意义,这个固定扇区被称为簇。




给文件分配扇区




如果给一个文件


(

< br>簇


)


分配的最小存储空间大小取决于保存该文件的介质类 型,


我们必须有一种方法来标明某个簇是否可


用或者已分配给一 个文件。如果已将一个簇分配给一个文件,我们必须知道这个簇分配给文件的哪部分了,这就是通


过一个链接列表来实现,即文件分配表


(FAT)


。< /p>


FAT


仅仅是一个包含


N


个整数的列表,


N


是存储设备上最大的簇数。表


中每个记录的位数称为


FAT


大小,



12



16



32


三个数之一。


早 期的存储设备使用


12



(1.5


字节


)FAT


以减少浪费,


12


位可以提供


4,096


个 簇。假定一个簇具有两个扇区


(1,024


字节


)


,则代表存储设备将近有


4.2MB


存储容量。更大的


簇就能实现更大的存储空间,但是在存储较小文件时,由于簇 没有完全装满而将造成存储空间的浪费。



< br>操作系统根据表现整个磁盘空间所需要的簇数量来确定使用多大的


FAT


。如果磁盘要求的簇少于


4,096


个,则可以 使



12



F AT


;如果小于


65,536


但大于< /p>


4,096


个簇,就使用


16

< p>


FAT


;否则,必须采用


32



FAT


。在存储设备的第


一个扇区内以数据列表的形式定义了簇的大小,该数据列表被称为


B IOS


参数块。在系统引导期间操作系统可以读该


扇区,这样就 能设定如何从存储设备中读取文件。




FAT


是一种链接列表,链接列表中相关记录之间互相指向对方。在存储设备目录中包 含了


FAT


表名称、该文件大小和


分配 给该文件的第一个簇的编号。存储该文件的第一个簇所对应的表记录中包含了该文件的第二个簇号码。同样,第< /p>


二个簇对应的记录里包含有存储该文件的第三个簇编号,以此类推直到该文件的最后一个簇 。在新存储设备上存储的


第一个文件将保存在连续的簇内,因此第一个簇会指向第二个, 第二个指向第三个,如此类推。




实 际上,第一个簇


(



0)


总是保留用于存储操作系统信息、根目录和两份


FAT


。系统建立两份


FAT


,其目的是在当修改

< br>其中一个时如果系统发生中断


(


崩溃

)


,另一份还完整无缺,恢复程序会检查


FAT

< p>
并使用这份


FAT


来恢复。




FAT


的作用




那么


FAT


的重要意义是什么呢?当前的闪存设备使用


12



FAT



16


< p>
FAT


,数码相机和


MP3


播放器被设计成利用


这种表结构进行读写。


随着


4GB


微硬盘逐渐进入实际应用,


16



FAT


将不能够满足这种硬盘的需求,

< p>
因为


16



FAT


只能实现


65,536


个簇,


对于最大的


32K


字节的簇而言只能提供最大


2.14GB


的容量。


对于更大容量存储设备有 两个解


决方案,即将


FAT


增加到


32


位或者将驱动器分成多个区。




簇的概念




存储器分区




一个存储设备可以分成多个区


(



中 每个区看起来像单独的存储设



)


,每 个区有自己的目录和


FAT



大多数工 程师在自己的


PC


硬盘上


已经体验过多 分区,


通常仅有一个


硬盘的计算机具有


“C:”



“D:”


盘。





< br>便












MP3


播 放器都没有设计成采用存储器分区,而


PDA


是真正的计算机, 其文件系统程序是按分区来设计的。以数码相


机市场为例,


存储 器必须只有单个分区才能兼容。


对用户来说,


每个区有自己的逻 辑驱动器字母,


通常指定为驱动器


“C:”



“D:”


< br>“E:”


等。




FAT


兼容性




在一个兼容


FAT32


的主机里可以无缝使用


FAT16


存储设备,因为支 持


FAT32


的操作系统也支持


FAT 16


。唯一需要注


意的是在对


FAT1 6


设备重新格式化的时候,有些兼容


FAT32


的主机


(


如一些


PDA)


在没有特别选择下会默认为


FAT32


格式 。第一次对存储设备格式化时,必须认真观察提示以保证用的是


FAT16


格式,除非你的相机


/PDA/MP3


播放器支



FAT32





在一个兼容


FAT16


的主机里使用


FAT32


设备会有几个可能结果,最 普遍的是在显示屏上显示的


“CF


错误



指示。如果


4GB


的存储器在只兼容


FAT16


的主机里格式化,将可能不出现错误提示,但显示的 容量将为


2G


。通常,不同的程序


设计 工程师会采用不同的方法来处理这个问题,对于这个特例,其结果不是总可预测的。如果


4GB


设备是用


FAT16


来格式化, 就能在兼容


FAT32


的主机里对这个设备重新格式化,只要在 格式化期间规定了


FAT32


。这样,用户可以在


兼容


FAT32


的主机里恢复整个

< br>4GB


容量。




本文小结




由于相机和


MP3


播放器在处理多分区上有困难,


FAT32


是提供它们超过


2.14GB

< p>
存储容量的唯一途径。所以,有些公


司推出新的


4 GB


微驱动器在出厂前将采用


FAT32


格式化。为实现与更多设备的兼容,


2GB


的微驱动器将继续 使用


FAT16



其他容量超过


2GB



CF


设备必 须采用


FAT32



目前,

< p>
有几家公司已经在其相机和


MP3


播放器中支持< /p>


FAT32



现在多数有


CF


插槽的


PDA


都支持


FAT32


。如果你计划要购买一台新的数码相机或


MP3


播放器,最好能验证它是否


支持


FAT32


,以便将来与最新的


CF

< br>存储设备兼容。




FAT32


文件系统简介



Windows95 OSR2



Windows 98


开始支持


FAT32


文件系统, 它是对早期


DOS



FAT16


文件系统



的增强,由于文件系统的核心


--


文件分配表


FAT


16


位扩充为


32


位,所以称为


FAT32


文件系


统。在一逻辑盘(硬盘的一分区)超过



512


兆字节时使用这种格式,会更高效地存储数


< br>据,减少硬盘空间的浪费,一般还会使程序运行加快,使用的计算机系统资源更少,因此

< br>


是使用大容量硬盘存储文件的极有效的系统。本人对


W indows 98


下的


FAT32


文件系统做了



分析实验,总体上与< /p>


FAT16


文件系统变化不大,现将有关变化部分简介如下:







(一)


FAT32


文件系统将逻辑盘的空间划分为三部分,依次是引导区(


BOOT


区)


、文



件分配表区(< /p>


FAT


区)


、数据区(

< br>DATA


区)


。引导区和文件分配表区又合称为系统区。






(二)引导区从第一扇区开始,使用了三个扇区,保存了该逻辑盘每扇区字节数,每



簇对应的扇区数等等重要参数和引导记录。之后还留有若干保留扇区。 而


FAT16


文件系统的



引导区只占用一个扇区,没有保留扇区。







(三)文件分配表区共保存了两个相同的文件分配表,因为文件所占用的存储空间

< p>


(簇链)及空闲空间的管理都是通过


FAT


实现的,


FAT


如此重要,保存两个以便第 一个损坏



时,还有第二个可用。文件系统对数据区的存储空间 是按簇进行划分和管理的,簇是空间



分配和回收的基本单位, 即,一个文件总是占用若干个整簇,文件所使用的最后一簇剩余



的空间就不再使用,而是浪费掉了。





从统计学上讲,平均每个文件浪费


0 .5


簇的空间,簇越大,存储文件时空间浪费越多,



利用率越低。因此,簇的大小决定了该盘数据区的利用率。


FAT16< /p>


系统簇号用


16


位二进制数



表示,从


0002H


到< /p>


FFEFH


个可用簇号


(FFF0H



FFFFH


另有定义

,


用来表示坏簇,文件结束簇




)


,允许每一逻辑盘的数据区最多不超过


FFEDH(65518)


个簇。


FAT32


系统簇号改用


32


位二



进制数表示,大致从


00000002H



FFFFFEFFH


个可用簇号。


FA T


表按顺序依次记录了该盘各簇



的使用情况,是一种位示图法。





每簇的使用情况用


32


位二进制填写,未被分配的簇相应位置写零;坏簇相应位置填入


< p>
特定值;已分配的簇相应位置填入非零值,具体为:如果该簇是文件的最后一簇,填入的

< p>


值为


FFFFFF0FH


,如果该簇不是文件的最后一簇,填入的值为该文件占用的下一个簇的簇


< p>
号,这样,正好将文件占用的各簇构成一个簇链,保存在


FAT

< p>
表中。


0000000H



00000001H


两簇号不使用,其对应的两个


DWOR D


位置


(FAT


表开头的


8


个字节


)


用来存放该盘介 质类型编



号。


FAT


表的大小就由该逻辑盘数据区共有多少簇所决定,取整数个扇区。






(四)


FAT32


系统一簇对应


8

< p>
个逻辑相邻的扇区,理论上,这种用法所能管理的逻辑盘



容量上限为


16TB(16384GB)


,容量大于< /p>


16TB


时,可以用一簇对应


16


个扇区,依此类推。



FAT16

< p>
系统在逻辑盘容量介于


128MB



256MB


时,一簇对应


8


个扇区,容量介于


256MB



512 MB


时,一簇对应


16


个扇区,容量 介于


512MB



1GB


时,一簇对应


32


个扇区,容量介于


1GB



2GB


时,一簇对 应


32


个扇区,超出


2GB

< p>
的部分无法使用。显然,对于容量大于


512MB


的逻辑盘,



采用


FAT32


的簇比采用


FAT16


的簇小很多,大大减少了 空间的浪费。




< br>但是,对于容量小于


512MB


的盘,采用


FAT32


虽然一簇


8


个扇 区,比使用


FAT16


一簇


16




扇区,簇有所减小,但

< br>FAT32



FAT


表较大,占 用空间较多,总数据区被减少,两者相抵,



实际并不能增加有 效存储空间,所以微软建议对小于


512M


的逻辑盘不使用


FAT32






另外,对于使用


FAT16


文件系统的用户提一建议,硬盘分区时,不要将分区


(

< br>逻辑盘


)



< br>量正好设为某一区间的下限,例:将一逻辑盘容量设为


1100M(


稍大于


1024M)


,则使用时其

< br>


有效存储容量比分区为


950M


的一般还少,因其簇大一倍,浪费的空间较多。还有,使用



FDISK


等对分区指定容量时,由于对


1MB


的定义不一样


(


标准的二进制的


1MB



1048576B


,有



的系统将


1MB


理解为


1000000B



1000K B



),


及每个分区需从新磁道开始等 因素,实际分配的



容量可能稍大于指定的容量,亦需注意掌握。






(五) 根目录区(


ROOT


区)不再是固定区域、固定大小,可看作是 数据区的一部分。



因为根目录已改为根目录文件,采用与子目 录文件相同的管理方式,一般情况下从第二簇



开始使用,大小 视需要增加,因此根目录下的文件数目不再受最多


512


的限制 。


FAT16


文件


< br>系统的根目录区(


ROOT


区)是固定区域、固定大小的 ,是从


FAT


区之后紧接着的


32


个扇区,



最多保存


512


个目录项,作为系统区的一部分。






(六) 目录区中的目录项变化较多,一个目录项仍占


32


字节,可以是 文件目录项、子



目录项、卷标项


(< /p>


仅跟目录有


)


、已删除目录项、长文件名 目录项等。目录项中原来在


DOS




保留未用的


10


个字节都有了新的定义 ,全部


32


字节的定义如下:




(1) 0-- 7


字节



文件正名。




(2) 8--10


字节



文件扩展名。




(3) 11


字节


< br>文件属性,按二进制位定义,最高两位保留未用,


0


至< /p>


5


位分别是只读位、隐藏



位、系统位、卷标位、子目录位、归档位。




(4) 11-- 13


字节



仅长文件名目录项用,用来 存储其对应的短文件名目录项的文件名字节校



验和等。




(5) 13--15


字节



24


位二进制的文件建立时间,其中的高


5


位为小时,次


6


位为分钟。




(6) 16-- 17


字节



16


位二进制的文件建立日期,其中的高


7


位为相对于

< p>
1980


年的年份值,次


4

位为月份,后


5


位为月内日期。




(7) 18-- 19


字节



16


位二进制的文件最新访问日期,定义同


(6)




(8) 20-- 21


字节



起始簇号的高


16


位。



(9) 22 --23


字节



16

< br>位二进制的文件最新修改时间,其中的高


5


位为小时,次


6


位为分钟,后



5


位的二倍为秒数。




(10)24-- 25


字节



16


位二进制的文件最新修改日期,定义同


(6)




(11)26-- 27


字节



起始簇号的低


16


位。




(12)28--31


字节



32


位的文件字节长度。







其中第


(4)



( 8)


项为以后陆续定义的。



对于子目 录项,其


(12)


为零;已删除目录项的



首字节值为


E5H


。在可以使用长 文件名的


FAT32


系统中,文件目录项保存该文件的短文件< /p>



名,长文件名用若干个长文件名目录项保存,长文件名目录项倒 序排在文件短目录项前



面,全部是采用双字节内码保存的,每 一项最多保存十三个字符内码,首字节指明是长文



件名的第几 项


,11


字节一般为


0FH

< p>


12


字节指明类型,


1 3


字节为校验和,


26-- 27


字节为零。







(七)以前版本的



Windows



DOS




FAT32


不兼容,不能识别


FAT 32


分区,有些程序



也依赖于



FAT16


文件系统,不能和



FAT32


驱动器一道工作。将硬盘转换为



FAT32


,就不



能再用双引导运行以前版本的



Windows



Windows 95 [Version 4.00.950]



Windows NT



3.x



Windows NT 4.0




Windows 3.x







NTFS



FAT



FAT16



FAT32


的区别



(2010-01-27 19:10:44)


< p>
FAT16



FAT16


就是


FAT



以前用的


DOS



Windows 95


都使用


FAT16


文件系统,现在常用的

Windows 98/2000/XP


等系


统均支持


FAT16


文件系统。它最大可以管理大到


2GB


的分区,但每个分区最多只能有


65525


个簇(簇是磁盘空间的配


置单位)


。随着硬盘或分区 容量的增大,每个簇所占的空间将越来越大,从而导致硬盘空间的浪费。



FAT32


:随着大容量硬盘的出现,从


Windo ws 98


开始,


FAT32


开始流行 。它是


FAT16


的增强版本,可以支持大到

< br>2TB



2048GB)


的分区 。


FAT32


使用的簇比


FAT16< /p>


小,从而有效地节约了硬盘空间。


FAT32


FAT16


文件系统的派生,比



FAT16


支持更小的簇和更大的分区,这就使得



FAT32


分区的空间分配更有效率。


FAT32


主要应用于


Windows 98


及后



Windows


系统( 实际从未正式发布的


Windows


97

,即


OSR2


就开始支持了)


,它 可以增强磁盘性能并增加可用磁盘


空间,同时也支持长文件名。



NTFS



New Technology File System



:微软


Windows NT


内核的系列操作系统支持的、一个特别为网络和磁盘配额、文


件加密等管理安全特性设计的磁盘格式。它与旧的


FAT


文件 系统的主要区别是


NTFS


支持元数据(


metadata



,并且可


以利用 先进的数据结构提供更好的性能、稳定性和磁盘的利用率。随着以


NT

< br>为内核的


Windows


2000/XP


的普及,很


多个人用户开始用到了


NTFS



NTFS


也是以簇为单位来存储数据文件,但


NTFS


中簇的大小并不依赖于磁盘或分区的

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


NTFS


支持文件加密管理功能,可为


用户提供更高层次的安全 保证。


NTFS


有三个版本:



NT 3.51



NT 4

< br>中的


1.2


版,


Windows 2000


中的


3.0


版和


Windows


XP


中的


3.1


版。这些版本有时被提及为


4.0


版、


5.0


版和


5.1


版。更新的版本添加了额外的特性,比如


Windows

< br>2000


引入了配额。在兼容性方面,


Windows< /p>



95/98/98SE



Me


版都不能识别


NTFS


文件系统。





下面介绍每个文件系统与各种操作系统的兼容性


:


NTFS:


运行



Windows XP




Windows 2000


的计算机可以访问



NTFS


分区上的文件。运行带有



Service Pack 4


(或更


高版本)的



Windows NT 4.0


的计算机可能可以访问某些文件。其它操作系统则无法访问。



FAT:


可以通过



MS-DOS


、所有版本的



Windows



Windows NT



Windows 2000



Windows XP




OS/2


进行访问。



FAT32:


只能通过



Windows 95 OSR2



Windows 98




Windows Millennium Edition



Windows 2000



Windows XP


进行


访问。



下面是每个文件系统支持的磁盘和文件大小


:


NTFS:


推荐的最小容量大约为



10 MB


,也可使用大于



2 TB


的卷。无法在软盘上使用。文件大小只受卷的容量限制。



FAT:


容量可从软盘大小到



4 GB


。不支持域。最大文件大小为


2 GB




FAT32:


容量从



512 MB




2 TB


。在



Windows XP


中,只能格式化最多达



32 GB




FAT32


卷。不支持域。最大文件


大小为


4 GB






FAT32



NTFS


的区别



在推出


FAT32< /p>


文件系统之前,通常


PC


机使用的文件系 统是


FAT16


。像基于


MS- DOS



Win


95


等系统都采用了


FAT16


文件系统。在


Win 9X


下,


FAT16


支持的分区最大为


2GB


。我们知道计算机将信息保存在硬盘 上称为





的区域内。使


用的簇越小,保存信息的效率就越高。在


FAT1 6


的情况下,分区越大簇就相应的要增大,存储效率就越低,势必造成

< br>存储空间的浪费。并且随着计算机硬件和应用的不断提高,


FAT16

< p>
文件系统已不能很好地适应系统的要求。在这种情


况下,推出了增强的文件 系统


FAT32


。同


FAT16


相比,


FAT32


主要具有以下特点:



1.



FAT1 6


相比


FAT32


最大的优点是可以支 持的磁盘大小达到


2TB



2047G B



,但是不能支持小于


512MB< /p>


的分区。


基于


FAT32



Win 2000


可以支持分区最大为


32GB


;而基于



FAT16



Win 2000


支持的分区最大为


4GB


< br>


2.


由于采用了更小的簇,


FAT32


文件系统可以更有效率地保存信息。


如两个分区大小 都为


2GB



一个分区采用了


FAT16


文件系统,另一个分区采用了


FAT 32


文件系统。


采用


FAT16


的分区的簇大小为


32KB




FAT32


分区的簇只有


4 KB



大小。这样


FAT32


就比


FAT16


的存储效率要高很多,通常情况 下可以提高


15%




3. FAT32


文件系统可以重新定位根目录和使用


FAT


的备份副本。另外


FAT32

< p>
分区的启动记录被包含在一个含有关键数


据的结构中,减少了计算机系统崩 溃的可能性。



NTFS


文件系统


< br>NTFS


文件系统是一个基于安全性的文件系统,



Windows NT


所采用的独特的文件系统结构,


它是建立在保护文件和


目录数据基础上,同时照顾节省存储资源、减少磁盘占 用量的一种先进的文件系统。使用非常广泛的


Windows NT 4.0


采用的就是


NTFS 4.0


文 件系统,


相信它所带来的强大的系统安全性一定给广大用户留下了深刻的印象。


Win 2000


采用


了更新版本的

< p>
NTFS


文件系统


??NTFS 5.0


,它的推出使得用户不但可以像


Win 9X

< p>
那样方便快捷地操作和管理计算机,


同时也可享受到


NTFS


所带来的系统安全性。



NTFS 5.0


的特点主要体现在以下几个方面:



1.


NTFS


可以支持的分区


(


如果采用动态磁盘则称为卷


)


大小可以达到


2TB


。而


W in


2000


中的


FAT32


支持分区的大小最


大为


32GB




2. NTFS


是一个 可恢复的文件系统。在


NTFS


分区上用户很少需要运行磁盘修 复程序。


NTFS


通过使用标准的事物处理

日志和恢复技术来保证分区的一致性。


发生系统失败事件时,


NTFS


使用日志文件和检查点信息自动恢复文件系统的一


致 性。



3.


NTFS


支持对分区、文件夹和文件的压缩。任何基于


Windows

< br>的应用程序对


NTFS


分区上的压缩文件进行读写时不< /p>


需要事先由其他程序进行解压缩,当对文件进行读取时


,


文件将自动进行解压缩;文件关闭或保存时会自动对文件进行


压缩。



4.


NTFS


采用了更小的簇


,


可以更有效率地管理磁盘空间。在

< p>
Win


2000



FA T32


文件系统的情况下


,


分区大小在


2GB



8GB


时簇的大小为


4KB



分区大小在< /p>


8GB



16GB


时簇的大小为


8KB



分区大小在< /p>


16GB



32GB


,


簇的大小则达到了


16KB< /p>


。而


Win


2000

< br>的


NTFS


文件系统,当分区的大小在

< br>2GB


以下时


,


簇的大小都比相 应的


FAT32


簇小


;


当分区的大小



2GB


以上时


(2GB



2TB),


簇的大小都为


4KB


。相比之下,

NTFS


可以比


FAT32


更有效 地管理磁盘空间,最大限度地


避免了磁盘空间的浪费。



5.



NTFS

分区上


,


可以为共享资源、文件夹以及文件设置访问许可权 限。许可的设置包括两方面的内容:一是允许哪


些组或用户对文件夹、文件和共享资源进 行访问;二是获得访问许可的组或用户可以进行什么级别的访问。访问许可


权限的设置不 但适用于本地计算机的用户


,


同样也应用于通过网络的共享文件 夹对文件进行访问的网络用户。与


FAT32


文件系统下对文件 夹或文件进行访问相比,安全性要高得多。另外


,


在采用


NTFS


格式的


Win

2000



,


应用审核策略可


以对文件夹、文件以及活动目录对象进行审核,审核结果记录在安全日志中,通过安全日志就 可以查看哪些组或用户


对文件夹、文件或活动目录对象进行了什么级别的操作,从而发现 系统可能面临的非法访问


,


通过采取相应的措施,将

< p>
这种安全隐患减到最低。这些在


FAT32


文件系 统下


,


是不能实现的。



6.



Win 2000

< p>


NTFS


文件系统下可以进行磁盘配额管理。< /p>


磁盘配额就是管理员可以为用户所能使用的磁盘空间进行


配额限制 ,每一用户只能使用最大配额范围内的磁盘空间。设置磁盘配额后,可以对每一个用户的磁盘使用情况进行


跟踪和控制,通过监测可以标识出超过配额报警阈值和配额限制的用户,从而采取相应的措施。 磁盘配额管理功能的


提供,使得管理员可以方便合理地为用户分配存储资源,避免由于磁 盘空间使用的失控可能造成的系统崩溃,提高了


系统的安全性。



7. NTFS


使用一个


< p>
变更



日志来跟踪记录文件所发生的变更。



小提示


(


选取


FAT32



NTFS

的建议


)


在系统的安全性方面,


NTFS


文件系统具有很多


FAT32


文件系统所不具备的特点,而且基于


NTFS



Win 2000


运行要


快于基于

FAT32



Win 2000


;而在与


Win 9X


的兼容 性方面,


FAT32


优于


NTFS


。所以在决定


Win 2000


中采用什么 样


的文件系统时应从以下几点出发:



1.


计算机是单一的


Win 2000


系统,还是采用多启动的


Win 2000


系统;



2.


本地安装的磁盘的个数和容量;



3.


是否有安全性方面的考虑等。



基于以上的考虑,如果要在


Win 2000

< br>中使用大于


32GB


的分区的话,那么只能选择


NTFS


格式。如果计算机作为单机


使用,不需 要考虑安全性方面的问题,更多地注重与


Win


9X


的兼容性,那么


FAT32


是最好的选择。如果 计算机作为


网络工作站或更多的追求系统的安全性,而且可以在单一的

< br>Win


2000


模式下运行,强烈建议所有的分区都采 用


NTFS


格式;


如果要兼容以前的应 用,


需要安装


Win 9X


或其它的操 作系统,


建议做成多启动系统,


这就需要两个以上的分区,


一个分区采用


NTFS


格式,


另外的分区采用


FAT32


格式,

< br>同时为了获得最快的运行速度建议将


Win 2000


的 系统文件放


置在


NTFS


分区上,其它 的个人文件则放置在


FAT32


分区中



别让文件系统迷糊你


——


NTFS



FAT32


解析



经常使用电脑的用户一定经历过重装系统、重新分区、分区文件的一些转换这些操作,而 其中一定会遇到


NTFS



FAT32


问题,若不正确的选择或错误的分区,则会导致某些文件操作无法完成或出现兼容性的问 题,随着操作系统的


不断更新,


FAT32

逐渐走出历史的舞台,但许多刚接触电脑的用户一定常被这两种分区弄迷糊,今天小编就对

< br>NTFS



FAT32


两种形式 进行详细介绍,彻底将这两种形式存在的各种迷团揭开。



NT FS



FAT32


解析:




NTFS





NTFS


全称为:


New Technology File System




Windows NT


操作环境和


Windows NT


高级服务器网络操作系统环


境的文件系统,用来代替


FAT


文件系统,


NTFS


通过可恢复能力


(


事件跟踪


)


和热定 位的容错特征实现,增加功能性的一


个平台,并增加对


POSI X


需求的支持,消除


FAT



HPFS


文件系统中的限制。



NTFS


提供长文件名、


数据保护和恢复,

< p>
并通过目录和文件许可实现安全性,


NTFS


支持 大硬盘和在多个硬盘上存


储文件,


提供内置安全性特征,


控制文件的隶属关系和访问,



DOS


或其他操作系统上不能直接访问



NTFS< /p>


分区上的


文件。




FAT 32




FAT32

< br>实际上是文件分区表采取的一种形式,该标准的是相对于


FAT16


而言的,而最早的


FAT32


是在

< br>Windows95OSR2


中第一次出现的,


FAT3 2


能大限度的节约磁盘空间。在推出


FAT32


文件系统之前,通常


PC


机使用的

文件系统是


FAT16


,如基于


M S-DOS



Win


95

< p>
等系统都采用了


FAT16


文件系统,在


Win


9X


下,


FA T16


支持的分区最


大为


2GB


,文件在磁盘上是以簇的方式存放的,但簇里仅能存放一个文件,


FA T32


的优势就在于其能够将簇的大小控


制到最小,使用的簇越 小,这样在相同大小的盘符内


FAT32


的形式则能存放更多的 文件。




相比

FAT16



FAT32


有如下特 点:



1.



FAT16


相比


FAT32


最大的优点 是可以支持的磁盘大小达到


2TB



2 048GB



,但是不能支持小于


51 2MB


的分


区。


2.


由于采用了更小的簇,


FAT32

文件系统可以更有效率地保存信息。



32


文件系统可以重新定位根目录和使用


FAT


的备份副本 ,分区的启动记录被包含在一个含有关键数据的结


构中,减少了系统崩溃的可能性,保持 系统的稳定运行。





NTFS


相对

< br>FAT


的优点:



1.


具备错误预警系统





NTFS


分区中,最开始的


16


个扇区是分区引导扇区,


其中保存着分区引导代码,接着就是主文件表


(Master File


Table


,简称


MFT)


,如果其所在的磁盘扇区恰好出现损坏,


NTFS


文件 系统会比较智能地将


MFT


换到硬盘的其他扇区,


保证了文件系统的正常使用,确保了


Windows


的稳定运行,而以往的


FAT32


则只能固定在分区引导扇区的 后面,一旦


遇到扇区损坏,则会造成整个文件系统的瘫痪。






2.


高效读取速度


< br>对比


FAT32



NTFS


在文件的读取速度上更为高效,在


NTFS


文件系统中的文件属性可以分成常驻属性和非常驻


属性两类


:


①常驻属性



NTFS


中的常驻属性直接保存在


MFT


中,如文件名和相关时 间信息都属于常驻属性。



②非常驻属性



非常驻属性保存在


MFT


之外,使用一种复杂的索引方式来进行指示,导致读取速度相 对较慢。



系统中的多数常用文件都为


MFT


,熟悉系统的用户都应该知道


MFT

是随系统启动就会载入到内存中的,因此已


处于缓存状态的


MFT


文件则能高效的被用户访问,


NTFS

< br>的高效性也就得于此。




3.


磁盘修复功能


< br>NTFS


采用一种可修复的系统,可以对硬盘上的逻辑错误和物理错误进行自动侦 测和修复,在


FAT16



FAT32



代,用户需要借助


Scandisk


这个程序来标记磁盘上的坏扇区,但当发现错误时,数据往往已经被写在了坏的扇区上了 ,


损失已经造成。



NTFS


文件系统则彻底避免了这个问题,在每次读写时,其都会检查扇区正确与否,当读取时发现错误,


NTFS



报告这个错误,而当向磁盘 写文件时发现错误,


NTFS


会自动更换正常的位置存储数据, 操作不会受到任何影响,在这


两种情况下,


NTFS

< p>
都会在坏扇区上作标记,


协助用户进行各种处理,


这样的工作模式可以使磁盘错误可以较早地被发


现,避免灾难性的事故发生。

< p>



4.


事件日志功能


< br>在


NTFS


文件系统中,任何操作都被记录成为



事件



,这样的记录 方式相当于监督着整个操作,若操作过程中出


现断电、


死机等突 发性的状况,


NTFS


则可以在来电后重新完成刚才的事件,< /p>


事件日志的作用并不在于能直接挽回损失,


而在于其能够监督所有 事件,从而让系统明确完成了哪些任务,那些任务还没有完成,保证系统不会因为突发事件而

导致更大的损失,将各类文件、数据的安全性进一步提高。




5.


动态磁盘功能



动态磁盘是从


Windows 2000


时代开始的新特性,


Windows Server 2003


继续使用了这个相当棒的特性,相比基本


磁盘,其提供 更加灵活的管理和使用特性,用户可以在动态磁盘上实现数据的容错、高速的读写操作、相对随意的修

< p>
改卷大小等操作,而不能在基本磁盘上实现。



动 态磁盘没有卷数量的限制,只要磁盘空间允许,用户就可以在动态磁盘中任意建立卷,并可以将数块磁盘中的


空余磁盘空间扩展到同一个卷中来增大卷的容量,目前采用


NTFS


系统的磁盘读写速度均由硬件决定,并不存在任何


以往的软件瓶 颈问题,高端硬件的性能得到充分的发挥。




目前主流的文件系统为


NTFS


,但许多用户在电脑 的使用中也会遇到


FAT32


形式,通过小编上面的介绍,相信 对


于文件系统的


NTFS


< p>
FAT32


,大家都有了较明确的认识,对于两者之间的区别再不会迷糊。








FAT


文 件系统原理一


[



]


FAT


文件系统原理





——





1


分区表参数



文本结构索引:



图片表格索引:




2


扩展分区表项的内容




3 FAT32


分区


DBR


的位置划





4 FAT32


分区的


BPB


字段



一、硬盘的物理结构




1


硬盘的物理结构



二、硬盘的逻辑结构



3.1


MBR



三、


磁盘引




导原理



3.2








2 winhex


下的磁盘


MBR




3 winhex


给出的

< p>
MBR


参数的意



5 F AT32


分区的扩展


BPB












4


分区表类型标志




6 FAT16


分区上的

< p>
DBR


组成



4.1


4.1.1


FAT32


DBR






5


一个


4


分区的磁盘结构图示




7 FAT16


分区的


BPB


字段







4.1.2


FAT16


DBR






6


分区表链接图示




8 FAT16


分区的扩展


BPB






9


FAT16

分区大小与对因簇


大小



DBR



四、


FAT



区原理



4.2



于保


留扇区






7


磁盘的整体结构图示




8


winhex

< br>下的


FAT32


基本分区


DBR





11 FAT16


目录项的定义



4.3


FAT



和数据的存

< br>4.3.1


存储过程假想




9


winhex

< br>给出的图


8DBR


参数



12 FAT32


分区大小与对因簇


说明



大小



储原则



4.3.2 FAT16


存储原理




10 winhex


所截

< p>
FAT16


的文件分


配表




13 FAT


表的取值含义



4.3.3 FAT32


存储原理




4.3.11 Fat16


的组织形式




14 FAT32


短文件目录项的定





15 FAT32


长文件目录项的定




五、结束




4.3.12 Fat32


的组织形式





一、硬盘的物理结构:





硬盘存储数据是根据电、磁 转换原理实现的。硬盘由一个或几个表面镀有磁性物质的金属或玻璃等物质盘片以及盘


片 两面所安装的磁头和相应的控制电路组成


(


< br>1)


,其中盘片和磁头密封在无尘的金属壳中。



硬盘工作时,盘片以设计转速高速旋转,设置在盘片表面的磁头则在电路控制下径向移动到指定 位置然后将数据存储


或读取出来。当系统向硬盘写入数据时,磁头中


写数据



电流产生磁场使盘片表 面磁性物质状态发生改变,并在写电


流磁场消失后仍能保持,这样数据就存储下来了;当 系统从硬盘中读数据时,磁头经过盘片指定区域,盘片表面磁场


使磁头产生感应电流或线 圈阻抗产生变化,经相关电路处理后还原成数据。因此只要能将盘片表面处理得更平滑、磁


头设计得更精密以及尽量提高盘片旋转速度,就能造出容量更大、读写数据速度更快的硬盘。这是因为盘片表面 处理


越平、转速越快就能越使磁头离盘片表面越近,提高读、写灵敏度和速度;磁头设计 越小越精密就能使磁头在盘片上


占用空间越小,使磁头在一张盘片上建立更多的磁道以存 储更多的数据。



[


返回索引


]



二、硬盘的逻辑结构。





硬盘由很多盘片


(platter)


组成,每个盘片的每个面都有一个读写磁头。如果有


N


个盘片。就有


2N


个面,对应

< br>2N



磁头


(Heads)


,从


0



1



2


开始编号。每个盘片被划分成若干个同心 圆磁道


(


逻辑上的,是不可见的。


)< /p>


每个盘片的划分


规则通常是一样的。这样每个盘片的半径均为固定 值


R


的同心圆再逻辑上形成了一个以电机主轴为轴的柱面


(Cylinders)



从外至里编号为< /p>


0



1



2……


每个盘片上的每个磁道又被划分为几十个扇区

< br>(Sector)



通常的容量是


512byte



并按照一定规则编号为

1



2



3……


形成


Cylinders×


He ads×


Sector


个扇区。这三个参数即是硬盘的物理参数 。我们下面


的很多实践需要深刻理解这三个参数的意义。



[


返回索引


]



三、磁盘引导原理。





3.1 MBR(master boot record)


扇区:





计算机在按下


power

< p>
键以后,开始执行主板


bios


程序。进行完一系 列检测和配置以后。开始按


bios


中设定的系统引

< p>
导顺序引导系统。假定现在是硬盘。


Bios


执行 完自己的程序后如何把执行权交给硬盘呢。交给硬盘后又执行存储在哪


里的程序呢。其实 ,


称为


mbr


的一段代码起着举足轻重 的作用。


MBR(master boot record),


即主引导记录,有时也称主引


导扇区。


位于整个硬盘的


0


柱面


0


磁头


1


扇区


(


可以看作是硬 盘的第一个扇区


)



bios


在执行自己固有的程序以后就会


jump



mbr


中的第一条指令。将系统的控制权交由


mbr


来执行。在总共


512byte


的主引导记录中,


MBR


的引导程序占了其

< br>中的前


446


个字节


(


偏移


0H~


偏移


1BD H)


,随后的


64


个字节


(


偏移


1BEH~


偏移


1FDH)



DPT(Disk


PartitionTable


,硬盘


分区表< /p>


)


,最后的两个字节


“55 AA”(< /p>


偏移


1FEH~


偏移

1FFH)


是分区有效结束标志。




MBR


不随操作系统的不同而 不同,


意即不同的操作系统可能会存在相同的


MBR

< p>


即使不同,


MBR


也不 会夹带操作


系统的性质。具有公共引导的特性。



我们来分析一段


mbr


。下面是用

< br>winhex


查看的一块希捷


120GB


硬盘的


mbr





[


返回索引


]




你的硬盘的


MBR


引导代码可能并非这样。不过即使不同,所执行的功能大体是一样的。


这是< /p>


wowocock


关于磁盘


mbr


的反编译


,已加了详细的注释,感兴趣可以细细研究一下。

< p>



我们看


DPT


部分。操作系统为了便于用户对磁盘的管理。加入了磁盘分区的概念。即将一块磁盘逻辑 划分为几块。


磁盘分区数目的多少只受限于


C

< br>~


Z


的英文字母的数目,在上图


DPT



64


个字节中如何表示多个分 区的属性



?microsoft


通过 链接的方法解决了这个问题。在


DPT



64


个字节中,以


16


个字节为分区 表项单位描述一个分区的


属性。也就是说,第一个分区表项描述一个分区的属性,一般为 基本分区。第二个分区表项描述除基本分区外的其余


空间,一般而言,就是我们所说的扩 展分区。这部分的大体说明见表


1






1



2


分区表第一字段



字节位移



字段长




字段名和定义






引导指示符


(Boot


0x01BE



BYTE



0x80



Indicator)


指明该分区


是否是活动分区。



0x01BF



BYTE



0x01



开始磁头


(Starting Head)



开始扇区


(Starting


Sector)


只用了


0~5


位。


0x01C0



6




0x01



后面的两位


(



6


位和第


7



)


被开始柱面字段所


使用



开始柱面


(Starting


Cylinder)


除了开始扇


区字段的最后两位外,


0x01C1



10




0x00



还使用了

< br>1


位来组成该


柱面值。开始柱面是一


10


位数,最大值为


1023< /p>



系统


ID(System ID)



0x01C2



BYTE



0x07



义了分区的类型,详细


定义,请参阅图


4



0x01C3



BYTE



0xFE



结束磁头


(Ending Head)



结束扇区


(Ending


0x01C4



6




0xFF



Sector)


只使用了


0~5


位。

< br>最后两位


(



6



7



)

被结束柱面字段所使用



结束柱面


(Ending


Cylinder)


除了结束扇区


字 段最后的两位外,还


0x01C5



10




0x7B



使用了

1


位,以组成该


柱面值。结束柱面是一


10


位的数,最大值为


1023



相对扇区数


(Relative


0x01C6



DWORD



0x0000003F



Sectors)


从该磁盘的开


始到 该分区的开始的位


移量,以扇区来计算



总扇区数


(Total Sectors)


该分区中的扇区总数



0x01CA



DWORD



0x00DAA83D




[


返回索引


]



注:上表中的超过


1


字节的数据都以实 际数据显示,就是按高位到地位的方式显示。存储时是按低位到高位存储的。


两者表现不 同,请仔细看清楚。以后出现的表,图均同。



也可以在


winhex


中看到这些参数的意义:




[


返回索引


]





说明:每个分区表项占用< /p>


16


个字节,假定偏移地址从


0


开始。如图


3


的分区表项


3


。分区表项


4


同分区表项


3





1



0H


偏移为活动 分区是否标志,只能选


00H



80H



80H


为活动,

00H


为非活动。其余值对


microsoft

< p>
而言为非法


值。




2



重新说明一下

(


这个非常重要


)



大于


1


个字节的数被以低字节在前的存储格式格式< /p>


(little endian format)


或称反字节


顺序保存下来。低字节在前的格式是一种保存数的方法,这样,最低位的字节最先出现在十六 进制数符号中。例如,


相对扇区数字段的值


0x3F00000 0


的低字节在前表示为


0x0000003F

< br>。这个低字节在前的格式数的十进制数为


63





3


、系统在 分区时,各分区都不允许跨柱面,即均以柱面为单位,这就是通常所说的分区粒度。有时候我们分区是输


入分区的大小为


7000M


< br>分出来却是


6997M



就是这 个原因。


偏移


2H


和偏移


6H


的扇区和柱面参数中


,


扇区占


6



(bit)



柱面占


10



(bit)



以偏移


6H< /p>


为例,


其低


6


位 用作扇区数的二进制表示。


其高两位做柱面数


10


位中的高两位,


偏移


7H


组 成的


8


位做柱面数


10


位中的低


8


位。由此可知,实际上用这种方式表示的分 区容量是有限的,柱面和磁头从


0


开始


编号


,


扇区从


1


开始编号


,


所以最多只能表示


102 4


个柱面


×


63


个扇区


×


256


个磁头


×


512byte=8455716864byte


。即通常的


8.4GB(


实际上应该是


7.8GB


左右


)


限制。实际上磁头数 通常只用到


255



(


由汇编语言的寻址寄存器决定


),


即使把这

< p>
3



字节按线性寻址,依然力不从心。在后来的操 作系统中,超过


8.4GB


的分区其实已经不通过


C/H/S


的方式寻址了。而


是通过偏移

< p>
CH


~偏移


FH



4


个字节


32


位线性 扇区地址来表示分区所占用的扇区总数。可知通过


4


个字节可以 表示


2^32


个扇区,



2TB=2048GB



目前对于大多数计算机而言 ,


这已经是个天文数字了。


在未超过


8 .4GB


的分区上,


C/H/S


的表示 方法和线性扇区的表示方法所表示的分区大小是一致的。也就是说,两种表示方法是协调的。即使不协调,也


以线性寻址为准。


(


可能在某些系统中会提 示出错


)



超过


8.4GB


的分区结束


C/H/S


一 般填充为


FEH FFH FFH




C/H/S


所能表示的最大值。有时候也会用柱面对

< p>
1024


的模来填充。不过这几个字节是什么其实都无关紧要了。




虽然现在的系统均采用线性寻址的方 式来处理分区的大小。但不可跨柱面的原则依然没变。本分区的扇区总数加上


与前一分区 之间的保留扇区数目依然必须是柱面容量的整数倍。


(


保留扇区 中的第一个扇区就是存放分区表的


MBR


虚拟


MBR


的扇区,


分区的扇区总 数在线性表示方式上是不计入保留扇区的。


如果是第一个分区,


保留扇区是本分区前


的所有扇区。




附:分区表类型标志如图


4



3.2


扩展分区:





扩展分区中的每个逻辑驱动 器都存在一个类似于


MBR


的扩展引导记录

( Extended Boot Record, EBR)


< br>也有人称之为


虚拟


mbr


或扩展


mbr


,意思是一样的。扩展引导记录包括一个扩展分区表和该 扇区的标签。扩展引导记录将记录只包


含扩展分区中每个逻辑驱动器的第一个柱面的第一 面的信息。一个逻辑驱动器中的引导扇区一般位于相对扇区


32



63


。但是,如果磁盘上没有扩展分区,那么就不会有扩展引 导记录和逻辑驱动器。第一个逻辑驱动器的扩展分区表中


的第一项指向它自身的引导扇区 。第二项指向下一个逻辑驱动器的


EBR


。如果不存在进一步的 逻辑驱动器,第二项就


不会使用,而且被记录成一系列零。如果有附加的逻辑驱动器,那 么第二个逻辑驱动器的扩展分区表的第一项会指向


它本身的引导扇区。第二个逻辑驱动器 的扩展分区表的第二项指向下一个逻辑驱动器的


EBR


。扩展分 区表的第三项和


第四项永远都不会被使用。




通过一幅


4

< br>分区的磁盘结构图可以看到磁盘的大致组织形式。如图


5





[


返回索引


]






关于扩展分区,如图


6


所示,扩展分区中逻辑驱动器的扩展引导 记录是一个连接表。该图显示了一个扩展分区上的


三个逻辑驱动器,说明了前面的逻辑驱 动器和最后一个逻辑驱动器之间在扩展分区表中的差异。




[


返回索引


]




除了扩展分区上最后一个逻辑驱动器外,表

< p>
2


中所描述的扩展分区表的格式在每个逻辑驱动器中都是重复的:第一


个项标识了逻辑驱动器本身的引导扇区,第二个项标识了下一个逻辑驱动器的


EBR


。最后一个逻辑驱动器的扩展分区


表只会列出它 本身的分区项。最后一个扩展分区表的第二个项到第四个项被使用。






2


扩展分区表项的内容



扩展分区表项



分区表项的内容



包括数据的开始地址 在内的与扩展分区


第一个项



中当前逻辑驱动器有关的信息



有关扩 展分区中的下一个逻辑驱动器的


信息,包括包含下一个逻辑驱动器的

第二个项



EBR


的扇区的地址。 如果不存在进一步


的逻辑驱动器的话,该字段不会被使用



第三个项



第四个项



未用



未用



[


返回索引


]




扩展分区表项中的相对扇区数字段所显示的是从扩展分 区开始到逻辑驱动器中第一个扇区的位移的字节数。总扇区


数字段中的数是指组成该逻辑 驱动器的扇区数目。总扇区数字段的值等于从扩展分区表项所定义的引导扇区到逻辑驱


动 器末尾的扇区数。




有时候在 磁盘的末尾会有剩余空间,剩余空间是什么呢?我们前面说到,分区是以


1


柱面的容量为分区粒度的,那


么如果磁盘总空间不是整数个柱面的话,不够一 个柱面的剩下的空间就是剩余空间了,这部分空间并不参与分区,所


以一般无法利用。照 道理说,磁盘的物理模式决定了磁盘的总容量就应该是整数个柱面的容量,为什么会有不够一个

< br>柱面的空间呢。在我的理解看来,本来现在的磁盘为了更大的利用空间,一般在物理上并不是按照外围的扇 区大于里


圈的扇区这种管理方式,只是为了与操作系统兼容而抽象出来

< br>CHS


。可能其实际空间容量不一定正好为整数个柱面的


容量吧。关于这点,如有高见,请告知




zymail@




FAT


文件系统原理二


[



]



四、


FAT

分区原理。



先来一幅结构图:


-


-


-


-


-


-


-


-



本文更新与2021-02-14 03:25,由作者提供,不代表本网站立场,转载请注明出处:https://www.bjmy2z.cn/gaokao/654433.html

FAt32 文档的相关文章