免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1660 | 回复: 1
打印 上一主题 下一主题

MBR简介 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2011-12-01 14:38 |只看该作者 |倒序浏览
 MBR简介












MBR,全称为Master Boot Record,即硬盘的主引导记录。

  为了便于理解,一般将MBR分为广义和狭义两种:广义的MBR包含整个扇区(引导程序、分区表及分隔标识),也就是上面所说的主引导记录;而狭义的MBR仅指引导程序而言。

硬盘的0柱面、0磁头、1扇区称为主引导扇区(也叫主引导记录MBR)。它由三个部分组成,主引导程序、硬盘分区表DPT(Disk Partition table)和硬盘有效标志(55AA)。在总共512字节的主引导扇区里主引导程序(boot loader)占446个字节,第二部分是Partition table区(分区表),即DPT,占64个字节,硬盘中分区有多少以及每一分区的大小都记在其中。第三部分是magic number,占2个字节,固定为55AA。





注意

  MBR是不属于任何一个操作系统,也不能用操作系统提供的磁盘操作命令来读取它,但可以通过命令来修改和重写,如在minix3里面,可以用命令:installboot -m /dev/c0d0 /usr/mdec/masterboot来把masterboot这个小程序写到mbr里面,masterboot通常用汇编语言来编写。我们也可以用ROM-BIOS中提供的INT13H的2号功能来读出该扇区的内容,也可用软件工具Norton8.0中的DISKEDIT.EXE来读取。

调用参数

  用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内容)

  在windows操作系统下,例如xp,2003,Vista,windows7,有微软提供的接口直接读写mbr;

  FILE * fd=fopen("\\\\.\\PHYSICALDRIVE0","rb+");

  char buffer[512];

  fread(buffer,512,1,fd);

  //then you can edit buffer[512] as your wish......

  fseek(fd,0,SEEK_SET); //很重要

  fwrite(buffer,512,1,fd); //把修改后的MBR写入到你的机器

  fclose(fd); //大功告成

MBR组成

  一个扇区的硬盘主引导记录MBR由如图6-15所示的4个部分组成。

  ·主引导程序(偏移地址0000H--0088H),它负责从活动分区中装载,并运行系统引导程序。

  ·出错信息数据区,偏移地址0089H--00E1H为出错信息,00E2H--01BDH全为0字节。

  ·分区表(DPT,Disk Partition Table)含4个分区项,偏移地址01BEH--01FDH,每个分区表项长16个字节,共64字节为分区项1、分区项2、分区项3、分区项4。

  ·结束标志字,偏移地址01FE--01FF的2个字节值为结束标志55AA,如果该标志错误系统就不能启动。

论坛徽章:
33
ChinaUnix元老
日期:2015-02-02 08:55:39CU十四周年纪念徽章
日期:2019-08-20 08:30:3720周年集字徽章-周	
日期:2020-10-28 14:13:3020周年集字徽章-20	
日期:2020-10-28 14:04:3019周年集字徽章-CU
日期:2019-09-08 23:26:2519周年集字徽章-19
日期:2019-08-27 13:31:262016科比退役纪念章
日期:2022-04-24 14:33:24
2 [报告]
发表于 2011-12-01 15:45 |只看该作者
也不能用操作系统提供的磁盘操作命令来读取它

用dd命令可以读出来吧
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP