BCD(Boot Configuration Date)即系統引導配置數據,這是從Windows Vista開始才引入的。我們知道,在Windows Vista/Server 2008中BootManager組件負責系統的初始化和引導工作,而與之相匹配系統的引導數據就存儲在BCD中。相信大家非常關心Windows 7下的BCD數據管理吧,下面筆者和大家一道就這方面進行一番探討。
1、BCD數據管理工具
也許最常用也最熟悉的系統引導管理就是系統高級引導菜單了,在Windows 7下也不例外。當系統發生引導故障時,為了成功進入系統或者進行排錯我們會選擇在系統啟動的過程中按下F8鍵進入高級引導選項菜單,並從這個菜單中選擇一種高級啟動模式進行引導嘗試。在此可供我們選擇的引導方式主要有安全模式、啟用引導日志、最近一次正確配置、目錄服務還原模式以及禁用驅動程序前面強制等。需要說明的是,索然這些高級模式會暫時性地修復操作系統的啟動方式,以幫助故障的解決和診斷,但是這些模式並不會對引導配置或者BCD存儲做出任何永久性的修改。所以,系統高級引導菜單並不是有效的BCD數據管理工具。和此前的Windows系統類似,在Windows 7中可用於修改引導配置和管理BCD存儲的工具主要有“啟動和故障恢復”控制台,系統配置使用工具(msconfig.exe),以及比較高級的BCD編輯器(bcdedit.exe)。本文就以這三個工具為例說說BCD數據的管理。(圖1)
2、用“啟動和故障恢復”控制台實施系統引導配置
在Windows 7的“啟動和故障恢復”控制台中我們可以配置系統啟動過程中的基本選項,可以使用這些選項設置默認的操作系統、可用操作系統選擇菜單的顯示時間,以及在需要的時恢復選項的顯示時間。無論是否需要將計算機引導到不同的操作系統,都可以通過優化這些設置減少系統啟動所需的時間,並加速系統的啟動過程。
依據下面的操作步驟可進入Windows 7的“啟動和故障恢復”控制台:右鍵單擊桌面上的“計算機”圖標選擇“屬性”,在系統屬性窗口中單擊左窗格中任務下的“高級系統設置”鏈接。在系統屬性對話框的“高級”選項卡下,單擊“啟動和故障恢復”選項下的“設置”按鈕就會進入如圖2所示的“啟動和故障恢復”控制台。在控制台中,我們可以選擇默認的啟動的操作系統,在安裝了多個操作系統的計算機上,單擊“默認操作系統”下列列表即可選擇希望默認啟動的操作系統,如果只安裝了一個系統則當前系統就是默認的啟動的系統。選中“顯示操作系統列表的時間”復選框,並在右側的文本框中輸入要使用的時間(以秒為單位),即可設置操作系統選擇列表的顯示時間。為了加速系統的啟動速度,如果計算機中只有一個系統可以將其設置為“0”,這樣就不會顯示啟動菜單直接引導默認系統。另外,在“啟動和故障恢復”控制台中可設置系統發生故障時的後續操作。因為這部分內容與BCD的關系不大,而且已經有作者對此做了非常深入的解析(鏈接是http://winsystem.ctocio.com.cn/Longhorn/88/8850588_1.sHtml),所以就此略過。(圖2)
3、用“系統配置工具”管理系統引導配置
通過“系統配置工具(msconfig.exe)”,我們可以在Windows 7中調整計算機的啟動方式。通常情況下,高級用戶使用該工具進行系統故障的排錯和診斷。例如,作為排錯的一部分,可與配置計算機使用診斷啟動模式,只加載最基本的驅動和服務。
依次點擊“開始”→“運行”輸入msconfig.exe回車後可啟動“系統配置工具”,該工具提供了很多選項,應該說是我們管理BCD最方便的工具。在“常規”選項卡下可用於配置系統的啟動方式,以及是否需要將系統啟動到排錯和診斷模式下。通過使用這些選項,可以選擇進行常規啟動、診斷啟動或選擇性啟動。在重啟計算機並解決問題後,需要再次打開系統配置工具,並在“常規”選項卡中選中“正常啟動”單選按鈕。(圖3)
圖3 系統配置工具(msconfig.exe)
在“系統配置工具”的“啟動”選項卡下可用於控制特定啟動過程的工作方式。在此我們可以配置計算機啟動到某種安全啟動模式下,並可選擇其他選項,例如無GUI啟動等。如果在排錯後發現需要保留這些設置,則可以選中“使所有啟動設置成為永久設置”復選框,以便將這些設置保存到引導配置啟動項中。(圖4)
圖4 “系統配置工具”的“啟動”選項卡
另外,在“啟動”選項頁面中還有一個“高級選項”按鈕,單擊該按鈕可進入“啟動高級選項”對話框。在此,除了可以鎖定PCI、檢測HAL以及啟用測試,還可以使用高級選項實現某些特殊應用。
(1).指定操作系統可以使用的處理器數量。在多處理器的系統中通常會發生某些莫名的故障,如果我們要進行排錯以了解該故障是否是由此引起的,可以使用該選項。
(2).設定操作系統可以使用的內存最大數量。如果我們懷疑某些系統引導問題是有安裝了額外的內存引起的,則可以使用該選項。比如,系統本來是2GB的內存,如果在安裝了另外的一條2GB內存後導致系統不能引導,為了判斷是否是有這條額外的內存導致了上述故障,我們就可以暫時限制系統只能使用2048MB的內存。(圖5)
圖5 高級啟動管理
如果懷疑安裝到計算機上的某個服務導致系統引導故障,可以在“系統配置工具”的“常規”選項卡下選擇診斷或者選擇性啟動模式的方式進行判斷。如果確信是某服務導致了啟動故障,那麼可以在“服務”選項卡下禁用該服務。在禁用後問題不再發生,應該可以確認是該服務的問題,那麼我們就可永久性地禁用該服務或更新該服務。同理,如果懷疑某個在啟動時自動運行的程序導致了系統引導故障,那麼可以通過“啟用”選項卡下的設置來進行排錯。(圖6)
圖6 系統配置
4、用“BCD編輯器”管理系統引導配置
對於高級系統用戶來說,利用“BCD編輯器”來管理系統引導配置是最靈活的。BCD編輯器(bcdedit.exe)是一個高級命令行工具,可用於查看和設置系統引導環境的配置。不過,需要主要的是,在使用bededit.exe對BCD進行修改之前最後做好系統的備份,以免無操作造成系統引導故障。下面筆者列舉Windows 7下bededit.exe的幾個應用實例。
(1).查看BCD項
打開命令提示符,在其中輸入並執行bededit.exe命令就會顯示系統的BCD信息。不過,對於一般用戶這些信息比較難懂,筆者做以說明。在計算機中包含系統和非系統的BCD存儲,系統的BCD存儲中包含了操作系統的引導項以及相關的引導信息,bededit.exe工具的操作就是對系統BCD的操作。由於筆者的計算機上只有一個系統,如圖所示其BCD存儲只有兩個項:一個對應了Windows啟動管理器,一個對應了Windows啟動加載器。在此,Windows啟動管理器會調用啟動加載器,然後啟動加載器會使用winload.exe引導Windows 7。Windows啟動管理器和Windows啟動加載器對應的BCD項具有類似的屬性,這些屬性定義了系統的BCD環境。需要注意的是,Windows7 BCD文件比Windows Vista和Windows Server2008多出了 recoverysequence和recoveryenabled兩個屬性。 此外,其中類似 {ba50c1f0-3752-11de-90d5-cdf8d52a3222}的字符串標識符,以便被系統引用。需要說明的是,如果計算機中安裝了其他Windows系統,我們會看到每一個系統都有其對於的BCD項。(圖7)
圖7 查看BCD項
(2).創建BCD
通過使用BCD編輯器,我們可以創建非系統的BCD存儲。在命令行下執行下面格式的命令“bcdedit /createstore storepath”,其中/createstore是參數,表示創建BCD存儲,而storepath就是你希望創建非系統存儲的文件的時間保存位置。例如我們執行命令“bcdedit /createstore d:ctociobcd”即可。(圖8)
圖8 創建BCD
(3).導入、導出BCD
利用bcdeidt.exe命令我們可以導入或者導出BCD存儲,要導出系統的BCD存儲中的內容到特定文件需要使用“/export”參數。在命令行下執行命令“bcdedit /export storepath”,storepath就是用於保存系統BCD存儲內容的實際文件路徑,例如執行命令“bcdedite /export d:ctociobackup”就會將系統的BCD信息保存到d:ctociobackup文件中。如果要還原系統的BCD信息,我們可以通過bcdedit.exe的“/import”參數將BCD備份導入進來。其命令格式為“bcdedicdt /import importpath”,其中importpath為保存了BCD信息的文件夾的實際路徑。例如執行命令“bcdedit /import d:ctociobackup”就可將剛才備份的BCD信息重新導入進來。(圖9)
圖9 導入、導出BCD
(4).顯示Windows 7隱藏的BCD項目
默認情況下我們在命令行下執行bcdedit.exe是不能顯示所有的BCD項的,Windows 7隱藏了某些BCD項目。如果要查看被隱藏的BCD項目,我們需要執行命令打開顯示開關將其顯示出來。假如當前系統的標識符是{ba50c1f0-3752-11de-90d5-cdf8d52a3222},在命令行下依次執行命令“bcdedit /displayorder {ba50c1f0-3752-11de-90d5-cdf8d52a3222} /addfirst”和“bcdedit /displayorder {ba50c1f0-3752-11de-90d5-cdf8d52a3222} /addfirst”。這樣當我們重新執行bcdedit.exe時就會顯示Windows 7中被隱藏的BCD項目。同時,當重啟Windows 7時就會在開機菜單中出現Ramdisk Options選項,這是Windows7集成的Windows Recovery Environment,該選項在系統修復/恢復是非常有用。(圖10)