跳到主要內容

發表文章

目前顯示的是 9月 11, 2008的文章

揭開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 ) 」...