「科普」UEFI+GPT、Legacy+MBR引導模式介紹 & 引導修復

「科普」UEFI+GPT、Legacy+MBR引導模式介紹 & 引導修復

此貼主要介紹3個內容:

1,磁盤分區表格式:MBR、GPT

2,BIOS引導模式:Legacy BIOS、UEFI BIOS

3,引導修復方法:NTBOOTAutofix工具修復、BOOTICE工具修復

一、磁盤分區表格式

一般來說,磁盤分區表有兩種格式:MBR和GPT

MBR分區表在windows操作系統下最多支持4個主分區或3個主分區+1個擴展分區(包含多個邏輯分區),擴展分區必須劃分為邏輯分區才能使用,1個擴展分區可以劃分多個邏輯分區

MBR分區表不支持容量大於2.2TB的分區(一些硬盤製造商將他們的容量較大的磁盤升級到了4KB的扇區,這意味著MBR的有效容量上限提升到了16 TB)

如下圖是一個MBR分區表示例:1個主分區+1個擴展分區(劃分了3個邏輯分區)

「科普」UEFI+GPT、Legacy+MBR引導模式介紹 & 引導修復

GPT分區表對分區數量沒有限制,但在windows系統上最多可以支持128個主分區

GPT分區表突破了MBR最大支持2.2T分區的限制,貌似最大支持18EB的分區

如下圖是一個GPT分區表示例:劃分了7個主分區

「科普」UEFI+GPT、Legacy+MBR引導模式介紹 & 引導修復

二、BIOS引導方式

目前主要的系統引導方式也有兩種:傳統的LegacyBIOS和新型的UEFI BIOS

一般來說,有如下兩種引導+磁盤分區表組合方式:LegacyBIOS+MBR和UEFI BIOS+GPT

Legacy BIOS無法識別GPT分區表格式,所以也就沒有LegacyBIOS+GPT組合方式;

UEFI BIOS可同時識別MBR分區和GPT分區,所以UEFI下,MBR和GPT磁盤都可用於啟動操作系統。不過由於微軟限制,UEFI下使用Windows安裝程序安裝操作系統是隻能將系統安裝在GPT磁盤中。

再來說說傳統Legacy BIOS和新型UEFI BIOS引導方式的工作原理吧:

Legacy BIOS

+++++++++++++++++++++++++++++++++++++++++++++++++++++++

LegacyBIOS→MBR→“活動的主分區”→\\bootmgr→\\Boot\\BCD→\\Windows\\system32\\winload.exe

+++++++++++++++++++++++++++++++++++++++++++++++++++++++

傳統Legacy BIOS引導windows操作系統時,是通過一個活動的主分區下的bootmgr(啟動管理器)文件導入根目錄下boot文件夾裡的BCD(啟動設置數據)文件,然後BCD文件根據自身的配置內容加載系統啟動文件winload.exe(位置:根目錄\\Windows\\system32\\winload.exe)來啟動系統。

一個BCD文件可以加載多個系統啟動文件從而實現引導多個系統的啟動

通過EasyBCD工具看以看到BCD文件的內容,如下是我的win8.1和win10兩個系統的BCD內容:

「科普」UEFI+GPT、Legacy+MBR引導模式介紹 & 引導修復

我的windows 8.1在C盤,winload.exe位置:C: \\Windows\\system32\\winload.exe

我的window 10在G盤,winload位置:G: \\Windows\\system32\\winload.exe

通過BCD來加載不同位置的winload.exe來實現這兩個系統的啟動

通過引導修復工具NTBOOT Autofix查看BCD文件內容,如下圖:

「科普」UEFI+GPT、Legacy+MBR引導模式介紹 & 引導修復

需要注意的是:MBR磁盤格式下,windows系統的啟動文件(bootmgr、BCD)必須存放在活動的主分區內,這樣才能正常引導系統啟動(MBR磁盤分區格式下,只允許有一個分區是活動的)。

如果是使用微軟原版操作系統按照windows安裝程序來進行系統安裝,系統會自動創建一個隱藏的活動主分區(win7貌似是100M,win8貌似是350M)用來存放啟動文件;

如果採用其他安裝方式來安裝系統,由於系統默認並不會自動創建這個活動的主分區,啟動文件將會存放我們的系統盤裡,所以我們在採用其它安裝方式安裝第一個系統時,需要確保安裝系統的分區是活動的、而且是主分區,而安裝第二個、第三個…系統時,就不必要求必須是主分區了,邏輯分區也可以,因為安裝第二個、第三個…系統時,我們已經有了一個活動的主分區了(第一個系統所在的分區),這個活動的主分區下的BCD文件裡已經包含了我們的第二個、第三個…系統的啟動信息用來啟動第二個、第三個…系統。

UEFI BIOS

+++++++++++++++++++++++++++++++++++++++++++++++++++++++

UEFIBIOS→EFI系統分區(FAT格式的分區)→\\efi\\Microsoft\\boot\\bootmgfw.efi→efi\\Microsoft\\BCD→\\Windows\\system32\\winload.efi

+++++++++++++++++++++++++++++++++++++++++++++++++++++++

UEFI BIOS引導windows系統時,是通過一個FAT格式分區下的bootmgfw.efi文件來導入BCD文件,然後BCD文件根據自身的配置內容加載系統引導文件winload.efi

(對比legacy引導發現,UEFI的引導文件為winload.efi,而Legacy的引導文件為winload.exe)

需要注意的是:GPT磁盤格式下,windows系統的啟動文件(bootmgfw.efi、BCD)是存放在一個FAT格式的分區裡的,有些出廠預裝win8系統的電腦下將該FAT分區稱之為ESP分區或EFI分區

如下圖,ESP和EFI分區一般都是隱藏的FAT分區,可以通過DG分區工具來創建ESP分區,還可以用DG為該分區添加盤符讓其在資源管理器下顯現出來

「科普」UEFI+GPT、Legacy+MBR引導模式介紹 & 引導修復

「科普」UEFI+GPT、Legacy+MBR引導模式介紹 & 引導修復

可見,UEFI+GPT模式引導windows系統時,並不需要mbr主引導記錄,也不需要活動分區,只需要你一個存放了引導啟動文件的fat格式分區就可以了,這個fat分區當然也可以是U盤等外接USB設備了。

就目前情況而言,GPT分區表磁盤不支持32位的win7以及win7之前的系統,支持64位的XP、win7、win8、win10和32位的win8、win10。一般地,GPT磁盤多與64位windows系統組合搭配。

三、引導修復教程

再來說說引導丟失、損壞導致系統無法正常進入情況下,如何通過修復引導來使系統正常啟動。

引導問題故障舉例:

常見的引導丟失、損壞情況說明如下:

「科普」UEFI+GPT、Legacy+MBR引導模式介紹 & 引導修復

上圖,Winload.exe文件有問題,可見是Legacy BIOS引導文件出錯;如果此處是winload.efi,則應推測是UEFI BIOS引導文件出錯。

「科普」UEFI+GPT、Legacy+MBR引導模式介紹 & 引導修復

上圖,NTLDR is missing,NTLDR文件丟失。推斷為:XP等NT5.x架構操作系統引導丟失。

NTLDR是如win 2000、XP、win 2003等NT5.x架構操作系統的啟動管理器文件,與之對應的bootmgr則是如Vista、win7/8/9/2008/2012等NT6.x架構操作系統的啟動管理器,如下圖:

「科普」UEFI+GPT、Legacy+MBR引導模式介紹 & 引導修復

上圖,Bootmgr is missing,推斷為:win7、win8等NT6.x架構操作系統引導丟失。

「科普」UEFI+GPT、Legacy+MBR引導模式介紹 & 引導修復

引導修復:

針對於以上各種引導問題給出引導修復解決方法

一般地,引導修復有很多種方法,牛逼的大神直接使用dos命令來搞定,那麼針對於我們普通用戶,我推薦你先使用網絡上的引導修復工具來進行修復,等到使用熟練了,想多學習些技術,這時候再去研究dos命令吧。

下面介紹的兩種方法所涉及到NABOOT Autofix、BOOTICE、DG等工具一般PE下都會集成的,這裡就不給大家放單獨的下載鏈接了。PE製作及使用的話,這裡就不說了,記得N久N久N久以前就發過專門的教程了,如果你非要問我關於PE的東西,請百度“電腦店”“大白菜”“老毛桃”等關鍵字。

方法一:使用NTBOOT AutoFix工具來修復引導

引導修復工具有很多,這裡推薦這款工具給大家,上手簡單,操作簡單

如果你的系統無法正常進入,那麼請到PE下運行NTBOOT AutoFix進行修復;如果你是多系統,其中有一個系統可以正常進入,其它系統引導丟失,那麼就可以在這個正常的系統下使用NTBOOT AutoFix進行修復,一般PE下都會集成這個軟件。

選擇你的系統盤符,如下圖

「科普」UEFI+GPT、Legacy+MBR引導模式介紹 & 引導修復

可以選擇自動修復或手動修復

自動修復:會自動檢測你的所有分區,然後查找到你的分區上已安裝的系統自動進行修復

手動修復:檢測你的所有分區,查找到你的分區上已安裝的系統,讓你手動決定是否進行修復,

「科普」UEFI+GPT、Legacy+MBR引導模式介紹 & 引導修復

如下圖,我選擇了手動修復,檢測到我的G盤安裝了win10,提示我修復還是跳過,因為我的引導正常,為了給大家演示,我選擇了跳過——不修復,然後檢查到我的C盤安裝了win8.1

「科普」UEFI+GPT、Legacy+MBR引導模式介紹 & 引導修復

必須等到修復報告建立完成,才可以點擊“退出”完成引導修復

「科普」UEFI+GPT、Legacy+MBR引導模式介紹 & 引導修復

【注意】

使用該軟件進行UEFI+GPT模式系統引導修復時,需要先掛載ESP/EFI分區,可通過DG等工具為ESP/EFI分區指定盤符掛載,打開NTBOOT引導修復工具,在裡面選擇ESP/EFI分區所在盤符,修復即可

方法二:使用BOOTICE工具來修復引導

此工具不是專門用來修復引導的,其功能很是強大,這裡只講如何藉助它修復引導

這裡我以修復UEFI+GPT模式下win8和win10雙系統引導為例說明,Legacy+MBR類似

運行BOOTICE後,切換到“BCD編輯”,然後“新建BCD”

「科普」UEFI+GPT、Legacy+MBR引導模式介紹 & 引導修復

新建BCD,文件名為:BCD

「科普」UEFI+GPT、Legacy+MBR引導模式介紹 & 引導修復

然後點擊“查看/修改”

「科普」UEFI+GPT、Legacy+MBR引導模式介紹 & 引導修復

點擊“添加”,選擇“windows vista/7/2008”(這是NT6.x架構系統,當然win8/10也適用)

「科普」UEFI+GPT、Legacy+MBR引導模式介紹 & 引導修復

點擊“添加”後,如下圖為默認的初始BCD內容,在此基礎上,我們進行win8+win10 BCD的修改

「科普」UEFI+GPT、Legacy+MBR引導模式介紹 & 引導修復

按照下圖說明進行各項修改,啟動文件winload.efi為UEFI+GPT啟動文件,如果是修復Legacy+MBR啟動文件,此處應為winload.exe。

修改後,點擊“保存到當前系統設置”,這樣,win8的BCD內容就添加完成了

「科普」UEFI+GPT、Legacy+MBR引導模式介紹 & 引導修復

接下來,我們按照上面的方法再次添加win10的BCD信息,修改好之後,保存當前系統設置,win10的BCD信息就添加好了;然後再點擊“保存全局設置”,這樣,win8和win10的引導信息就會保存到我們創建的這個BCD文件中了,如下圖:

「科普」UEFI+GPT、Legacy+MBR引導模式介紹 & 引導修復

創建好BCD文件後,我們只需在PE下將這個BCD替換到相應的目錄下就可以完成引導修復了。上面我們是以UEFI+GPT模式舉例的,隨意此處BCD替換文件的目錄為ESP/EFI這個fat分區:efi\\Microsoft\\BCD

如果是Legacy+MBR模式,若磁盤有一個隱藏的活動主分區,我們需要先給這個隱藏的主分區添加盤符(PE下磁盤管理添加盤符或藉助DG工具添加),然後將該BCD文件替換到這個活動主分區:\\Boot\\BCD

方法二,同樣適用於單系統BCD文件的修改;也可以不新建BCD文件,直接對系統中的BCD文件進行修改,就省去了替換BCD的步驟,如下:

「科普」UEFI+GPT、Legacy+MBR引導模式介紹 & 引導修復

之後的步驟跟上面一樣。

最後說明下,方法二看起來要比方法一複雜了許多,但是我為什麼還要費如此功夫介紹呢?因為,通過方法二,大家會更加清楚理解UEFI+GPT、Legacy+MBR引導的運行機制,這樣就可以以不變應萬變了!

另外,如果你是系統折騰狂的話,通過添加修改BCD文件,你甚至可以製作出支持UEFI和Legacy BIOS 的win7+win8+win10多合一啟動U盤,從而實現一盤在手,天下我有——一個U盤就可以搞定多個系統的安裝!

「科普」UEFI+GPT、Legacy+MBR引導模式介紹 & 引導修復


分享到:


相關文章: