浅谈硬盘引导记录

来源:互联网 发布:python内置函数手册 编辑:程序博客网 时间:2024/05/20 22:28

    最近看了一些关于磁盘主引导记录方面的书籍与文章博客,总结了一些经验,与大家一起分享,若是有错误之处,望不吝赐教。

    一块原始的硬盘上面什么信息都是没有的,也没有什么具体的格式。所以,在使用一块硬盘前,我们需要把它格式化,格式化为具体哪一种格式按照具体的需要进行。在这里,我只谈谈很常见的FAT、FAT16、FAT32、NTFS等格式。

    当一块原始的硬盘被初始化为一种具体的格式,比如NTFS,那么在磁盘的0柱面0磁道1扇区(就是大家常常听到的CHS,cylinder=柱面,head=磁头/轨道,sector=扇区)记录一些信息,这些信息就是磁盘主引导纪录,它包括主引导记录、硬盘分区表和两个字节的有效标志(AA55H)组成。

    这里我们重点说说硬盘分区表。DPT(disk partition table)处在0柱面0磁道1扇区中,由4个表项组成,每个表项占据16个字节,这16个字节都有具体的含义;每个表项的分别对应描述了一个分区,说的通俗点就是主分区。这也就是为什么常常听说在MBR分区格式中最多只能有4个主分区(我们在为硬盘分区的时候也可以分成3个主分区与1个扩展分区,或者也可以只有一个主分区与一个扩展分区。在主分区与扩展分区下可以建立若干个逻辑分区)。

    我们知道,一个扇区有512Byte,DPT占据了64个,有效标志占据2个,剩下的446Byte就给了MBR(master bootloader record )。如果想了解MBR的组成,网上有不少资料可以查找。下面说说DPT中表项的内容:

    在表项中:

  第0字节  是否为活动分区,80H表示活动分区,否则为00H

  第1字节  该分区的起始磁头号

  第2字节  该分区的起始扇区号(低6位)和起始柱面号(高2位)

  第3字节  该分区的起始柱面号(低8位)

  第4字节  系统标志位;00H表示分区未使用0CH、0BH表示FAT32分区;06H表示DOS FAT16分区,05H表示DOS扩展分区;65H表示Netwear分区;02H表示xenix分区;    

                 01H表示FAT12分区;82H表示Linux分区。

  第5字节  该分区结束磁头号

  第6字节  该分区结束扇区号(低6位)和结束柱面号(高2位)

  第7字节  该分区结束柱面号(低8位)

第8-11字节  该分区前有多少个扇区

以上就是每个表项中的每个字节所代表的含义。

第12-15字节  该分区有多少个扇区


0 0
原创粉丝点击