天天看點

Windows啟動相關知識介紹

如果你的系統丢失了開機啟動項或啟動菜單,很多網友寫了解決方案,如果你使用BCEdi來解決問題,有些概念令人迷糊,這裡對一些概念進行簡單描述.

  安裝過OS後,安裝系統會在你的系統盤中寫上某種和啟動相關的資料,然後你啟動PC:

電腦自檢.

查找活動主分區(一般情況是C:)并加載它bootmgr(它就是安裝系統寫到你的磁盤中的).

讀取活動分區下的啟動配置檔案(即C:\BOOT\BCD)或c:\boot.ini.

根據BCD或Boot.ini存儲的啟動資訊列出啟動菜單(也就是雙系統啟動菜單).

選擇Windows 7,Bootmgr将控制權交給Windows 7系統目錄下的Winload.exe.

選擇xp,Bootmgr将控制權交給NTLDR,接着開始讀取c:\boot.ini并列出其中配置的啟動菜單.

  winxp及以前的windows,它們是BIOS-based systems,boot配置使用Boot.ini檔案.

  vista/win7及以後的是基于Extensible Firmware Interface (EFI,自己查這是什麼東西)的系統,boot配置參數在nonvolatile RAM (NVRAM).這些OS利用BCD(boot configuration data store)檔案存儲boot參數,以控制OS的啟動.

  BCD提供了通用程式設計接口可以來操作boot環境,BCD以二進制方式存儲,BCDEdit可以通路它.

boot environment application初始化boot過程,顯示多OS啟動菜單,它通過通路BCD找到本地Windows loader來啟動指定的OS.

boot application指一些列同boot相關的應用程式,如Windows Boot Manager, the Windows boot loader, or the Windows resume-from-hibernate application.

boot entry 指一個BCD中的對象,其實是應用程式,主要有以下幾個:

Boot Manager 控制啟動過程,在多系統中顯示啟動選項菜單

Windows boot loader 啟動指定的vista及以後版本window

Ntldr 啟動指定的winxp及以前的os

resume application 用于當計算機睡眠是恢複OS運作

memory diagnostics application 記憶體診斷

data type/element 對于一個boot entry來說,它有若幹項,例如PATH,DEVICE,前者資料類型是一個字元串,後者資料類型是一個裝置

firmware boot manager 定位Windows Boot Manager,估計是配置從哪裡尋找Windows Boot Manager及如何運作等資訊

identifier  globally unique identifier (GUID) 每個entry都有,BCDEdit使用它辨別一個entry memory diagnostic application 記憶體診斷

system BCD store PC中可能存儲多個BCD檔案,它指定要使用的

well-known identifiers 每個boot entry有一個{GUID}辨別符,不過有些是常用的,大家都知道,是以它們還有一個well-known identifier,如 {bootmgr}. , {current} 等等.

  使用BCDEdit /enum all指令可以檢視這些資訊,詳細情況參考微軟的文檔(BCDEdit Reference).

本文轉自jetyi51CTO部落格,原文連結: http://blog.51cto.com/jetyi/721806,如需轉載請自行聯系原作者

繼續閱讀