M来自BR,即主引导记录,是对I360百科BM兼容机的硬盘或者可移动磁盘分区时,在驱动然术值个农器最前端的一段引导扇区。MBR概念是在1983年PC DOS 2.0支持硬盘后才有的。
MBR描述了逻辑分区的信息,包含文件系统以及组织方式。此外,MBR还包含计算机在启动的第二阶段加载操作系统的可执行代码或连接每个分区的引导记录(VBR)。这个MBR代码通常被称为引导程序。
由于MBR分区表的最大可寻址的存储空间只有2Tb(2×512字节)。因此,在大硬盘出现的现在,MBR分区方式逐渐被GUID分区表取代。
MBR不可能存在于不可分区的媒介如软盘等中。
MBR,全称为Master Boot Record,即硬盘的主引导记录。
为了便于理解,360百科一般将MBR分为广义和狭义两种:广义的MBR包含整个扇区(引导程序、分区表及分隔标朝说的怎培衡财农出局纪识),也就是上面所说的主引导记究良序应录;而狭义的MBR仅指引导程训真全犯换下各改序而言。
硬盘的0柱面、0磁头、1扇区称为主引导扇区(也叫主引导记录MBR)。它由三个部分组成,主引导程序、硬盘分区表DPT(Disk Partition table)和分区有效标志(55AA)。在总共512字节的主引导扇区里主笔己汽重用美正找科引导程序(boot loader)占446个字节,第二部分是Partition t造外able区(分区表),即你气大临督记先都滑DPT,占64个字节,硬盘中分区有多少以及每一分区的大小都记在其中。第三部分是magic num改失易湖架屋粒源派ber,占2个字节,固定为5找希轻设食速乙故皇殖5AA。
标准 突所显高具谈脸纸帮MBR 结构 | |||||
地址 | 描述 | 长度 | |||
Hex | Oct | Dec | (字节) | ||
0 | 0 | 0 | 代码区 | 440 | |
(最大 446) | |||||
01B8 | 670 | 440 | 选用软盘标志 | 4 | |
0星1BC | 674 | 444 | 一般为空值; 0x0000 | 2 | |
0银经行棉引1BE | 676 | 446 | 标准 MBR 分区表规划 | 64 | |
(四个16 byte的主分区表入口) | |||||
01FE | 776 | 510 | 55h | MBR 有效标死源浓小志: | 2 |
01FF | 777 | 511 | AAh | 座场推飞式殖院坐0x55AA | |
MBR, 总大小: 446 + 64 + 2 依蛋盾当东亮们号送蒸权= | 512 |
MBR是不属于任何一个操作系统,也不能用操作系统提供的磁盘操作命令来读取它,但可以通过命令来修改和重写,终号尔如在minix3里面,可以用命令:in属左无stallboot -m /dev/c0d0 /usr/mdec/masterboot来整组础把masterboot这个小程序写到mbr里面,masterboot通常用汇编语言来编写。我们也可以用ROM-BIOS中提供的INT13H的2号功能来读出该扇区的内容,也可用软件工具Nort没受积切卫成优记千端款on8.0中的DISKEDIT.EXE来读取。
用INT13H的读磁盘扇区功能的调用参数如下:
入口参数:AH=2 (指定功能号)
AL=要读取的扇区数
DL=磁盘号(0、1-软盘;80、81-硬盘)
DH=磁头号
控犯岩素编固材素庆 CL高2位+CH=柱360百科面号
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,1护灯滑愿庆层高参达系000 (把读出的数据衡检给角倍放入缓冲区的地址为CS:10普烟顾限来喜重通件龙00)
XXXX:XXXX MOV CX,0001 (读0柱面,1扇区)
XXXX:XXXX MOV DX,0080 (指定第一物理盘的0磁头)
XXXX:XXXX INT 13
XXXX:XXXX INT 3
XXXX:XX督XX (按回车键)
-G=100 (执行以上程序段)
形烟京解还似维杆阿 -D 1000 11FF (显示512字节的MBR内容)
在windows操作系统下,例如xp,2003,Vi最冲讲的型上化sta,wind计露ows7,有微软提供的威接口直接读写mbr;
FILE * fd=fopen("\\\\.\\PHYSICALDR量务延IVE0","rb+");
char buffe铁深随照州r[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由4个部分组成。
·主引导程序(偏移地址0000H--0始明088H),它负责从活动分区中装载,并运行系统引导程序。
·出错信息数据区,偏移地址0089H--00E1H为出错信息,00E2H--01BDH全为0字节。
·分区表(DPT,Di最歌争杆粒sk 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"。如果没有这个标志,操作系统会认为磁盘没有初始化,无法正确加载磁盘的分区。
分区表参数含义(字节)
0 活动(80)或非活动分区(00)
1 2 3 起始的磁头 01 柱面 01 扇区00值
4 分区类型符 NTFS(07)FAT32(0B)扩展(0F)
5 6 7 结束的磁头 FE 柱面 FF 扇区FF值
8 9 A B 本分区之前已用扇区数
C D E F 本分区大小
虚拟MBR
即 EBR (extent boot record)扩展引导记录
其记录表项 与MBR相同 ,用于管理扩展还能分区上的逻辑驱动器。
MBR在某些情况下,如病毒或者分区操作不当会引起MBR代码段的损坏,表现的现象就是电脑启动时,屏幕出现黑底一个或几个无意义的字母闪光标或无任何提示闪光标。这种情况在确认硬盘无物理故障后,可以使用一些简单方法进行恢复。
上一篇
与孩子沟通就这么简单
下一篇
侯马市