Windows引導(dǎo)過程 Windows作為最流行的個人計(jì)算機(jī)操作系統(tǒng),成為了我們學(xué)習(xí)、工作和生活的一部分。平時使用計(jì)算機(jī),我們都得先按下電源鍵然后等待Windows啟動,初始化,進(jìn)入歡迎頁面,啟動完成。會不會覺得整個過程比較神奇,想一探究竟?其實(shí)整個啟動過程經(jīng)歷了多個階段,接下來小編將一一講述每一個階段,揭開它們神秘的面紗。 通電后CPU首先執(zhí)行的是主板引導(dǎo)程序,主板引導(dǎo)程序可分為BIOS和UEFI。BIOS是最早的方案,搭配MBR分區(qū)使用,BIOS逐漸被UEFI代替,UEFI一般搭配GPT分區(qū)使用,所以引導(dǎo)過程會有兩種情況:
這兩種情況都會分別介紹。 UEFI UEFI(Unified Extensible Firmware Interface)以靈活擴(kuò)展、引導(dǎo)更省時等特性,成為了BIOS的替代方案,新推出的主板和操作系統(tǒng)基本上默認(rèn)使用UEFI引導(dǎo),小編Win10系統(tǒng)采用的就是UEFI引導(dǎo)。 如何查看自己的計(jì)算機(jī)是什么方式引導(dǎo)的? 在“此電腦”上右鍵選擇“管理”,彈出“計(jì)算機(jī)管理”選擇“磁盤管理”,如果能找到一個“EFI系統(tǒng)分區(qū)”,那么就是UEFI引導(dǎo)方式了。 UEFI一般搭配GPT分區(qū)技術(shù)使用,雖然也可以搭配MBR,但是由于MBR磁盤容量最大只能是2TB,在磁盤容量越來越大的今天略顯不足,所以默認(rèn)都是使用GPT分區(qū)技術(shù)。GPT可以做到:
引導(dǎo)流程 1.按下電源鍵,電源向主板以及其它設(shè)備供電,剛開始電壓不穩(wěn),主板會持續(xù)發(fā)送RESET信號給CPU,CPU執(zhí)行初始化。當(dāng)電壓穩(wěn)定后,主板停止發(fā)送RESET信號,CPU開始執(zhí)行指令; 2.CPU讀取UEFI指令,執(zhí)行UEFI初始化,執(zhí)行其它設(shè)備的初始化; 3.查找EFI分區(qū),EFI分區(qū)不需要一定是第一個分區(qū); 4.加載\EFI\Boot\bootx64.efi,在安裝Windows時實(shí)際上會使用\EFI\Microsoft\Boot\bootmgfw.efi的內(nèi)容替換到\EFI\Boot\bootx64.efi,所以\EFI\Boot\bootx64.efi其實(shí)就是\EFI\Microsoft\Boot\bootmgfw.efi; 5.bootmgfw.efi會讀取BCD文件,BCD是一個數(shù)據(jù)庫文件,如果包含多個系統(tǒng),信息會包含在BCD中,通過顯示一個系統(tǒng)列表供用戶選擇; 6.BCD中包含每個系統(tǒng)的引導(dǎo)文件的路徑,Windows的是\Windows\System32\winload.efi,加載到內(nèi)存中并執(zhí)行; 7.winload.efi讀取\Windows\bootstat.dat文件,有需要則顯示引導(dǎo)菜單,比如安全引導(dǎo)等等;接著加載內(nèi)核程序Ntoskrnl.exe,相關(guān)輔助HAL.dll、CI.dll、PSSHED.dll、BootVID.dll,把CPU執(zhí)行權(quán)交給內(nèi)核程序; 8.內(nèi)核程序執(zhí)行系統(tǒng)初始化。 通過上面的流程可知道,引導(dǎo)相關(guān)的文件都存放在EFI系統(tǒng)分區(qū)中,下圖是小編win10的EFI系統(tǒng)分區(qū)的一些文件: BIOS BIOS(Basic Input Output System)是最早的引導(dǎo)方案并使用了相當(dāng)長的一段時間,所以在Win8、Win7、WinXP以及更早的版本都能找到BIOS的引導(dǎo)存在。BIOS只支持MBR分區(qū)技術(shù),所以GPT并不適合BIOS。 引導(dǎo)流程 1.上電并穩(wěn)定后,CPU執(zhí)行地址0xFFFF0h處指令,此處為BIOS程序; 2.BIOS進(jìn)行硬件自檢,沒有問題后加載硬盤的第一個扇區(qū)到內(nèi)存0x7c00h處,第一個扇區(qū)為MBR(Master Boot Record),MBR包含執(zhí)行程序和分區(qū)表; 3.CPU開始執(zhí)行MBR程序,查找第一個活動分區(qū),把活動分區(qū)的第一個扇區(qū)加載到內(nèi)存中,活動分區(qū)第一個扇區(qū)為PBR(Partition Boot Record); 4.CPU開始執(zhí)行PBR,第一個指令就是跳過BPB(BIOS Parameter Block)到可執(zhí)行代碼處;BPB包含比較多參數(shù),有族的大小、MFT記錄大小、MFT位置等,用于讀取NTFS文件; 5.PBR讀取VBR(Volume BootRecord,占用分區(qū)開始的16扇區(qū))剩余的15扇區(qū)到內(nèi)存中;接著CPU跳轉(zhuǎn)到0x07C0:027A處,執(zhí)行BOOTMGR代碼(第二個扇區(qū)中); 6.開始尋找bootmgr.exe,找不到則尋找ntldr.exe(win vista之前的系統(tǒng)); 7.CPU加載并跳轉(zhuǎn)到bootmgr.exe處執(zhí)行,讀取BCD文件,如果含有多個系統(tǒng),則列舉顯示供用戶選擇; 8.選擇的是Windows則讀取winload.exe文件到內(nèi)存中,CPU跳轉(zhuǎn)到winload.exe處執(zhí)行,讀取文件\windows\bootstat.dat,有需要則顯示引導(dǎo)菜單,比如安全引導(dǎo)等等;接著加載內(nèi)核程序Ntoskrnl.exe,相關(guān)輔助HAL.dll、CI.dll、PSSHED.dll、BootVID.dll,把CPU執(zhí)行權(quán)交給內(nèi)核程序; 9.內(nèi)核程序執(zhí)行系統(tǒng)初始化。 可見BIOS引導(dǎo)更多的是通過MBR去引導(dǎo)系統(tǒng),UEFI則主導(dǎo)整個引導(dǎo)過程。 結(jié)束語 在啟動計(jì)算機(jī)的過程中,難免會遇到各種各樣的問題,比如藍(lán)屏、黑屏等等,掌握了其啟動的流程,將有利于我們對各類故障進(jìn)行排查和修復(fù)。 以上就是關(guān)于今天的全部內(nèi)容,下期將給大家?guī)怼度萜魅绾问褂胻ini作為啟動進(jìn)程》,敬請期待~ 版權(quán)聲明:本文內(nèi)容由互聯(lián)網(wǎng)用戶自發(fā)貢獻(xiàn),該文觀點(diǎn)僅代表作者本人。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如發(fā)現(xiàn)本站有涉嫌抄襲侵權(quán)/違法違規(guī)的內(nèi)容, 請發(fā)送郵件至 87868862@qq.com 舉報(bào),一經(jīng)查實(shí),本站將立刻刪除。 |
|