📄 fat文件系统的组织结构(zt)(午夜听风).htm
字号:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<!-- saved from url=(0036)http://www.mcu51.com/list.asp?id=619 -->
<HTML><HEAD><TITLE>FAT文件系统的组织结构(zt)(午夜听风)</TITLE>
<META content="text/html; charset=gb2312" http-equiv=Content-Type><LINK
href="FAT文件系统的组织结构(zt)(午夜听风).files/style.css" rel=stylesheet>
<META content="MSHTML 5.00.2920.0" name=GENERATOR></HEAD>
<BODY>
<DIV align=center>
<CENTER></CENTER></DIV>
<DIV align=center>
<CENTER>
<TABLE border=1 borderColorDark=#ffffff borderColorLight=#000000 cellPadding=0
cellSpacing=0 width="97%">
<TBODY>
<TR>
<TD bgColor=#d0d0d0 width="100%">
<P align=center>文章编号:619----加入日期:2003-9-9 </P></TD></TR>
<TR>
<TD width="100%">
<P align=right><A href="javascript:self.close()">『关闭窗口』</A></P></TD></TR>
<TR>
<TD width="100%">
<P align=center><B>FAT文件系统的组织结构(zt)(午夜听风)</B></P></TD></TR>
<TR>
<TD width="100%">
<BLOCKQUOTE><BR>FAT文件系统的组织结构 <BR><BR>1.
软盘数据的逻辑存储<BR>软盘无须低级格式化和分区操作,只需用FORMAT命令做高级格式化即可。经过格式化操作之<BR>后,系统将在软磁盘上建立以下的数据结构:<BR>(1)
引导记录(DBR):位于0面0道1扇区,说明磁盘结构信息。<BR>(2)
文件分配表(FAT):用于记录磁盘空间的分配情况,指示硬盘数据信息存<BR>放的柱面及扇区的信息指针。其表项可以是以下四种表示方式之一:<BR>A.一个数字,代表指向另一个簇的指针。<BR>B.数字0,表示一个未使用的簇<BR>C.一个坏扇区标记<BR>D.文件结束标记符EOF<BR>(3)
文件根目录表FDT:一个指示以存入数据信息的索引。记录磁盘上存储文<BR>件的大小,位置,日期和时间等数据。<BR>(4)
数据区:存放数据信息。<BR>2.
硬盘中的数据组织<BR>刚刚从厂商处购来的新硬盘既无任何数据,也不能写入任何数据,必须先进行低级格<BR>式化,FDISK分区,FORMAT高级格式化后方可使用。对硬盘的这一系列初始化工作,称之为<BR>硬盘准备。过程如下:<BR>低级格式化---------------FDISK分区-------------------FORMAT高级格式化<BR>(1)低级格式化:对硬盘划分磁道和扇区,在扇区的地址域上标注地址信息,并剔出坏磁<BR>道。<BR>(2)FDISK:允许整个物理硬盘在逻辑上划分成多个分区(最多4个),以实现多个操作系<BR>统共享硬盘空间。如果将整个物理盘全部划归DOS/WINDOWS管理,则FDISK分区的作用是将一<BR>个物理盘划分一个主分区和一个扩展分区,然后再将扩展分区划分成一个或多个逻辑盘。在<BR>硬盘上建立分区表的同时,FDISK把主引导记录MBR写到硬盘的主引导记录(柱面0,磁头0,<BR>扇区1),并激活一个用户指定的分区。<BR>(3)FORMAT:在DOS分区空间划分逻辑扇区,生成DOS引导扇区(即逻辑0扇区)DBR,文件<BR>分配表FAT和根文件目录表FDT。<BR>硬盘在DOS/WINDOWS的管理下,数据信息由MBR,DBR,FAT,FDT和数据区5<BR>个部分组成。与软盘的数据结构相比较,硬盘多了一个数据区MBR(Master
Boot
<BR>Record)。<BR>MBR称为硬盘主引导记录。它是由FDISK建立在硬盘柱面0,磁头0,扇区1的硬盘引导记录数<BR>据区,用于硬盘启动时将系统控制权转给用户指定的,并在分区表中登记了的某个操作系统<BR>区。<BR>MBR DBR FAT1 FAT2 根目录 数据区 <BR>MBR位于0柱,0头,1扇区
DBR从逻辑0扇区开始<BR>FAT1从逻辑1扇区开始
<BR>硬盘FAT32文件系统的数据组织结构:<BR>MBR DBR DBR副本 保留扇区 FAT1 FAT2 根目录FDT 数据区 <BR>MBR位于0柱,0头,1扇区
DBR从逻辑0扇区开始<BR>DBR副本从逻辑6扇区开始 FAT1从逻辑32扇区开始
<BR> 硬盘的数据区结构与软盘相比较有两点主要区别:<BR>(1) 多了一个独立于操作系统的MBR<BR>(2)
硬盘的FAT1,FAT2和根目录FDT的大小及起止扇区并不固定,它于逻辑盘的容量有<BR>关。<BR>虽然硬盘的FAT1,FAT2和根目录FDT表的大小与起始扇区号和逻辑盘的容量有关。但是,根<BR>目录FDT的大小总为32个扇区。;<BR>二、硬盘主引导记录(DBR)及其结构<BR>硬盘的0柱面,0磁头,1扇区称为主引导扇区,FDISK程序写到该扇区的内容称为主引导记录<BR>(MBR)。该记录占用512个字节,它用于硬盘启动时将系统控制权转给用户指定的,并在分<BR>区表中登记了某个操作系统分区。<BR>主引导记录记录磁盘最重要的结构信息。主引导记录是硬磁盘作分区时建立的(Fdisk)。主<BR>引导记录包括一小段执行代码(主引导代码)、磁盘特征和硬盘分区表。主引导记录(以及后<BR>面介绍的引导扇区)结束的两个字节必须是引导自举标记0x55AA。<BR>磁盘特征位于0x01B8,
指定磁盘操作系统。<BR>软盘无主引导记录。软盘的第一个扇区是引导扇区。虽然每个硬盘包含一个主引导记录,
只<BR>有其拥有活动主分区时才用主引导代码。<BR>主引导代码实现下列功能:<BR>* 扫描分区表查找活动分区;<BR>*
寻找活动分区的起始扇区;<BR>* 将活动分区的引导扇区读到内存;<BR>* 执行引导扇区的运行代码。<BR>* 如果主引导代码未完成这些功能,
系统显示下列错误信息:<BR>* Invalid partition table<BR>* Error loading operating
system<BR>* Missing operating system<BR>1.
MBR的读取<BR>硬盘的引导记录(MBR)是不属于任何一个操作系统,也不能用操作系统提供的磁盘操作命<BR>令来读取它。<BR>2.
MBR的组成<BR>一个扇区的硬盘主引导记录MBR由4个部分组成:<BR>(1)主引导程序(偏移地址0000H~0088H),它负责从活动分区中装载并运行系统引导程<BR>序。
<BR>(2)出错信息数据区偏移地址(0089~00E1为出错信息,10E2H~10BD全为0字节)<BR>(3)分区表(DPT,Disk
Partition
Table).含4个分区项偏移地址01BEH~01FDH,每个<BR>分区表项长16个字节,共64字节为分区项1,分区项2,分区项3,分区项4).其中,加下划线的16<BR>个字节数据就是分区项1(即主分区)的参数.<BR>(4)结束标志偏移地址(01EFH~01FFH的两个字节值为结束标志55AA,如果该标志错误系统就<BR>不能启动).<BR>3.
MBR中的分区信息结构<BR>占用512个字节的MBR中,偏移地址01BEH~01FDH的64个字节,为4个分区项内容(分区信息<BR>表)。它是由磁盘介质类型及用户在使用FDISK定义分区时确定的。在实际应用中FDISK对一<BR>个硬盘划分的主分区可少于4个,但最多不少于4个。每个分区表的项目是16个字节。<BR>4.
主要功能及其工作流程<BR>启动PC机时,系统首先对硬件设备进行测试,成功后进入自举程序INT
19H。然后读系统磁<BR>盘0柱面,0磁头,1扇区的主引导记录MBR内容到内存指定单元0:7C00首址开始的区域,并<BR>执行MBR程序段。<BR>硬盘的引导记录是不属于任何一个操作系统的,它先于所有的操作系统而被调入内存并发挥<BR>作用,然后才将控制权交给主分区内的操作系统,并让主分区信息表来管理硬盘。<BR>MBR程序段的主要功能如下:<BR>(1)
检查硬盘分区表是否完好<BR>(2) 在分区表中寻找可引导的活动分区<BR>(3)
将活动分区的第一逻辑扇区内容装入内存。在DOS/WINDOWS分区中,此扇区内容称为<BR>DOS引导记录。<BR>三、引导记录及其结构<BR>磁盘的逻辑0扇区都称为DOS引导扇区,又称为BOOT区。我们可以用DEBUG中的L命令读出DBR<BR>扇区的内容。在DEBUG中,L命令的格式是:<BR>-L
内存缓冲区地址,盘号, 起始扇区号, 要读取的扇区数
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -