關注詞:BIOS啟動模式、啟動過程、MBR、PBR、Bootmgr、windows
難度:中級
閱讀對象:運維人員、發燒友
适用操作系統:Vista、windows7、windows8
(此圖來源百度圖庫)
本文要讨論的是BIOS啟動模式為Legacy模式時(即傳統模式,相對于現在的UEFI模式而言的),到我們選擇好啟動的系統并回車,這個過程所涉及的知識内容。了解這個過程,對于運維人員來說,應該是非常必要,因為類似活動分區标志丢失,MBR損壞,PBR損壞,bootmgr丢失等故障頻率比較高,當我們理解這個過程後,自然就能快速确定修複方法了。
【系統引導過程】
整個過程就是,BIOS上電自檢,想必這個大家耳朵都聽出繭來了,自檢完成,将磁盤上的MBR引導程序載入内存并執行,然後載入活動分區磁盤上的PBR引導程序到内存并執行,然後讀取活動分區上的bootmgr文件到内存執行,bootmgr解析bcd文件,提示用戶選擇需要啟動的操作系統,最後根據選擇加載winload.exe,并轉移控制權。
接下來,除了bios自檢老生常談的内容,我們詳細看下其他節點的内容。
【MBR】
BMR,是磁盤上0頭0柱1扇區的一段代碼,其中有一段引導程序和磁盤分區表。分區表這裡就不做分析了,保雲提取其中一小段代碼片段來看下都有些什麼内容。
看最右邊的内容,是不是有的比較熟悉?
Invalid partition table,不正确的分區表。
Error loading operating system,加載操作系統出錯。
Missing operating system,操作系統丢失。
當我們看到這樣的提示時,至少可以确定,MBR區域正常,問題出在下一個環節,多數是活動分區标志丢失,使用分區工具重新激活即可。
當然,既然MBR中是一段可執行代碼,軟件廠家就可以編寫自己的代碼寫到這個區域,圖中是典型的由微軟提供的代碼。
下面我們看看還有那些,如圖所示。
引導程序不同,出錯時的提示當然也不一樣。grub類型也是經常碰到的,品牌機自帶linux系統,或者安裝linux windows雙系統時常使用的類型,出錯時會有grub字樣,一眼就能看出意思。
【PBR】
PBR位于活動分區最開始的一段代碼,同樣保雲也截取部分代碼出來讓大家看下。
A disk read error occurred.(一個磁盤讀取錯誤發生)
BOOTMGR is compressd(bootmgr被壓縮)
An operating system wasn’t found.Try disconnecting and drivers that don’t contain a operating system.(沒找到操縱系統,嘗試斷開不包含操作系統的驅動器)
當看到這些錯誤提示的時候,至少可以判斷PBR區域正常,即活動分區标志及引導代碼正常,可能出現的問題當然是下一個環節,要麼是磁盤确實有故障,比如壞扇導緻無法讀取磁盤數據,要麼就是bootmgr文件損壞,這個時候最好做個磁盤掃描。要麼就是當前活動分區根本沒有bootmgr等引導内容(錯誤的激活了分區,或者分區内容被删除)。
PBR中的引導程序有時候也會損壞了,可以是喲個bootice這樣的工具修複。MBR修複工具更多了,bootice自然不用說,其他的比如磁盤精靈等。
同樣,PBR中的引導程序也有不同的類型。
【Bootmgr啟動管理器】
Bootmgr(Boot Manager):啟動管理器。Vista以後代替Windows xp中NTLDR,是一個隐藏文件,位于活動分區根目錄。
從PBR得到控制權後,bootmgr讀取\boot\bcd文件,如果有多個啟動項可以選擇,則顯示啟動菜單,接受用戶的選擇。
然後加載被選擇項指向的系統加載文件,通常為%sysdir%system32\winload.exe。最後移交控制權。
BCD(Boot Configuration Data,啟動配置數據)Vista以後取代了NTLDR中的boot.ini。存儲了多操作系統的啟動位置、啟動方式等參數。
BCD文件采用二進制方式存儲,所以不能像boot.ini的文本存儲方式可以用記事本編輯,而需要專用工具編輯,如Bcdedit.exe 。
Bcdedit.exe 位于%windir%System32 目錄中。
全文完,希望能夠幫到大家。
轉載必須保留以下内容:
原創作者 保雲,微信/QQ同号6911916。
daren858(長按可複制)
,更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!