windows引导过程以及多系统引导原理
??版權聲明:未經作者允許,嚴禁用于商業出版,否則追究法律責任。網絡轉載請注明出處,這是對原創者的起碼的尊重!!!
1 Windows的引導方式
??目前主要的系統引導方式也有兩種:傳統的Legacy BIOS和新型的UEFI BIOS。
??Legacy BIOS無法識別GPT分區表格式;UEFI BIOS可同時識別MBR分區和GPT分區,所以UEFI下,MBR和GPT磁盤都可用于啟動操作系統。不過由于微軟限制,UEFI下使用Windows安裝程序安裝操作系統是只能將系統安裝在GPT磁盤中。
??UEFI是一個微型操作系統,放在固件中,能夠識別FAT文件系統,運行efi程序。
Boot Loader:
- 對于PC平臺來說Boot Loader=BIOS+啟動管理器+啟動文件+載入程序(IPL+SPL),但是一般指啟動管理器及啟動設置文件。
- 功能:
- 啟動管理器+啟動設置文件:提供啟動選項,定位、加載并執行SPL。
- SPL:加載OS內核,SPL只認識自己分區的內核文件。
1.1 Legacy BIOS+MBR引導原理
??引導過程:上電–>Legacy BIOS–>MBR–>DPT–>PBR–> Bootmgr(vista開始)/NTLDR–>BCD(vista開始)/boot.ini–>Winload.exe–>內核加載 –>windows vista/windows xp
- 上電,執行Legacy BIOS
- Legacy BIOS先要對CPU初始化,然后跳轉到BIOS啟動處進行POST自檢,此過程如有嚴重錯誤,則電腦會用不同的報警聲音提醒,接下來采用讀中斷的方式加載各種硬件,完成硬件初始化。
- 讀入MBR中的IPL。
- IPL確定分區表中的活動主分區(也叫激活主分區),并找到該分區的引導扇區(分區的第一個扇區)中的分區引導記錄(PBR),載入PBR中的啟動管理器(bootmgr.exe或NTLDR)。
- 啟動管理器讀取該分區根目錄下boot文件夾里的啟動設置文件(BCD或boot.ini),然后根據啟動設置文件定位并加載二級引導載入程序winload.exe(位置:C:\Windows\system32\winload.exe)來加載OS內核。如果有多個系統,啟動設置文件就會有多個啟動項,相應的bootmgr也會提供選擇菜單,然后則根據用戶選擇來決定加載哪個loader(多系統引導原理1)。
??啟動管理器bootmgr和啟動設置文件BCD合稱為啟動文件,IPL以及SPL(winload.exe)合稱為載入程序。啟動文件與載入程序合在一起叫做boot loader。
??MBR磁盤分區格式下,只允許有一個分區是活動的,因此啟動文件(bootmgr、BCD)必須存放在活動的主分區內,這樣才能找到系統載入程序。
??如果使用Windows的官方安裝程序,會自動寫入MBR,此外還會建一個隱藏的活動主分區,寫入啟動管理器和啟動設置文件,并將自身的以及可識別的所有二級引導載入程序加入啟動設置文件中(多系統引導原理2)。以后裝入其它windows系統時,則會重寫MBR和該分區。當然也可以不使用這個隱藏分區,而將bootmgr、BCD放在系統所在分區的PBR(PBR容量遠遠大于MBR)中,并設置系統分區為活動分區。但要注意的是:雖然可以在多個分區中安裝系統,但只有一個分區是活動分區,能夠引導系統,刪除該分區,其他分區的系統也無法啟動。
1.2 UEFI BIOS+GPT 引導原理
??引導過程:上電–>UEFI–>GPT分區表–>EFI分區–>\efi\Microsoft\boot\bootmgfw.efi–>efi\Microsoft\BCD→\Windows\system32\winload.efi。
- 開機,執行UEFI BIOS;
- UEFI BIOS運行預加載環境先直接初始化CPU和內存,CPU和內存若有問題則直接黑屏,其后啟動PXE采用枚舉方式搜索各種硬件并加載驅動,完成硬件初始化。
- 從FAT格式的EFI分區找到、讀入、執行啟動管理器(\efi\Microsoft\boot\bootmgfw.efi)。
- 啟動管理器導入EFI分區BCD文件(efi\Microsoft\BCD),然后根據其配置內容加載引導加載程序winload.efi(位置:C:\Windows\system32\winload.efi)來加載OS內核。如果BCD中有多個配置項,則會讓用戶選擇要啟動的系統。如果有多個系統,啟動設置文件就會有多個啟動項,相應的bootmgr也會提供選擇菜單,然后則根據用戶選擇來決定加載哪個loader(多系統引導原理1)。。
??需要注意的是:GPT磁盤格式下,windows系統的啟動文件(bootmgfw.efi、BCD)是存放在一個FAT格式的分區里的,有些出廠預裝win8系統的電腦下將該FAT分區稱之為ESP分區或EFI分區。
??可見,UEFI+GPT模式引導windows系統時,并不需要mbr主引導記錄,也不需要活動分區,只需要你一個存放了引導啟動文件的fat格式分區就可以了,這個fat分區當然也可以是U盤等外接USB設備了。所以我們在安裝第一個系統時,需要由系統自動或手動建立一個EFI分區,用來存放啟動文件,之后在其它分區安裝系統時,會覆蓋之前的啟動文件(不是系統載入程序)。
2 多系統引導原理
??每個分區都有一個boot sector,如果該分區有操作系統,操作系統會將份啟動文件 寫入到各自所在分區的boot sector中,也可以選擇寫入MBR中。
??在 Linux 系統安裝時,你可以選擇將 boot loader 安裝到 MBR 去,也可以選擇不安裝。 如果選擇安裝到 MBR 的話,那理論上你在 MBR 與 boot sector 都會保有一份boot loader 程序的。 至于 Windows 安裝時,預設主動的將 MBR 與 boot sector 都裝上一份boot loader!
??因此安裝多個系統時,MBR、活動分區會不斷的被覆蓋。但是啟動管理程序能夠識別其他分區引導扇區中的啟動管理器,因此可以根據用戶選擇將控制權交給相應的啟動管理器從而實現多重引導。但如果無法識別,則不能實現多系統。
??Linux的啟動管理器能夠識別Windows的,但Windows的啟動管理器則無法識別Linux的。又由于Windows在裝系統時,默認覆蓋MBR和活動分區。所以先裝Linux再裝windows,則無法引導Linux。而Linux則可以選擇是否覆蓋MBR分區和活動分區。如果不覆蓋,則需要原來的MBR支持。
??對GPT來說也類似,只不過覆蓋的是EFI分區。
??版權聲明:未經作者允許,嚴禁用于商業出版,否則追究法律責任。網絡轉載請注明出處,這是對原創者的起碼的尊重!!!
總結
以上是生活随笔為你收集整理的windows引导过程以及多系统引导原理的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: MySQL数据库的JSON数据类型详解
- 下一篇: win7与ubuntu双系统,启动err