BCD(Boot Configuration Date)即系統引導配置數據這是從Windows Vista開始才引入的我們知道在Windows Vista/Server 中BootManager組件負責系統的初始化和引導工作而與之相匹配系統的引導數據就存儲在BCD中相信大家非常關心Windows 下的BCD數據管理吧下面筆者和大家一道就這方面進行一番探討
BCD數據管理工具
也許最常用也最熟悉的系統引導管理就是系統高級引導菜單了在Windows 下也不例外當系統發生引導故障時為了成功進入系統或者進行排錯我們會選擇在系統啟動的過程中按下F鍵進入高級引導選項菜單並從這個菜單中選擇一種高級啟動模式進行引導嘗試在此可供我們選擇的引導方式主要有安全模式啟用引導日志最近一次正確配置目錄服務還原模式以及禁用驅動程序前面強制等需要說明的是索然這些高級模式會暫時性地修復操作系統的啟動方式以幫助故障的解決和診斷但是這些模式並不會對引導配置或者BCD存儲做出任何永久性的修改所以系統高級引導菜單並不是有效的BCD數據管理工具和此前的Windows系統類似在Windows 中可用於修改引導配置和管理BCD存儲的工具主要有啟動和故障恢復控制台系統配置使用工具(msconfigexe)以及比較高級的BCD編輯器(bcdeditexe)本文就以這三個工具為例說說BCD數據的管理(圖)
圖 BCD數據管理工具
用啟動和故障恢復控制台實施系統引導配置
在Windows 的啟動和故障恢復控制台中我們可以配置系統啟動過程中的基本選項可以使用這些選項設置默認的操作系統可用操作系統選擇菜單的顯示時間以及在需要的時恢復選項的顯示時間無論是否需要將計算機引導到不同的操作系統都可以通過優化這些設置減少系統啟動所需的時間並加速系統的啟動過程
依據下面的操作步驟可進入Windows 的啟動和故障恢復控制台右鍵單擊桌面上的計算機圖標選擇屬性在系統屬性窗口中單擊左窗格中任務下的高級系統設置鏈接在系統屬性對話框的高級選項卡下單擊啟動和故障恢復選項下的設置按鈕就會進入如圖所示的啟動和故障恢復控制台在控制台中我們可以選擇默認的啟動的操作系統在安裝了多個操作系統的計算機上單擊默認操作系統下列列表即可選擇希望默認啟動的操作系統如果只安裝了一個系統則當前系統就是默認的啟動的系統選中顯示操作系統列表的時間復選框並在右側的文本框中輸入要使用的時間(以秒為單位)即可設置操作系統選擇列表的顯示時間為了加速系統的啟動速度如果計算機中只有一個系統可以將其設置為這樣就不會顯示啟動菜單直接引導默認系統另外在啟動和故障恢復控制台中可設置系統發生故障時的後續操作因為這部分內容與BCD的關系不大而且已經有作者對此做了非常深入的解析(鏈接是_shtml)所以就此略過(圖)
圖 啟動和故障恢復控制台
用系統配置工具管理系統引導配置
通過系統配置工具(msconfigexe)我們可以在Windows 中調整計算機的啟動方式通常情況下高級用戶使用該工具進行系統故障的排錯和診斷例如作為排錯的一部分可與配置計算機使用診斷啟動模式只加載最基本的驅動和服務
依次點擊開始→運行輸入msconfigexe回車後可啟動系統配置工具該工具提供了很多選項應該說是我們管理BCD最方便的工具在常規選項卡下可用於配置系統的啟動方式以及是否需要將系統啟動到排錯和診斷模式下通過使用這些選項可以選擇進行常規啟動診斷啟動或選擇性啟動在重啟計算機並解決問題後需要再次打開系統配置工具並在常規選項卡中選中正常啟動單選按鈕(圖)
圖 系統配置工具(msconfigexe)
在系統配置工具的啟動選項卡下可用於控制特定啟動過程的工作方式在此我們可以配置計算機啟動到某種安全啟動模式下並可選擇其他選項例如無GUI啟動等如果在排錯後發現需要保留這些設置則可以選中使所有啟動設置成為永久設置復選框以便將這些設置保存到引導配置啟動項中(圖)
圖 系統配置工具的啟動選項卡
另外在啟動選項頁面中還有一個高級選項按鈕單擊該按鈕可進入啟動高級選項對話框在此除了可以鎖定PCI檢測HAL以及啟用測試還可以使用高級選項實現某些特殊應用
()指定操作系統可以使用的處理器數量在多處理器的系統中通常會發生某些莫名的故障如果我們要進行排錯以了解該故障是否是由此引起的可以使用該選項
()設定操作系統可以使用的內存最大數量如果我們懷疑某些系統引導問題是有安裝了額外的內存引起的則可以使用該選項比如系統本來是GB的內存如果在安裝了另外的一條GB內存後導致系統不能引導為了判斷是否是有這條額外的內存導致了上述故障我們就可以暫時限制系統只能使用MB的內存(圖)
圖 高級啟動管理
如果懷疑安裝到計算機上的某個服務導致系統引導故障可以在系統配置工具的常規選項卡下選擇診斷或者選擇性啟動模式的方式進行判斷如果確信是某服務導致了啟動故障那麼可以在服務選項卡下禁用該服務在禁用後問題不再發生應該可以確認是該服務的問題那麼我們就可永久性地禁用該服務或更新該服務同理如果懷疑某個在啟動時自動運行的程序導致了系統引導故障那麼可以通過啟用選項卡下的設置來進行排錯(圖)
圖 系統配置
用BCD編輯器管理系統引導配置
對於高級系統用戶來說利用BCD編輯器來管理系統引導配置是最靈活的BCD編輯器(bcdeditexe)是一個高級命令行工具可用於查看和設置系統引導環境的配置不過需要主要的是在使用bededitexe對BCD進行修改之前最後做好系統的備份以免無操作造成系統引導故障下面筆者列舉Windows 下bededitexe的幾個應用實例
()查看BCD項
打開命令提示符在其中輸入並執行bededitexe命令就會顯示系統的BCD信息不過對於一般用戶這些信息比較難懂筆者做以說明在計算機中包含系統和非系統的BCD存儲系統的BCD存儲中包含了操作系統的引導項以及相關的引導信息bededitexe工具的操作就是對系統BCD的操作由於筆者的計算機上只有一個系統如圖所示其BCD存儲只有兩個項一個對應了Windows啟動管理器一個對應了Windows啟動加載器在此Windows啟動管理器會調用啟動加載器然後啟動加載器會使用winloadexe引導Windows Windows啟動管理器和Windows啟動加載器對應的BCD項具有類似的屬性這些屬性定義了系統的BCD環境需要注意的是Windows BCD文件比Windows Vista和Windows Server多出了 recoverysequence和recoveryenabled兩個屬性 此外其中類似 {bacfdedcdfda}的字符串標識符以便被系統引用需要說明的是如果計算機中安裝了其他Windows系統我們會看到每一個系統都有其對於的BCD項(圖)
圖 查看BCD項
()創建BCD
通過使用BCD編輯器我們可以創建非系統的BCD存儲在命令行下執行下面格式的命令bcdedit /createstore storepath其中/createstore是參數表示創建BCD存儲而storepath就是你希望創建非系統存儲的文件的時間保存位置例如我們執行命令bcdedit /createstore d:\ctocio\bcd即可(圖)
圖 創建BCD
()導入導出BCD
利用bcdeidtexe命令我們可以導入或者導出BCD存儲要導出系統的BCD存儲中的內容到特定文件需要使用/export參數在命令行下執行命令bcdedit /export storepathstorepath就是用於保存系統BCD存儲內容的實際文件路徑例如執行命令bcdedite /export d:\ctocio\backup就會將系統的BCD信息保存到d:\ctocio\backup文件中如果要還原系統的BCD信息我們可以通過bcdeditexe的/import參數將BCD備份導入進來其命令格式為bcdedicdt /import importpath其中importpath為保存了BCD信息的文件夾的實際路徑例如執行命令bcdedit /import d:\ctocio\backup就可將剛才備份的BCD信息重新導入進來(圖)
圖 導入導出BCD
()顯示Windows 隱藏的BCD項目
默認情況下我們在命令行下執行bcdeditexe是不能顯示所有的BCD項的Windows 隱藏了某些BCD項目如果要查看被隱藏的BCD項目我們需要執行命令打開顯示開關將其顯示出來假如當前系統的標識符是{bacfdedcdfda}在命令行下依次執行命令bcdedit /displayorder {bacfdedcdfda} /addfirst和bcdedit /displayorder {bacfdedcdfda} /addfirst這樣當我們重新執行bcdeditexe時就會顯示Windows 中被隱藏的BCD項目同時當重啟Windows 時就會在開機菜單中出現Ramdisk Options選項這是Windows集成的Windows Recovery Environment該選項在系統修復/恢復是非常有用(圖)
圖 顯示Windows 隱藏的BCD項目
()快速添加系統菜單
安裝多系統的用戶往往會因為系統安裝次序不夠科學而造成系統啟動選擇菜單不全或者有誤此時我們需要手動添加系統菜單項下面分別說說如何利用bcdeditexe命令添加Windows XP啟動菜單項和Windows 啟動菜單項
假設Windows XP系統安裝在C盤在Windows 中添加其系統啟動菜單項可以依次執行下面的命令或者將其保存為一個批處理文件(bat或者cmd文件)
bcdedit /create {ntldr} /d Microsoft Windows XP
bcdedit /set {ntldr} device partition=C:
bcdedit /set {ntldr} path \ntldr
bcdedit /displayorder {ntldr} /addfirst
同樣我們假設Windows 安裝在C盤其語言版本為簡體中文版系統標識符為{bacfdedcdfda}要添加其系統啟動菜單項依次執行下面的命令或者將其保存為一個批處理文件(bat或者cmd文件)
set id={bacfdedcdfda}
bcdedit /create %id% /d Windows /application osloader
bcdedit /set %id% locale zhcn
bcdedit /set %id% device partition=C:
bcdedit /set %id% osdevice partition=C:
bcdedit /set %id% path \Windows\system\winloadexe
bcdedit /set %id% inherit {bootloadersettings}
bcdedit /set %id% systemroot \windows
bcdedit /set %id% nx OptOut
bcdedit /displayorder %id% /addfirst
(圖)
圖 快速添加系統菜單
()更改系統顯示順序
如果要更改系統引導管理器中諸如Windows Windows VistaWindows Server Windows XP在操作系統選擇菜單上的顯示順序我們可以通過bcdeditexe的/displayorder參數來實現其命令格式是bcdedit /displayorder id id id idn其中id是顯示在第一位的操作系統對於的操作系統對應的系統標識符id是顯示在第二位的操作系統對應的系統標識符依次類推比如我們執行命令bcdedit /displayorder {bacfdedcdfda} {dbedadebbeeebcfe}則第一項系統標識符對於的系統會第一個顯示另外我們還可以使用/addfirst參數配合/displayorder參數設置某系統為第一項比如執行bcdedit /displayorder {bacfdedcdfda} /addfirst此外執行命令bcdedit /displayorder {bacfdedcdfda} /addlast則該系統成為最後一項(圖)
圖 更改系統顯示順序
()其他BCD管理
除了上面比較常用的BCD管理外筆者再列舉幾個比較有用的bcdedit命令參數執行命令bcdedit /default {dbedadebbeeebcfe}將該操作系統標識符對應才操作系統設置為默認引導系統執行bcdedit /timeout 將系統啟動菜單停留的時間設置為秒另外在特殊情況下我們需要將從特定系統引導一次然後恢復為默認的引導順序這是我們需要用到bcdedit的/bootsequence參數例如執行命令bcdedit /bootsequence {dbedadebbeeebcfe}這樣當計算機重啟時系統就會從該系統引導當下次重啟計算機時就恢復從默認的系統進行引導(圖)
圖 其他BCD管理
總結上面筆者以Windows 系統為例演示了利用啟動和故障恢復控制台系統配置工具BCD編輯器這三個工具配置和管理系統BCD數據的主要技術細節雖然上面的演示是在Windows 中進行的但其中大多數同樣實用於Windows Vista和Windows Server 系統希望本文能夠對大家有所幫助
From:http://tw.wingwit.com/Article/os/xtgl/201311/8761.html