⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 dosbootrecord.txt

📁 会变语言实现的一些程序
💻 TXT
字号:
  = 文档 = 
  题 目: Dos Boot Record 
类 型: 不详 
作 者: Frank_Xu 
来 源: 不详 
 
 

--------------------------------------------------------------------------------
  活动分区主引导扇区(DBR)
用FORMAT命令对磁盘格式化时产生

物理位置:0柱面1磁头1扇区(Cylinder  0,  Head 1,  Sector  1)
大小: FAT16    1扇区  512字节         FAT32    3扇区  1536字节 
功能:包含机器CMOS等信息(0000--0059), 核对该信息并引导指定的系统文件,如NTLDR等; 
 详解:   (DEBUG- L   200  2  0 1)

Boot Sector and BPB Structure

名称 偏移 大小 描述 
BS_jmpBoot
 00H
 3
 跳到引导代码的指令. 可为EBxx90和E9xxxx两种,xx表示任意允许的8bit值的字节.
 
BS_OEMName
 03H
 8
 OEM名字字符串,设定该串或许最少地引起兼容性问题.
 
BPB_BytsPerSec
 0BH
 2
 每扇区字节数,该值可为512,1024,2048或4096.
 
BPB_SecPerClus
 0DH
 1
 每分配单元的扇区数,值为2的n次方,范围1~128.
 
BPB_RsvdSecCnt
 0EH
 2
 在开始处保留区域的保留扇区数.该值不能为0.对于FAT32,其值为32.
 
BPB_NumFATs
 10H
 1
 卷中FAT数据结构的个数,对任何类型的FAT卷,其值永远为2个
 
BPB_RootEntCnt
 11H
 2
 对于FAT12/FAT16卷,在根目录的32字节的目录个数.对FAT32,永远设定为0.
 
BPB_TotSec16
 13H
 2
 卷中的扇区的数量(用16bit表示),如果为0,则BPB_TotSec32必须为非零.

对于FAT32,必须为0.
 
BPB_Media
 15H
 1
 介质标志字: 0xF8表示不可移动介质,0xF0表示可移动介质
 
BPB_FATSz16
 16H
 2
 对于FAT12/FAT16,表示第一个FAT占用的扇区数;对于FAT32卷必须为0.
 
BPB_SecPerTrk
 18H
 2
 对于中断13,每磁道的扇区数
 
BPB_NumHeads
 1AH
 2
 对于中断13,磁头的数量.
 
BPB_HiddSec
 1CH
 4
 包含FAT卷的分区的隐含扇区的数量
 
BPB_TotSec32
 20H
 4
 卷中扇区的数量,用4Byte表示.
 

 

 Fat12 and Fat16 Structure Starting at Offset 36

名称 偏移 大小 描述 
BS_DrvNum
 24H
 1
 中断13的驱动器号.
 
BS_Reserved1
 25H
 1
 用于NT系统(保留),对于FAT卷,永远为0.
 
BS_BootSig
 26H
 1
 扩展的引导签名
 
BS_VolID
 27H
 4
 卷序列号
 
BS_VolLab
 2BH
 11
 卷标,用11个字节记录在根目录下.
 
BS_FilSysType
 36H 
 8
 字符串FAT12/FAT16/FAT,用8Byte表示.
 

 

FAT32 Structure Starting at Offset 36

名称 偏移 大小 描述 
BPB_FATSz32
 24H
 4 
 FAT1占用扇区数量 [仅为FAT32介质定义,在FAT12/FAT16上不存在.]
 
BPB_ExtFlags
 28H
 2
 b0~b3为0表示活动FAT,b4~b6保留,b7为0表示FAT是在运行时被镜象到所有FATs,b7为1时表示仅有一个活动FAT. b8~b15保留.
 
BPB_FSVer
 2AH
 2
 高字节表示主版本号,低字节表示副版本号.
 
BPB_RootClus
 2CH
 4 
 设定根目录第一个簇的簇数量. 通常为2但不是必需为2.
 
BPB_FSInfo
 30H
 2
 在FAT32卷保留区的FSINFO结构中的扇区数.通常为1
 
BPB_BkBootSec
 32H
 2
 如果非零,则说明在卷保留区中引导记录拷贝的扇区数
 
BPB_Reserved
 34H
 12
 保留未来扩展用.(用0填充)
 
BS_DrvNum
 40H
 1
 驱动器号[FAT32与FAT16唯一不同处就是字段位于引导扇区的偏移位置不同]
 
BS_Reserved1
 41H
 1
 保留.
 
BS_BootSig
 42H
 1
 扩展的引导签名
 
BS_VolID
 43H
 4
 卷标序列号
 
BS_VolLab
 47H  11
 卷标
 
BS_FilSysType
 52H
 8
 永远设定为"FAT32"字符串
 

   

03EH -- 19DH
 DOS启动程序
 
19EH -- 1E5H
 开机字符串
 
1E6H -- 1FDH
 文件名(IO.SYS,  MSDOS.SYS)
 
1FEH -- 1FFH
 结束标记(55AA)
 

  

  

  
 隐藏扇区(Hidden Secotrs) 
 文件分配表FAT 
 
FAT16 
 0C1H1S,占1Sector 
 0C1H2S, 根据逻辑盘容量变化  
 
FAT32 
 0C1H1S开始,占32Sectros 
 0C1H33S, 根据逻辑盘容量变化 
 

 
DBR(Dos Boot Record)是操作系统引导记录区的意思。它通常位于硬盘的0磁道1柱面1扇区,是操作系统可以直接访问的第一个扇区,它包括一个引导程序和一个被称为BPB (Bios Parameter Block)的本分区参数记录表。引导程序的主要任务是当MBR将系统控制权交给它时,判断本分区跟目录前两个文件是不是操作系统的引导文件(以DOS为例,即是Io.sys和Msdos.sys)。如果确定存在,就把其读入内存,并把控制权交给该文件。BPB参数块记录着本分区的起始扇区、结束扇区、文件存储格式、硬盘介质描述符、根目录大小、FAT个数,分配单元的大小等重要参数。
  
FAT16系统中,此扇区包含BPB (BIOS Parameter Block)表,描述逻辑盘结构组成,包含隐藏扇区数目(从0-1-1开始计算)、FAT扇区数、FAT拷贝数、硬盘磁头总数、根目录表项最大值等。
FAT32系统中,BPB表的偏移与FAT16不同,但表项基本相同。整个隐藏扇区部分都作为逻辑盘的描述区域。
  

  

  

文件分配表FAT(File Allocation Table) 

    在DBR之后的是我们比较熟悉的FAT区。在解释文件分配表的概念之前,我们先来谈谈簇(cluster)的概念。文件占用磁盘空间时,基本单位不是字节而是簇。簇的大小与磁盘的规格有关,一般情况下,软盘每簇是1个扇区,硬盘每簇的扇区数与硬盘的总容量大小有关,可能是4、8、16、32、64……
    由于FAT对于文件管理的重要性,所以FAT有一个备份,即在原FAT的后面再建一个同样的FAT。初形成的FAT中所有项都标明为"未占用",但如果磁盘有局部损坏,那幺格式化程序会检测出损坏的簇,在相应的项中标为"坏簇",以后存文件时就不会再使用这个簇了。FAT的项数与硬盘上的总簇数相当,每一项占用的字节数也要与总簇数相适应,因为其中需要存放簇号。FAT的格式有多种,最为常见和为读者所熟悉的是FAT16和FAT32,其中FAT16是指文件分配表使用16位数字,由于16位分配表最多能管理65536(即2的16次方)个簇,也就是所规定的一个硬盘分区。
    由于每个簇的存储空间最大只有32KB,所以在使用FAT16管理硬盘时,每个分区的最大存储容量只有(65536×32 KB)即2048MB,也就是我们常说的2G。现在的硬盘容量是越来越大,由于FAT16对硬盘分区的容量限制,所以当硬盘容量超过2G之后,用户只能将硬盘划分成多个2G的分区后才能正常使用,为此微软公司从Windows 95 OSR2版本开始使用FAT32标准,即使用32位的文件分配表来管理硬盘文件,这样系统就能为文件分配多达4294967296(即2的32次方)个簇,所以在簇同样为32KB时每个分区容量最大可达65G以上。此外使用FAT32管理硬盘时,每个逻辑盘中的簇长度也比使用FAT16标准管理的同等容量逻辑盘小很多。由于文件存储在硬盘上占用的磁盘空间以簇为最小单位,所以某一文件即使只有几十个字节也必须占用整个簇,因此逻辑盘的簇单位容量越小越能合理利用存储空间。所以FAT32更适于大硬盘。 

  

计算公式: 

    每个扇区长度=512字节 

    总簇数=逻辑盘容量/簇容量 

    总簇数=FAT表长度(字节)/每个表项长度(字节)-2
    FAT表长度=逻辑盘容量/簇容量*每个表项长度
FAT表的开始由介质描述符+一串"已占用"标志组成:
    FAT16硬盘----F8 FF FF 7F
    FAT32硬盘----F8 FF FF 0F FF FF FF 0F
每个有效的FAT结构区包含两个完全相同的拷贝:FAT1、FAT2 

  

  

文件目录表FDT(File Directory Table),即根目录(DIR)区,又称为ROOT区
    紧跟在FAT2的下一个扇区,长度为32个扇区(256个表项),记录着根目录下每个文件(目录)的起始单元,文件的属性等。定位文件位置时,操作系统根据DIR中的起始单元,结合FAT表就可以知道文件在硬盘中的具体位置和大小了。
    如果支持长文件名,则每个表项为64个字节,其中,前32个字节为长文件链接说明;后32个字节为文件属性说明,包括文件长度、起始地址、日期、时间等。如不支持长文件名,则每个表项为32个字节的属性说明。
 

 
数据(DATA)区
数据区是真正意义上的数据存储的地方,位于DIR区之后,占据硬盘上的大部分数据空间。
 

 

本文档相关资料请到文档来源处查找... 

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -