小編推薦的這款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相同 ,用于管理擴展還能分區上的邏輯驅動器。
軟件聲明
出于自愿下載的用戶,在使用和分享該軟件時而導致的任何后果,均與本網站無關。
- PC官方版
- 安卓官方手機版
- IOS官方手機版