我無法理解 ESP 將呼叫引導管理器後的過程,它將開始載入引導程式並傳遞到核心。
我提到的最後一步無法理解此處是否會呼叫 NTDETECT 或 NTOSKRNL,然後是 WINLOGON 還是 LTASS?或者它與 UEFI GPT 啟動不同?
誰能解釋一下嗎?
答案1
我無法理解 ESP 將呼叫引導管理器後的過程,它將開始載入引導程式並傳遞到核心。
引導過程由韌體 (EFI) 執行,而不是由 ESP 執行。 「ESP」只是保存韌體使用的檔案(引導程式等)的分割區。
EFI 韌體有一個內建的啟動管理器,它將設定儲存在 NVRAM 中:這就是它如何知道實際載入 ESP 中的哪個檔案。
然而,當談論 BOOTMGR 或 NTLDR 之類的東西時,韌體並沒有真正區分引導管理器和引導程式 - 它們都只是由韌體啟動的 .efi 應用程式。 (在 BIOS 中,兩者也是相同類型的開機磁區。)
如果應用程式支援顯示選單來選擇作業系統(如 NTLDR 或 BOOTMGR 那樣),則它稱為啟動管理器;如果它支援啟動作業系統核心本身(如 WINLOAD 那樣),則稱為引導程式;但對於韌體來說,它仍然是同一類型的程式。
所以在BIOS上:
- 韌體讀取 NVRAM 資料(通常稱為“CMOS”或“BIOS 設定”),該資料告訴它要使用哪個磁碟的 MBR。
- 韌體啟動 MBR 開機磁區,然後從 Windows 系統分割區啟動 BOOTMGR(Windows 開機管理員的 BIOS 變體)。
- Windows 啟動管理員讀取 BCD 並在需要時顯示選單,然後從主 Windows 分割區啟動 WINLOAD.EXE(Windows 啟動載入程式的 BIOS 變體)。
- Windows 開機載入程式啟動 NTOSKRNL.EXE(主 Windows 核心)。
在 UEFI 上:
- 韌體讀取 NVRAM 資料(EFI 變數),該資料告訴它
*.EFI
要使用哪個檔案以及在哪個磁碟上找到它。 - 韌體從 EFI 系統分割區啟動 BOOTMGFW.EFI(Windows 啟動管理器的 EFI 變體)。
- Windows 啟動管理員讀取 BCD 並在需要時顯示選單,然後從主 Windows 分割區啟動 WINLOAD.EFI(Windows 啟動載入程式的 EFI 變體)。
- Windows 開機載入程式啟動 NTOSKRNL.EXE(主 Windows 核心)。
兩者最終都會啟動相同的核心。對於兩種韌體類型,此後的過程也是相同的。 Windows 元件,例如 LSASS不管無論您是在 EFI 模式還是 BIOS 模式下啟動,當它們啟動時,韌體的主要任務都已經完成。