BPB(BIOS Parameter Block)
MBR(master boot record)主导引记录
DBR(dos boot record)DOS引导记录
FAT(File Allocation Table)文件分配表
FDT(File Directory Table)文件目录表
扇区->簇->段 分成若干段,像一条链子一样存放。这种存储方式称为文件的链式存储
FAT的项数与硬盘上的总簇数相当,每一项占用的字节数也要与总簇数相适应,因为其中需要存放簇号
逻辑0扇区(即BOOT扇区)后面的几个扇区中存在着一个重要的数据表—文件分配(FAT),文件分配表一式两份,占据扇区的多小凭磁盘类型大小而定。顾名思义,文件分配表是用来表示磁盘问件的空分配信息的。它不对引导区,文件目录的信息进行表示,也不真正存储文件内容。
文件分配表结构如1(H表示16进制)
表1
第0字节 表头,表磁盘类型。FFH双面软盘,每次道8扇区FEH单面软盘,每磁道8扇区FDH双面软盘,每磁道9扇区FCCH单面软盘,每磁道9扇区FC8H硬盘
第1~2字节 (表项号1)表示第一簇状态,因第一簇被系统占据,故此两字节为FFFFH
第3~4字节 (表项号2)表示第二簇状态,若为FFFH表此簇为坏的,DOS已标记为不能用;0000H表示此簇为空,可以用;FFF8H表不能示该簇为文件的最后一簇;其余数字表示文件的下一个簇号,注意高字节在后,低字节在前。
第5~6字节 (表项号3)表示第三簇状态,同上
硬盘分区的主要结构说明:
(Cylinder柱面/磁道-Side磁头-Sector扇区地址以下简称为?-?-?)
《主分区》
名称 地址 长度(扇区)
主引导记录(Main Boot Record) 0-0-1 1
系统扇区(System Secotrs) 0-0-2,0-0-63 62
引导扇区(Boot) 0-1-1 1
FAT32系统中,BPB表的偏移与FAT16不同,但表项基本相同。整个隐藏扇区部分都作为逻辑盘的描述区域。
隐藏扇区(Hidden Secotrs):
FAT16 0-1-1 1
FAT32 0-1-1 32
文件分配表(File Allocation Table):
FAT16 0-1-2 根据逻辑盘容量变化
FAT32 0-1-33 根据逻辑盘容量变化
说明:
FAT16的每个表项由2字节(16位)组成,通常每个表项指向的簇包含64个扇区,即32K字节。
逻辑盘容量最大为2047MB。
FAT32的每个表项由4字节(32位)组成,通常每个表项指向的簇包含8个扇区,即4K字节。
逻辑盘容量最小为512MB。
对于C分区,在MBR的偏移01c2H处,FAT16为06H,FAT32为0CH。
有关计算公式为:
每个扇区长度=512字节
总簇数=逻辑盘容量/簇容量
总簇数=FAT表长度(字节)/每个表项长度(字节)-2
FAT表长度=逻辑盘容量/簇容量*每个表项长度
FAT表的开始由介质描述符+一串“已占用”标志组成:
FAT16硬盘----F8 FF FF 7F
FAT32硬盘----F8 FF FF 0F FF FF FF 0F
每个有效的FAT结构区包含两个完全相同的拷贝:FAT1、FAT2
文件目录表(File Directory Table),即根目录区,又称为ROOT区:
紧跟在FAT2的下一个扇区,长度为32个扇区(256个表项)。如果支持长文件名,则每个表项
为64个字节,其中,前32个字节为长文件链接说明;后32个字节为文件属性说明,包括文件长
度、起始地址、日期、时间等。如不支持长文件名,则每个表项为32个字节的属性说明。
数据区(Data Area):
紧跟在FDT的下一个扇区,直到逻辑盘的结束地址。
《扩展分区》
名称 地址 长度(扇区)
扩展分区(Extend Partition) ?-y-1 1
系统扇区(System Secotrs) ?-y-2,?-y-63 62
引导扇区(Boot) ?-(y+1)-1 1
其后各项与主分区相同……
如果把MBR扇区中的DPT中的第二个盘分区表指向第一个盘分区表(就是第二个分区表和第一个分区表一样)那么系统会出现两个盘符C:D:不过两个盘的内容是一样的。(其实他们指向了同一个数据区)
读取并执行硬盘上的主引导记录, 硬盘之0面0道1扇区之内容 将其从硬盘读出,放置在内存0:7C00处,然后转去该地址执行
主引导记录接着从分区表中找到第一个活动分
区,然后读取并执行这个活动分区的分区引导记录,而分区引导记录将负责读取
并执行IO.SYS,这是DOS和Windows 9x最基本的系统文件。Windows 9x的IO.SYS首
先要初始化一些重要的系统数据,然后就显示出我们熟悉的蓝天白云,在这幅画
二.BootSector结构简介
1.BootSector的组成
BootSector也就是硬盘的第一个扇区,它由MBR(MasterBootRecord),DPT(DiskPartitionTable)和BootRecordID三部分组成。
MBR又称作主引导记录占用BootSector的前446个字节(0to0x1BD),存放系统主引导程序(它负责从活动分区中装载并运行系统引导程序)。
DPT即主分区表占用64个字节(0x1BEto0x1FD),记录了磁盘的基本分区信息。主分区表分为四个分区项,每项16字节,分别记录了每个主分区的信息(因此最多可以有四个主分区)。
BootRecordID即引导区标记占用两个字节(0x1FEand0x1FF),对于合法引导区,它等于0xAA55,这是判别引导区是否合法的标志。
8、一般常识;一般情况下第一分区的起始位置为H=1,C=0,S=1;第二分区的起始位字为第一分区结束柱面的下一柱面的0磁头一扇区没个分区的终止磁头号,扇区号一般为最大磁头即扇区编号,也就是说,同一柱面的所有扇区均被分在一个分区中;没个分区的大小等于所占柱面数=所占柱面属*磁头数*每柱面扇区数;如第二分区大小等于(281-51+1)*255*63*512/1048576=1804MB;
表6-19 分区项表(16字节)内容及含义
存贮字节位
内容及含义
第1字节
引导标志。若值为80H表示活动分区,若值为00H表示非活动分区。
第2、3、4字节
本分区的起始磁头号、扇区号、柱面号。其中:
磁头号——第2字节;
扇区号——第3字节的低6位;
柱面号——为第3字节高2位+第4字节8位。
第5字节
分区类型符。
00H——表示该分区未用(即没有指定);
06H——FAT16基本分区;
0BH——FAT32基本分区;
05H——扩展分区;
07H——NTFS分区;
0FH——(LBA模式)扩展分区(83H为Linux分区等)。
第6、7、8字节
本分区的结束磁头号、扇区号、柱面号。其中:
磁头号——第6字节;
扇区号——第7字节的低6位;
柱面号——第7字节的高2位+第8字节。
第9、10、11、12字节
本分区之前已用了的扇区数。:在线性寻址方式下的分区相对扇区地址(对于基本分区即为绝对地址)
第13、14、15、16字节
本分区的总扇区数。
winhex10
FAT32字目录
在FAT32中,字目录也是一个文件,其下一个簇为空,其数据区的内容为文件分配表。
阅读(2315) | 评论(0) | 转发(0) |