一哥MBR是一个硬盘主引导记录分析器,支持读入、转储、还原MBR。
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由4个部分组成。
硬盘MBR扇区·主引导程序(偏移地址0000H--0088H),它负责从活动分区中装载,并运行系统引导程序。
·出错信息数据区,偏移地址0089H--00E1H为出错信息,00E2H--01BDH全为0字节。
·分区表(DPT,Disk Partition Table)含4个分区项,偏移地址01BEH--01FDH,每个分区表项长16个字节,共64字节为分区项1、分区项2、分区项3、分区项4。
·结束标志字,偏移地址01FE--01FF的2个字节值为结束标志55AA,称为“魔数”(magic number)。如果该标志错误系统就不能启动。
MBR的结构如下表所示
字节偏移(16进制)
字节数
描述
00~1BD
446
引导代码
1BE~1CD
16
分区表项1
1CE~1DD
16
分区表项2
1DE~1ED
16
分区表项3
1EE~1FD
16
分区表项4
1FE~1FF
2
签名值“55AA”
具体含义如下:
(1)0x00~0x1BD:446个字节,包含一段指令,用以通知计算机如何访问分区表并定位操作系统的位置
这部分的代码会因为操作系统不同而不同,利用引导代码可以实现多重系统引导。多系统引导有两种方法可以实现:一种方法是用Windows操作系统在引导分区中设置一段代码,先加载进入用户选择系统的界面,允许用户选择要进入的系统,再进入指定的系统;第二种方法是改变MBR中的引导代码,该代码直接呈现给用户一个选择系统的界面。
(2)0x1BE~0x1FD:64个字节,4个分区表项,每个表项占用16个字节,描述一个分区,最多可以描述4个分区(这就是为什么MBR分区体系只能分成4个区【我们平时看到的分区一般可以从26个字母中选取任意多个当做分区标识(多于4个),这是因为那些分区是逻辑分区,这里的4个分区指的是主分区和扩展分区的数目,而逻辑分区是在扩展分区中划分出来的,也叫做二级、三级扩展分区。】)。
分区表项并没有顺序要求,即不要求第一个分区表项在第二个分区表项前。
分区表也不要求从第一个分区表项开始
(3)0x1FE~0x1FF:2个字节,有效结束标志“55AA”。如果没有这个标志,操作系统会认为磁盘没有初始化,无法正确加载磁盘的分区。
分区表参数含义(字节)
1 活动(80)或非活动分区(00)2 3 4 起始的磁头 01 柱面 01 扇区00值
5 分区类型符 NTFS(07)FAT32(0B)扩展(0F)
6 7 8 结束的磁头 FE 柱面 FF 扇区FF值
9 10 11 12 本分区之前已用扇区数
13 14 15 16 本分区大小
虚拟MBR
即 EBR (extent boot record)扩展引导记录
其记录表项 与MBR相同 ,用于管理扩展还能分区上的逻辑驱动器。




















大小: 5.9M
大小: 501KB
万能硬盘低格工具(支持所有IDE、SATA、移动硬盘)V2.36 中文绿色版
硬盘分区王(Acronis Disk Director Suite)10.216 汉化免费版
pq硬盘分区魔术师中文版v10.0 绿色版
西数硬盘修复工具(WD Pro Tool))v5.3 绿色版
MacDrive88.0.6 破解版
Norton PartitionMagic(PowerQuest)分区魔法师8.05简体中文汉化版
硬盘空间分析(SpaceSniffer)v1.3.0.2 最新绿色版
PCTOOLS9.0 免费版
西数WD硬盘检测(Data lifeguard diagnostics)5.20 绿色版
HD Tach(硬盘测速工具)v3.0.4.0 中文绿色版
磁盘整理工具AdvancedDefragV4.5汉化注册版
Vopt(磁盘整理工具)9.0简体中文版
金士顿kingston hyperx ssd(sh100s3 sh100s3b)系列固态硬盘固件332版
Flash Memory Toolkit(闪存设备工具包)V1.20汉化绿色特别版
TreeSize ProfessionalV6.0.3 绿色英文便携版
Fujitsu Diagnostic (IDE硬盘坏道检测工具)v6.80
HDHacker1.4汉化绿色免费版
FATWalker(分析和浏览硬盘分区上的任何媒介)v0.1.1.121汉化绿色免费版