查看單個文章
舊 2003-08-31, 07:29 PM   #1
diegowang
榮譽勳章

勳章總數
UID -
在線等級:
文章: n/a
精華:
預設 揭開MBR神秘的面紗

對於曾經因為硬碟的因素無法順利開機的人來說,或許用過「Fidsk / mbr」的指令參數,來解決電腦無法開機的問題,進而對Fdisk的隱藏參數「MBR」感到好奇。

想要知道MBR是什麼,以及它為什麼能夠解決電腦無法開機的問題時,我們得從電腦的開機過程說起。

在IBM PC相容的電腦系統上,電腦開機第一個執行的程式,就是我們常常聽到的BIOS(Basic Input / Output System;基本輸出 / 入系統)。事實上,BIOS就是主機板上一顆Flash ROM晶片,裡頭儲存了提供電腦基本操作的服務程式,而這些服務程式我們又稱為「韌體(Firmware)」,因此,我們可以利用特殊的工具程式,更新Flash ROM晶片裡頭所儲存的服務程式,來提昇、修正BIOS的功能。

當BIOS開始執行的時候,它會先進行電腦系統的「自我檢測(POST;Power On Self Test)」動作,來確認電腦上所安裝、連接的硬體設備都可以正常運作。完成自我檢測的動作後,接下來,BIOS將試著從軟碟機,讀取磁碟片上第一個磁區(Boot Sector;啟動磁軌)的資料,來啟動電腦進入作業系統。這時候,如果軟碟機中沒有可以開機的磁碟片時,BIOS就會讀取硬碟上第一個磁區「MBR(Master Boot Record;主要啟動記錄)」的資料,來啟動電腦進入作業系統。

所以,BIOS必須先找到MBR啟動磁區的資料,並且,將這份資料載入0000:7C00的記憶體位置後,電腦才能夠繼續載入作業系統的開機記錄,進入該作業系統,來完成電腦整個開機的過程。

知道MBR是在硬碟開機過程中,最重要的一份資料後,接下來,我們再來看看這份資料到底記錄了哪些資訊,使得它成為硬碟開機過程中,最重要的一份資料。

儲存在硬碟第0面、第0軌、第1磁區的MBR,在512 Bytes大小的磁區空間中,所儲存的資訊,可以分成三個部分。

第一個部分是「程式區(Boot Partition Loader;BPL,或者是Pre-Loader、Pre-Boot)」,它儲存在000h到1BDh,共446 Bytes的磁區範圍中,主要是負責載入作業系統分割區的「啟動磁區(Boot Sector)」,然後,再將電腦控制權交給啟動磁區,繼續載入作業系統的開機過程。

由於程式區是在BIOS之後,最先被電腦載入執行的區域,所以,像是多重開機管理程式、開機型病毒,以及硬碟資料加密軟體,都是利用安裝或感染程式區的方式,在載入作業系統之前先取得操控電腦的控制權。

因此,當你沒有依照正確的方式,移除多重開機管理程式、硬碟資料加密軟體,或者是感染開機型病毒,造成硬碟無法正常開機時,就可以利用「Fdisk / mbr」的指令,重新建立程式區的資料,來解決無法開機的問題。

第二個部分是「資料區(Partition Data)」,它儲存在1BEh到1FDh,共64 Bytes的磁區範圍中,而在這64 Bytes範圍中,又劃分成四個區域,來儲存四個硬碟分割區的資料,這也就是為什麼在使用Fdisk規劃硬碟分割區的時候,最多只能規劃四個「主要分割磁區(Primary Partition)」,或者是三個主要分割磁區和一個「擴充分割磁區(Extended Partition)」的原因。

也因為MBR包含了硬碟分割區(Partition Table)的資料,所以,當硬碟儲存MBR的磁區損壞時,就算是其它磁區都完好如初,這顆硬碟也無法拿來開機,或者是讀取硬碟上任何的資料。

第三個部分是「驗證區(Verify Data)」,儲存在1FEh到1FFh的2 Bytes範圍中,它是以「55AA」的字串數值來標記、驗證從000h到1FFh整個磁區範圍的資料,是否為MBR磁區而已。
 
送花文章: 0, 收花文章: 0 篇, 收花: 0 次