资源描述:
《掀起硬盘主引导扇区的神秘面纱》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、磁盘的组织方式主引导记录(分区标)(仅硬盘)DOS引导记录(保留区域)文件分配表(FAT),可能有N个备份根目录文件区域(文件和子目录)一个磁盘在使用前,都要进行逻辑格式化(硬盘在此前还要经过低级格式化、分区两步),在格式化完毕之后,磁盘分为以下几部分:引导扇区(Boot)、文件分配表(FAT)、文件目录表(FDT)和数据区。如果是硬盘,在0柱面0磁头1扇区还存在一个由FDISK分区命令形成的主引导扇区。一、主引导扇区硬盘主引导扇区是一个敏感的区域,它的安全与否直接决定硬盘是否能够正常使用。深入认识和灵活使用硬盘主引导扇区将有
2、助于你的系统维护和许多特殊工作完成。(一)、与DOS引导扇区的区别 对于DOS系统来说,有两种不同的引导扇区,即DOS引导扇区和硬盘主引导扇区。DOS引导扇区存在于软盘的第一逻辑扇区或硬盘DOS分区的第一逻辑扇区,是用FORMAT命令对磁盘格式化时产生的,是引导DOS系统或正确使用磁盘的必要条件,在DOS下可用DEBUG方便地读出:C>DEBUG-L100201;读C盘0扇区到内存当前段的100H处-D;显示DOS引导扇区内容硬盘主引导扇区则指的是硬盘的物理地址0面0道1扇区,是用FDISK进行硬盘分区时产生的,它属于整个硬盘
3、而不属于某个独立的DOS分区,是硬盘正确引导和使用的必要条件。由于它不在DOS分区范围之内,所以无法用上述方法读出,只有用相关的汇编程序代码读出:C>DEBUG-AXXXX:0100MOVAX,0201H;指定扇区数XXXX:0103MOVBX,0800H;指定内存地址XXXX:0106MOVCX,0001H;指定磁道和扇区号XXXX:0109MOVDX,0080H;指定磁头和驱动器号XXXX:010CINT13H;读磁盘操作XXXX:010EINT3-d800;显示读出内容(二)、扇区结构 硬盘主引导扇区占据一个扇区,共51
4、2(200H)个字节,具体结构如下:1.硬盘主引导程序,位于该扇区的0-1BDH处;2.硬盘分区表,位于1BEH-1FDH处,分区表对于系统自举十分重要,它规定着系统有几个分区;每个分区的起始及终止扇区、大小以及是否为活动分区等重要信息。每个分区表占用16个字节,共4个分区表,16个字节各字节意义如下:偏移量长度(Byte)说明00H1自举标志,80H为可引导分区,00为不可引导分区;01~03H3本分区在硬盘上的开始物理地址;第1字节该分区起始磁头号,第2字节该分区起始扇区号(低6位)和起始柱面号(高2位),第3字节该分区起
5、始柱面号的低8位。04H1分区类型:其中00h表该分区未使用,01H表示为12位FAT表的基本DOS分区;04H为16位FAT表的基本DOS分区;05H为扩展DOS分区;06H为大于32M的DOS分区;65H表Netware分区,其它为非DOS分区。05~07H3本分区的结束地址;第5字节该分区结束磁头号,第6字节该分区结束扇区号(低6位)和结束柱面号(高2位),第7字节该分区结束柱面号的低8位。08~0BH4该分区之前的扇区数,即此分区第一扇区的绝对扇区号;高位在后低位在前。0C~FFH4该分区占用的总扇区数。注意:1〉.分
6、区表有四个表项,表示硬盘最多只能容纳四个分区。2>.磁盘的各个面称为磁头,软盘只有两个磁头,而硬盘往往有多个。各个磁头相同半径的磁道合称为柱面。3>.高位在后,低位在前是一种存储数字方式,读出时应对其进行调整,如两字节12h、34h,应调整为3412h。现在举例说明,有如下一分区表(16进制):┋00000000000000000000000000000000000000000000000000000000000080010100060B239B23000000CDFF00000000019C050BE3DBF0FF00000
7、0550500000000000000000000000000000000000000000000000000000000000000000055AA此分区表两个表项已被使用,说明此硬盘上存在两个分区(DOS主引导分区和扩展DOS分区),还有两个表项未用,最后是2个字节的有效标志。现以第一个表项为例说明各字节作用。第0字节80h表明此分区为活动分区,系统启动时将从此分区读取系统文件,当硬盘上存在一个以上分区时,只能有一个是活动的。第1字节01h表明此分区起始于第1磁道。第2个字节01h用二进制表示为00000001,低6位为0
8、00001,合十进制为1,表此分区起始扇区为1。第3字节00h,用二进制表示为00000000,加上第2个字节的高2位00作为高位,表示为0000000000,合十进制0,表此分区起始柱面为0。第4字节06h表此分区为基本DOS分区。第5字节0Bh表示该分区结束在第11磁头。