FAT文件系统的组织结构

FAT文件系统的组织结构

1. 软盘数据的逻辑存储
软盘无须低级格式化和分区操作,只需用FORMAT命令做高级格式化即可。经过格式化操作之
后,系统将在软磁盘上建立以下的数据结构:
(1) 引导记录(DBR):位于0面0道1扇区,说明磁盘结构信息。
(2) 文件分配表(FAT):用于记录磁盘空间的分配情况,指示硬盘数据信息存
放的柱面及扇区的信息指针。其表项可以是以下四种表示方式之一:
A.一个数字,代表指向另一个簇的指针。
B.数字0,表示一个未使用的簇
C.一个坏扇区标记
D.文件结束标记符EOF
(3) 文件根目录表FDT:一个指示以存入数据信息的索引。记录磁盘上存储文
件的大小,位置,日期和时间等数据。
(4) 数据区:存放数据信息。
2. 硬盘中的数据组织
刚刚从厂商处购来的新硬盘既无任何数据,也不能写入任何数据,必须先进行低级格
式化,FDISK分区,FORMAT高级格式化后方可使用。对硬盘的这一系列初始化工作,称之为
硬盘准备。过程如下:
低级格式化---------------FDISK分区-------------------FORMAT高级格式化
(1)低级格式化:对硬盘划分磁道和扇区,在扇区的地址域上标注地址信息,并剔出坏磁
道。
(2)FDISK:允许整个物理硬盘在逻辑上划分成多个分区(最多4个),以实现多个操作系
统共享硬盘空间。如果将整个物理盘全部划归DOS/WINDOWS管理,则FDISK分区的作用是将一
个物理盘划分一个主分区和一个扩展分区,然后再将扩展分区划分成一个或多个逻辑盘。在
硬盘上建立分区表的同时,FDISK把主引导记录MBR写到硬盘的主引导记录(柱面0,磁头0,
扇区1),并激活一个用户指定的分区。
(3)FORMAT:在DOS分区空间划分逻辑扇区,生成DOS引导扇区(即逻辑0扇区)DBR,文件
分配表FAT和根文件目录表FDT。
硬盘在DOS/WINDOWS的管理下,数据信息由MBR,DBR,FAT,FDT和数据区5
个部分组成。与软盘的数据结构相比较,硬盘多了一个数据区MBR(Master Boot
Record)。
MBR称为硬盘主引导记录。它是由FDISK建立在硬盘柱面0,磁头0,扇区1的硬盘引导记录数
据区,用于硬盘启动时将系统控制权转给用户指定的,并在分区表中登记了的某个操作系统
区。
MBR DBR FAT1 FAT2 根目录 数据区
MBR位于0柱,0头,1扇区 DBR从逻辑0扇区开始
FAT1从逻辑1扇区开始
硬盘FAT32文件系统的数据组织结构:
MBR DBR DBR副本 保留扇区 FAT1 FAT2 根目录FDT 数据区
MBR位于0柱,0头,1扇区 DBR从逻辑0扇区开始
DBR副本从逻辑6扇区开始 FAT1从逻辑32扇区开始
   硬盘的数据区结构与软盘相比较有两点主要区别:
(1) 多了一个独立于操作系统的MBR
(2) 硬盘的FAT1,FAT2和根目录FDT的大小及起止扇区并不固定,它于逻辑盘的容量有
关。
虽然硬盘的FAT1,FAT2和根目录FDT表的大小与起始扇区号和逻辑盘的容量有关。但是,根
目录FDT的大小总为32个扇区。;
二、硬盘主引导记录(DBR)及其结构
硬盘的0柱面,0磁头,1扇区称为主引导扇区,FDISK程序写到该扇区的内容称为主引导记录
(MBR)。该记录占用512个字节,它用于硬盘启动时将系统控制权转给用户指定的,并在分
区表中登记了某个操作系统分区。
主引导记录记录磁盘最重要的结构信息。主引导记录是硬磁盘作分区时建立的(Fdisk)。主
引导记录包括一小段执行代码(主引导代码)、磁盘特征和硬盘分区表。主引导记录(以及后
面介绍的引导扇区)结束的两个字节必须是引导自举标记0x55AA。
磁盘特征位于0x01B8, 指定磁盘操作系统。
软盘无主引导记录。软盘的第一个扇区是引导扇区。虽然每个硬盘包含一个主引导记录, 只
有其拥有活动主分区时才用主引导代码。
主引导代码实现下列功能:
* 扫描分区表查找活动分区;
* 寻找活动分区的起始扇区;
* 将活动分区的引导扇区读到内存;
* 执行引导扇区的运行代码。
* 如果主引导代码未完成这些功能, 系统显示下列错误信息:
* Invalid partition table
* Error loading operating system
* Missing operating system
1. MBR的读取
硬盘的引导记录(MBR)是不属于任何一个操作系统,也不能用操作系统提供的磁盘操作命
令来读取它。
2. MBR的组成
一个扇区的硬盘主引导记录MBR由4个部分组成:
(1)主引导程序(偏移地址0000H~0088H),它负责从活动分区中装载并运行系统引导程
序。
(2)出错信息数据区偏移地址(0089~00E1为出错信息,10E2H~10BD全为0字节)
(3)分区表(DPT,Disk Partition Table).含4个分区项偏移地址01BEH~01FDH,每个
分区表项长16个字节,共64字节为分区项1,分区项2,分区项3,分区项4).其中,加下划线的16
个字节数据就是分区项1(即主分区)的参数.
(4)结束标志偏移地址(01EFH~01FFH的两个字节值为结束标志55AA,如果该标志错误系统就
不能启动).
3. MBR中的分区信息结构
占用512个字节的MBR中,偏移地址01BEH~01FDH的64个字节,为4个分区项内容(分区信息
表)。它是由磁盘介质类型及用户在使用FDISK定义分区时确定的。在实际应用中FDISK对一
个硬盘划分的主分区可少于4个,但最多不少于4个。每个分区表的项目是16个字节。
4. 主要功能及其工作流程
启动PC机时,系统首先对硬件设备进行测试,成功后进入自举程序INT 19H。然后读系统磁
盘0柱面,0磁头,1扇区的主引导记录MBR内容到内存指定单元0:7C00首址开始的区域,并
执行MBR程序段。
硬盘的引导记录是不属于任何一个操作系统的,它先于所有的操作系统而被调入内存并发挥
作用,然后才将控制权交给主分区内的操作系统,并让主分区信息表来管理硬盘。
MBR程序段的主要功能如下:
(1) 检查硬盘分区表是否完好
(2) 在分区表中寻找可引导的活动分区
(3) 将活动分区的第一逻辑扇区内容装入内存。在DOS/WINDOWS分区中,此扇区内容称为
DOS引导记录。
三、引导记录及其结构
磁盘的逻辑0扇区都称为DOS引导扇区,又称为BOOT区。我们可以用DEBUG中的L命令读出DBR
扇区的内容。在DEBUG中,L命令的格式是:
-L 内存缓冲区地址,盘号, 起始扇区号, 要读取的扇区数 回车其中,磁盘A,B,C,D,
E…..的盘号分别为0,1,2,3,4…….
例如,进入DEBUG后,将D盘DBR扇区的读入内存CS:100的命令为:-L 100,3,0,1 回车
1. DBR扇区的结构
经由FORMAT高级格式化写到该扇区的内容成为DOS引导记录DBR,其主要功能是完成
DOS/WINDOWS系统的自举。以FAT16的硬盘DBR为例,它由以下5个部分组成:
(1) 跳转指令,占用3个字节的跳转指令将跳至引导代码,其内容随DOS版本变化。
(2) 厂商标识和DOS版本号。该部分总共占用8个字节,其内容随DOS版本而不同。
(3) BPB(BIOS Paramenter Block, BIOS参数块)。BPB从第12字节起占用19个字节。
(4) DOS引导程序。DOS引导程序既是占用480字节的BOOT代码,负责完成DOS的3个系统文
件的装入工作。这部分内容随DOS版本不同而变化。
(5) 结束标志字,结束标志占用2个字节,其值为AA55。
以上5个部分共占用512个字节也正好是一个扇区,因此,称它DOS引导扇区或BOOT区。在该
区间的内容中,除了第5部分结束标志字是固定不变之外,其余4个部分都是不确定的,第
1,2,4部分都因DOS版本的不同而不同,第三部分的内容也将随DOS版本及硬盘的逻辑盘参
数的变化而变化。
DOS引导记录中的BPB参数块从第12(0BH)字节起占用21个字节,这是磁盘的重要参数区。
保留扇区:由操作系统指定的被保留用作引导区的扇区数。
介质描述:向操作系统提供的所用磁盘的性质。介质描述的值是DOS所能识别的十六进制
数,不同的介质具有不同的介质描述值。硬盘的介质描述符为"F8"。
隐含扇区数:一般用于硬盘分区,所以在软盘中该值为0,在硬盘分区中,它表示从磁盘起
始扇区至当前分区之前的总扇区数。
硬盘的每一个分区都是一个独立的"逻辑驱动器",DOS将每个分区都视为一个从0开始的连续
扇区块。每个分区的隐含扇区取决于该分区以前的扇区总数。一般来说,分区1的隐含扇区
数为17。
DBR的主要功能:
DOS/windows系统在引导的时候,DBR是第一个(除硬盘的MBR之外)需装载的程序段。DBR装
入内存后,即开始执行该引导程序段,其主要任务是装载DOS的系统隐藏文件IO.SYS。
DBR程序段所完成的主要任务如下:
(1) 重新设置引导驱动器
(2) 将根目录的第一个扇区(即根目录FDT中的前16个文件项)装载到内存;
(3) 检查FDT中的前两个文件是否DOS的两个系统隐藏文件。
(4) 将其中一个系统隐藏文件IO.SYS装载到内存。
(5) 将控制权交给该系统隐藏文件IO.SYS。
四,文件分配表FAT
   文件分配表FAT(File Allocation Tabel)是文件管理系统用来给每个文件分配磁盘物理
空间的表格,它告诉操作系统,文件存放在磁盘什么地方。
   文件分配表型文件系统是微软操作系统最传统和应用最广的文件系统。标准的 FAT 使
用 16 位寻址方式, Windows 95 OSR2中引入 FAT32 方案。FAT16 簇数的上限是 2 的 16
次即 65536 个, 每簇扇区数的上限是 64 个, 因此其分区空间的上限为 2G(Windows
NT/2000 每簇扇区数可为 128, FAT16 空间扩充到 4G); FAT32 簇使用 32 位寻址方式, 其
中高 4 位保留, 实际簇数最多为 2 的 28 次, 同时受当前磁盘物理结构和工业标准的限
制,一个磁盘或磁盘阵列中扇区最大个数为 2 的 32 次, 空间为 2 的 41 次即2TB。
Windows 2000 将 FAT32 卷的大小限制为 32GB。
   文件系统的全部目的是跟踪文件, 具体描述即需要说明整个磁盘分区中每个存储单元
(簇)的使用情况、文件数据的簇存储情况(连续或碎片)以及树型目录结构的描述。FAT 实际
上是一个卷中所有簇使用情况的映射表, 每个文件/目录都同表中的若干项对应联系, 并在
目录中进行索引。FAT32 是 FAT 的扩展, 支持 32位寻址, 保留了簇映射和目录索引的基本
结构。
文件分配表(FAT)有表标识和簇映射(旧称表目)的集合组成。一个完全相同的镜像副本连续
存储在主 FAT 表后。
表标识符包括磁盘介质描述符( 1 字节)和填充字节, 总计占两个簇的簇映射区域(这大概也
就是 FAT 文件系统簇号由 2 开始的原因 ?), 填充字节一般为 FFFAT32 的填充字节中还包
含"脏位", 即系统启动时执行磁盘检查(FAT-ChkDsk/NTFS-AutoChk)。
FAT 实际上由 FAT12 和 FAT16 构成, 其簇映射值分别为 12 和 16 位, 其他的全部存储逻
辑均相同, 当总簇数大于 4080(FF0h)时为标准的 16 位 FAT。FAT 簇映射中, 0000 表示空
簇, FFFF 表示簇链结束, FFF7 表示坏簇, 其余值表示其后续簇的簇号。FAT12 和 FAT32
的存储策略同 FAT16 类似, 例如 FAT12的结束簇为 FFF, FAT32 的坏簇为 0FFFFFF7 等(注
意 FAT32 的高 4 位保留)。
   FAT 具有紧凑和高速的优点。通过对磁盘的数字化描述, FAT 记录了每个文件的位置和
区域。自然这些优点的得到是有代价的, FAT 的代价是寻址空间的局限(2GB)和簇内空间的
浪费, FAT32 的 FAT 表则占据了过多的磁盘空间, 如果操作系统操作一个相对大的分区依
然试图将整个 FAT 表放进内存, 其占据的空间和时间资源将相当可观, 同时会导致系统的
脆弱, 特别是磁盘碎片很多时, 甚至可能造成系统的崩溃, 至少将影响正常系统的健壮。
引导扇区 BIOS 参数表`
   磁盘 BIOS 参数表(BPB)描述磁盘的逻辑结构, 是 DOS 文件系统在磁盘上存取文件的依
据, 文件存取中的簇与逻辑扇区之间的相互映射以及逻辑扇区与物理扇区之间的相互映射都
需要借助于该表。 磁盘 BIOS 参数表存放于每个格式化磁盘的起始即磁盘引导扇区, 对于
软盘为第一扇区, 对于硬盘为分区第一扇区, 从第 12 字节开始。
下表为典型的 FAT32 引导扇区 BIOS 参数表(FAT16 包括 FAT12):
偏移 长 典型数值 适用 名称 描述
0X0B 2 0002 每扇区字节数 硬件扇区的大小。有效值为512、1024、2048和4096,
一般为512
0X0D 1 08 每簇扇区数 数据区每个簇的扇区数。操作系统只能访问有限的簇数,通
过对每簇扇区数的修改访问容量叫大的卷。每卷簇扇区数取决于卷容量,其有效值在1至128
间(2的整幂数。Windows2000限制FAT32分区最大限度为32GB,但可访问其他操作系统如
Windows95OSR2建立的更大分区。
0XOE 2 2000 保留扇区数 包括引导扇区内的从卷开始到第一个FAT的扇区数。典型
的FAT32保留扇区数为32,FAT为1。
OX10 1 02 FAT数目 卷的FAT拷贝数目,为2
OX11 2 0000 FAT16 根目录入口数 根目录存储的32字节文件和目录名入口个数。硬盘
一般为512,其中的一个为卷标。FAT32中此值为0
OX13 2 0000 FAT16 (小)扇区数 卷扇区数为16(<65536)时。否则为0,扇区数在
扇区数中定义FAT32中此值为0
OX15 1 F8 介质描述符 硬盘为OXF8,高密度3.5英寸软盘为OXF0。Windows2000已不
用。
OX16 2 0000 FAT16 每个FAT扇区数 每个FAT扇区数,卷中每个FAT占据的扇区数。操
作系统使用隐含扇区数,保留扇区数和本参数。计算根目录起始地址,并根据根目录入口地
址数计算数据区起始地址。FAT32为0。
OX18 2 3F00 每磁道扇区数 磁盘每道物理扇区数。INT13H访问磁盘用的参数,在多
磁头和柱面卷中折算到磁道中。
OX1A 2 FF00 磁头数 磁盘每道磁头数。例如3.5英寸1.44MB软盘的磁头数为2
OX1C 4 EE39D700 隐含扇区数 卷引导扇区前的扇区数。用于在引导过程中计算根目
录和数据区的绝对地址,此值一般仅相关于INT13H可访问的介质,在非分区介质中必须为
0。
OX20 4 7F324E00 (大)扇区数 如果(小)扇区数为0,在此表明卷扇区总数。如
果(小)扇区数非0,则此参数为0。
OX24 8 83130000 FAT32 每个FAT扇区数 FAT32卷中每个FAT占据的扇区数。操作系统
使用隐含扇区数,保留扇区数和本参数,计算根目录起始地址,并根据根目录入口数计算数
据区起始地址
OX28 2 0000 FAT32 扩展标志 两字节结构包括:0..3位:活动FAT数目(从0开始,
不是1),仅在无镜像有效4..6位:保留7位:0代表FAT在任何时刻镜像至所有的FAT,1代表
仅有一个活动的FAT(关联于0..3位)8..15位:保留
0X2A 2 0000 FAT32 文件系统版本 高字节为主版本号,低字节为辅版本号。用于将来
FAT32升级时区分版本,如果此值非0,低版本Windows不妨问卷
OX2C 4 02000000 FAT32 根目录簇号 根目录的首簇号,一般为2,但有可能不是
0X30 2 0100 FAT32 文件系统信息扇区号 在FAT32保留扇区中存放文件系统信息结构
的扇区号。典型的值为1。引导扇区的文件系统信息结构备份于该扇区,但不保持刷新
0X34 2 0600 FAT32 引导扇区备份 非0值表示引导扇区备份在隐含扇区的位置,典型
值为6,不推崇其他值
OX40 1 80 物理驱动器号 描述BIOS物理磁盘编号。软盘为0X00,硬盘为80,一般
BIOS INT13H调用磁盘时用。此值只对可启动设备有效。
OX41 1 00 保留 此值为0
0X42 1 29 扩展标志 扩展引导标志必须为0X28或OX29
0X43 4 A88B3652 卷序列号 格式化磁盘时随机随机生成的序列号,用于帮助分区磁

0X47 11 NO NAME 卷标 曾经使用,卷标现以特殊入口方式存于根目录
OX52 8 FAT32 文件系统类型 FAT16或FAT32文字域

原始的磁盘基数表(现操作系统已放弃)
磁盘基数表存放磁盘进行 I/O 操作时用于控制硬件的基本参数, 位于引导扇区的 21h 字
节。表中每项对应一个字节。
偏移 含义
21 高 4 位为步进速率, 低 4 位磁头卸载时间
22 马达等待时间(延迟关闭)
23 每扇区字节数(0-128,1-256,2-512,3-1024 等)
24 每道扇区数
25 扇区间间隔字节数
26 每扇区字节数(当24为0时)
27 格式化操作对扇区间隔的填充字节
28 格式化操作对扇区数据区的填充字节
29 寻道后磁头稳定时间
2A 执行命令的最长等待时间
2B
1. FAT表的大小及位置
   FAT在磁盘上是安排在紧接DOS引导扇区DBR之后的,在FAT16中,它总是从磁盘的逻辑1
扇区开始。
   在磁盘上共有FAT表的两个拷贝(一个是基本FAT表FAT1,另一个是FAT表的备份
FAT2),两者在磁盘上前后紧排在一起,其大小根据分区的大小不同而变化。FAT表之后紧
接着是根目录,根目录之后是数据区。在硬盘中,FAT16的文件分配表仍然是存放在逻辑1扇
区开始的若干个扇区内,一个文件分配表占用多少个扇区根据硬盘分区和逻辑盘的容量大小
情况的不同而不同。
2. 文件的簇号链
   磁盘格式划后,用户文件是以簇为单位存放在数据区中的,一个文件至少占用一个簇,
当一个文件占用多个簇时,这些簇的簇号是不一定连续的,但这些簇号之间有由存储该文件
时确定了的顺序,即每个文件都有其特定的簇号链。
   在磁盘上的每一个可用的簇在FAT中就只有一个登记项,通过在对应簇号的登记项内填
入表项值来表明数据区中的该簇是以占用,空闲或是已损坏的。损坏的簇是在格式化的过程
中,通过FORMAT命令发现的,在一个簇中,只要有一个扇区有问题,该簇就不能使用了。磁
盘上的簇在FAT中的表项占12,16或32位。在FAT16文件系统中,每簇在FAT中所取表项值是
占12位还是16位与所用磁盘的容量有关,12位表项值可表示4096个簇,若磁盘的簇数大于
4096,则必须用16位表项值。一般来说,软盘和小于20740个扇区的硬盘DOS分区用12位映射
一个簇,如多于20740个扇区的硬盘分区,则采用16位的FAT。
五,文件目录表
   每张经过格式化的,并且装文件的磁盘,包括360K,1.2M及各种规格的硬盘,都在磁盘
中建立了一张文件目录表,记录着整个磁盘上所有文件的有用信息,所以我们了解它的结构
很有好处。在文件目录表中,每个文件占32个字节(用PC-TOOLS或DEBUB读出时占两行),
各个字节的含义是这样的:
0-7 字节:文件名,共8个字节,不足8个的用29填满,其中第一个字节为00时,表示此项未
用,为E5时表示此项已经删除。
8-10 字节:扩展名,占3个字节,无扩展名或不足3个的用20填充。
11 字节,表示文件属性。具体含义是:20为归档文件,01为只读文件,不能对其进行修改
和删除。02为隐含,不能为用DIR命令进行查找,04为系统文件,也不能用DIR命令进行查
找。10表示此项为子目录,而不是文件。28表示此项为磁盘的卷标,即磁盘的名字,不是文
件。
12-21 共10个字节为保留字段,没有使用。
22-23 为建立文件的时间。
24-25 为建立文件的日期。
26-27 为文件占用的第一个簇号,即起始簇。
28-31 共4个字节为此文件的长度。
   不同的磁盘目录表在磁盘中的位置和长度也不相同,360K磁盘目录表在磁盘的相对5号
扇区到11号扇区共7个扇区;1.2M磁盘在相对15号扇区到28号扇区共14个扇区而30M硬盘在相
对123号扇区到154号扇区用DEBUG或PCTOOLS工具软件。例如用DEBUG调出A盘中1.2M磁盘目录
表:

   用PCTOOLS(5.0)读写更加方便。运行后,按F3进入磁盘服务状态,再按E进入编辑磁
盘功能,选择A盘,按F2后再按R进入选择目录区,此时磁盘的目录表到后按F3进入全屏幕编
辑状态,修改完毕,按F5再按U存盘。
掌握了目录表的结构和修改方法,我们可以利用它来做一些工作,下面仅举几例。修改目录
项的文件名部分,可以在文件名中间出现空格和小写字母。如果用此方法修改的是文件名,
则此文件在DOS下不能正常调用,如果修改的是子目录名,则此子目录也不能正常的进入,
因为文件名和子目录名中是不能出现空格的,空格作为命令的分隔符。这就达到了保密的效
果,自己用时,只需再将名字改为正常的名字即可。如果用此方法修改硬盘的卷标项为一些
小写字母,那么可以防止硬盘被误格式化,因为硬盘格式化时必须输入卷标名,而在一般情
况下卷标是不能输入小写字母的。真要进行格式化时,再把卷标改为正常即可。如果误删了
文件,而磁盘又没进行其它写操作,在没有其它软件恢复时,可以修改目录表此项的第一个
字节,把E5改为其它,就可以恢复误删文件(此方法并不是恢复文件的最好方法,对于
ASCII文件较好,而一些可执行文件易出错)。
   另外可以修改属性位,如果把某些文件修改成隐含的或只读的,可以防止他人删除和修
改,并且可以防止病毒感染。在加密子目录时,为了防止PCTOOLS的查找,可以把子目录的
长度项改为无穷大后即最后一项改为FF。其它项如时间、日期等,都可以按照自己的需要进
行修改。
六,分区表
   分区表决定磁盘操作系统的基本设置, 包括分区类型和位置。每个分区表长16 字节,
从主引导记录的 0x01BE(446) 开始。不满 4 个分区时剩下的填 0。
   一个硬盘至多只能有4个分区, 常见的多个逻辑卷在逻辑上是一个分区(扩展分区), 严
格意义上讲逻辑卷不是分区。此即卷和分区的区别。卷为引导扇区 +数据区的一个逻辑概
念, 访问时为字母冒号, 一个分区可能包含一个或多个卷。
Windows 2000 中只有基本磁盘使用分区表。动态磁盘使用磁盘尾部的 DiskManagement 数
据库决定磁盘结构信息。升级到动态磁盘后分区表不更改, 建立新动态卷后也不更改。
   分区表最大能访问 32 位扇区数硬盘。每扇区字节为 512(9 位), 因此最大能访问的硬
盘为 41 位(2 TB)。
扩展分区的逻辑卷分区表至多列两个记录。一般地, 硬盘第一个分区即主引导记录分区表
中, 第一个分区为基本分区(PRI DOS), 可增加扩展分区(EXT DOS),扩展分区包含其后面全
部各个分区即逻辑卷。
   每个扩展分区表的第一个入口指定其引导扇区, 第二个入口指定下一个逻辑卷。扩展分
区表中只包括两个入口, 第三个和第四个不使用。第二个入口为0时表示没有扩展分区的逻
辑卷结束。
   分区表内(包括主分区表和扩展分区表)各分区前后次序无关, 也可以将分区表放置到最
后一个记录, 前面全空; 各个分区的空间如果有重叠部分, 操作系统不进行判断; 操作系统
在主分区表中只识别第一个扩展分区, 在逻辑分区表中只识别一个逻辑卷。
一般地, 硬盘分区的划分均以磁道为单位, 不会跨磁道划分。每个分区均从某磁道的起始磁
头起始扇区开始, 至结束磁道的结束磁头结束扇区结束; 一般地,分区隐含扇区数为硬盘扇
区数; 因此分区起始磁头号为 1, 起始扇区号为 1, 结束磁头号为硬盘磁头数减 1, 结束扇
区号为扇区数(磁头号由 0 开始, 扇区数由1 开始), 实际的起始磁头数为 0(即分区表地
址)。
   分区表中第一个分区的起始扇区为相对本分区分区表的偏移量, 一般为磁盘扇区数, 即
前文所述, 由第二个磁头(1 号)开始; 第二个分区的起始扇区为相对地址偏移量, 对于第一
个分区表(即 0 磁头 0 磁道 1 扇区主引导记录扇区)为相对主引导记录的偏移量, 同绝对
地址相同, 其余的分区表中为相对扩展分区分区表即第二个分区起始地址的偏移量。
分区表中常用系统标志的定义:
系统标志 说明
0x01 FAT12基本分区或逻辑驱动器(卷中小于32,680扇区)
0x04 FAT16分区或逻辑驱动器(32,680-65,535扇区或16MB-33MB
0x05 扩展分区
0x06 BIGDOS FAT16 分区或逻辑驱动器(33MB-4GB)
0x07 安装文件系统(NTFS分区或逻辑驱动器)
0x0B FAT32 分区或逻辑驱动器
0x0C FAT32 分区或逻辑驱动器使用 BIOS INT 13h 扩展
0x0E BIGDOS FAT16 分区或逻辑驱动器使用 BIOS INT 13h 扩展
0x0F 扩展分区使用 BIOS INT 13h 扩展
0x12 EISA 分区
0x42 动态盘卷
(Windows NT 4.0 或更早版本建立一个镜像或 RAID-5 卷时, 分区类型的高位置1)
分区表中常用系统标志的说明:
标志 FAT 基本 扩展 逻辑 NIT13EXT 支持容量 操作系统
X01 FAT12 y y 16M OS2.0以上win95及NT
X04 FAT16 y y 16M-32M OS3.0以上win95及NT
X05 y 2T OS3.3以上win95及NT
X06 FAT16 y y 32M-2G OS4.0以上win95及NT
X07 NTFS y y 2T WindowsNT
X0b FAT32 y y 512M-2T Windows95(OSR2)
X0c FAT32 y y y 512M-2T Windows95(OSR2)
X0e FAT16 y y y 32M-2G Windows95
X0f y y 2T Windows95
其他系统标志的定义:
代码 00 01 02 03 04 05 06 07 08
意义 无用 DOS-12 XENIX XENIX DOS-16 EXTEND BIGDOS HPFS SPLIT
代码 0A 50 51 53 56 61 63 64 65 75
意义 BTMGR DM DM DM GB SpeeD 386/ix NET286 NET386 PCIX
代码 DB E1 E3 E4 F1 F4 FF 其余为?
意义 CM/M Speed Speed Speed Speed Speed bbt
MS-DOS 只能访问系统标志为 0x01, 0x04, 0x05 或 0x06 的分区, 但可以用Fdisk 程序显
示和删除任何类型的分区。使用 DISK 程序可访问任意分区的任何扇区, 例如 NTFS 分区。
七,引导扇区
位于每个卷首的引导扇区是计算机启动的关键磁盘结构。引导扇区包含执行代码和代码所需
的数据信息, 包括文件系统信息。格式化卷时生成引导扇区。引导扇区的结束两字节为引导
标记 0x55AA。
引导扇区由以下部分组成:
一个基于x86的CPU跳转指令
* 厂商标记(OEM ID)
* 一个数据结构, BIOS参数区(BPB)
* 扩展BIOS参数区(扩展BPB)
* 启动操作系统的执行代码
* FAT12、FAT16、FAT32 和 NTFS 引导扇区各自包含不同的格式。
* BIOS 参数区描述卷的物理参数; 扩展 BPB 紧挨着 BPB。FAT12、FAT16、FAT32 和 NTFS
引导扇区各自包含不同的 BIOS 参数区。
* BPB 和扩展 BPB 用于磁盘设备驱动读取和配置卷。扩展 BPB 后时启动执行
* 代码, 启动执行代码按下步骤启动:
* 系统BIOS和CPU加电自检
* BIOS搜索引导设备(如一个磁盘)
* BIOS加载引导设备第一个物理扇区内容到内存, 向 CUP 传输内存地址以解释执行
如果启动设备是一个硬盘, BIOS 加载主引导记录, 主引导记录中的主引导代码执行活动分
区引导扇区的执行代码。
如果 A 驱动器中有软盘, 系统 BIOS 加载软盘的第一个扇区(引导扇区)进内存。如果软盘
可启动, 引导扇区用执行代码加载 MS-DOS 操作系统文件 IO.SYS进内存供CPU执行, 如果软
盘不可启动, 执行代码显示:
Non-System disk or disk error
Replace and press any key when ready
当然此提示一般在 C 盘先启的机器中不会出现。现在一般计算机的 CMOS 设置程序均允许
设置启动顺序。如果硬盘启动是显示类似的信息, 可能是引导扇区已损坏。
启动过程起初独立于磁盘格式和操作系统, 引导扇区执行代码执行后文件系统才加载并成为
关键的特征值。
引导扇区组成:
主引导记录执行引导扇区的CPU指令, 因此引导扇区的头 3 个字节必须是可执行的基于
x86 的 CPU 指令, 这是一个跳转指令, 跳过下面不可执行的 BIOS参数区域(BPB)。
跳转指令后是 8 字节的 OEM ID, 标志卷格式化操作系统的名称和版本。Windows
95/98/2000 的 OEM ID 为 "MSDOS5.0", Windows 95 OSR2 和 Windows98 有时
为 "MSWIN4.0" 和 "MSWIN4.1"。OEM ID 后是 BIOS 参数区(BPB)。BPB 的起始位置固定。
当 BPB 格式变化加上新的内容而长度变化时, 对 x6 跳转指令做相应修改即可。