MBR 分区表构成 MBR 分区表以 80为起始,以 55AA 为结束,共 64个字节,分为 4个分区表,一个可启动分区和三个不可启动分区。其结构如下: 分区表一: 第1 个字节 80( HEX )* 可启动分区第 2~4 字节 01/01/00 ( HEX )* 开始磁头/ 开始扇区/ 开始柱面换算一下,二进制表示就是。 0000 0001/00000001/0000 0000 ( BIN )* 开始磁头/ 开始扇区/ 开始柱面以下将使用 16 进制表示,不再换算成二进制! 第五个字节 0C* 分区类型 FAT32 NTFS 为 07 ,可自己变更第 6~8 字节 FE/FF/FF * 结束磁头/ 结束扇区/ 结束柱面第 9~12 字节 00 00 00 3F* 分区前的隐藏扇区 63 个隐藏扇区, 此设计使 0 磁道使用 0 扇区,而1到 62 扇区不使用, 减少读取, 以此保护分区表,个人认为是个很不错的设计,不过很少有人知道这个。第 13~16 字节 5B 24 40 01* 分区大小 20980827 个扇区当然好要算上分区表的 63 个扇区一共 20980889 个扇区合 10GB 公式为 20980889*512/ ( 1024^3 ) =10GB ------------------------------------------------------ 我是一条分割线----------------------------------------------- 分区表二: 第 17 个字节 00 :不可启动分区第 18~20 字节开始磁头/ 开始扇区/ 开始柱面第 21 字节 0F* 分区类型为扩展分区第 22~24 字节结束磁头/ 结束扇区/ 结束柱面第 25~28 字节分区前的隐藏扇区第 29~32 字节分区大小分区表三,分区表四,以此类推,不再解释。至于分区表的修改 WinHex ( DISKEDIT DOS 下) 是个不错的软件,了解了这些,就可以自己重建分区表了。另: MBR 是主分区表,误操作使 MBR 损坏时, DBR 或者 DBR 备份应该没损坏,我们可以通过搜索 55AA 来获得 DBR 信息(往前找就行了),来寻找 DBR 从而了解更多信息(主要是分区大小和开始结束的扇区,磁头,柱头),来帮助我们重建分区表。此文乃看到一篇关于 CIH 磁盘修复的文章, 后查了些书写出的, 不能算原创, 因为大部分资料都能查到,只不过很零散罢了,个人只是汇总了一下。在上次写的帖子里提到了这个方法 http://bbs./thread-748156-1- ,当时懒得弄,现在有时间了,就写出来了。 MBR ( Master Boot Record, 另一说法为 Main Boot Record ) ,中文意为主引导区记录。硬盘的 0磁道的第一个扇区称为 MBR ,它的大小是 512 字节,而这个区域可以分为三个部分。第一部分为 pre-boot 区(预启动区),占 446 字节;第二部分是 Partition table 区(分区表),占 64 个字节,硬盘中分区有多少以及每一分区的大小都记在其中。第三部分是 magic number ,占 2个字节,固定为 55AA 。他是不属于任何一个操作系统,也不能用操作系统提供的磁盘操作命令来读取它。但我们可以用 ROM-BIOS 中提供的 INT13H 的 2号功能来读出该扇区的内容,也可用软件工具 中的 来读取。用 INT13H 的读磁盘扇区功能的调用参数如下: 入口参数: AH=2 (指定功能号) AL= 要读取的扇区数 DL= 磁盘号( 0、 1-软盘; 80 、 81- 硬盘) DH= 磁头号 CL 高 2位+CH= 柱面号 CL 低 6位=扇区号 CS:BX= 存放读取数据的内存缓冲地址出口参数: CS:BX= 读取数据存放地址错误信息:如果出错 CF=1 AH= 错误代码用 DEBUG 读取位于硬盘 0柱面、 0磁头、 1扇区的操作如下: A>DEBUG -A 100 XXXX:XXXX MOV AX,0201 (用功能号 2读 1个扇区) XXXX:XXXX MOV BX,1000 (把读出的数据放入缓冲区的地址为 CS:1000 ) XXXX:XXXX MOV CX,0001 (读 0柱面, 1扇区) XXXX:XXXX MOV DX,0080 (指定第一物理盘的 0磁头) XXXX:XXXX INT 13 XXXX:XXXX INT 3 XXXX:XXXX (按回车键) -G=100 (执行以上程序段) -D 1000 11FF (显示 512 字节的 MBR 内容) MBR 组成一个扇区的硬
MBR分区表 来自淘豆网m.daumloan.com转载请标明出处.