二、BIOS引導(dǎo)方式目前主要的系統(tǒng)引導(dǎo)方式也有兩種:
傳統(tǒng)的LegacyBIOS和
新型的UEFI BIOS一般來說,有如下兩種引導(dǎo)+磁盤分區(qū)表組合方式:
LegacyBIOS+MBR和
UEFI BIOS+GPTLegacy BIOS無法識別GPT分區(qū)表格式,所以也就沒有LegacyBIOS+GPT組合方式;
UEFI BIOS可同時識別MBR分區(qū)和GPT分區(qū),所以UEFI下,MBR和GPT磁盤都可用于啟動操作系統(tǒng)。不過由于微軟限制,UEFI下使用Windows安裝程序安裝操作系統(tǒng)是只能將系統(tǒng)安裝在GPT磁盤中。
再來說說傳統(tǒng)Legacy BIOS和新型UEFI BIOS引導(dǎo)方式的工作原理吧:Legacy BIOS++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
LegacyBIOS→MBR→“活動的主分區(qū)”→\bootmgr→\Boot\BCD→\Windows\system32\winload.exe++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
傳統(tǒng)Legacy BIOS引導(dǎo)windows操作系統(tǒng)時,是通過一個
活動的主分區(qū)下的bootmgr(啟動管理器)文件導(dǎo)入根目錄下boot文件夾里的BCD(啟動設(shè)置數(shù)據(jù))文件,然后BCD文件根據(jù)自身的配置內(nèi)容加載系統(tǒng)啟動文件winload
.exe(位置:根目錄\Windows\system32\winload.exe)來啟動系統(tǒng)。
一個BCD文件可以加載多個系統(tǒng)啟動文件從而實現(xiàn)引導(dǎo)多個系統(tǒng)的啟動通過EasyBCD工具看以看到BCD文件的內(nèi)容,如下是我的win8.1和win10兩個系統(tǒng)的BCD內(nèi)容:
我的windows 8.1在C盤,winload.exe位置:
C: \Windows\system32\winload.exe
我的window 10在G盤,winload位置:
G: \Windows\system32\winload.exe
通過BCD來加載不同位置的winload.exe來實現(xiàn)這兩個系統(tǒng)的啟動
通過引導(dǎo)修復(fù)工具NTBOOT Autofix查看BCD文件內(nèi)容,如下圖:
需要注意的是:MBR磁盤格式下,windows系統(tǒng)的啟動文件(bootmgr、BCD)必須存放在活動的主分區(qū)內(nèi),這樣才能正常引導(dǎo)系統(tǒng)啟動(
MBR磁盤分區(qū)格式下,只允許有一個分區(qū)是活動的)。
如果是使用微軟原版操作系統(tǒng)按照windows安裝程序來進(jìn)行系統(tǒng)安裝,系統(tǒng)會自動創(chuàng)建一個隱藏的活動主分區(qū)(win7貌似是100M,win8貌似是350M)用來存放啟動文件;
如果采用其他安裝方式來安裝系統(tǒng),由于系統(tǒng)默認(rèn)并不會自動創(chuàng)建這個活動的主分區(qū),啟動文件將會存放我們的系統(tǒng)盤里,所以我們在采用其它安裝方式安裝第一個系統(tǒng)時,需要確保安裝系統(tǒng)的分區(qū)是
活動的、而且是主分區(qū),而安裝第二個、第三個…系統(tǒng)時,就不必要求必須是主分區(qū)了,邏輯分區(qū)也可以,因為安裝第二個、第三個…系統(tǒng)時,我們已經(jīng)有了一個活動的主分區(qū)了(第一個系統(tǒng)所在的分區(qū)),這個活動的主分區(qū)下的BCD文件里已經(jīng)包含了我們的第二個、第三個…系統(tǒng)的啟動信息用來啟動第二個、第三個…系統(tǒng)。