在之前基於NT的Windows系統中,Windows使用Ntldr作為Boot Loader來啟動系統,——所謂boot loader,在指在操作系統內核運行之前執行的一段小程序,系統通過它來初始化硬件設備、建立內存空間的映射圖等,將系統的軟硬件環境設置成一個合適的狀態,為最終調用操作系統內核准備好正確的環境。——在啟動過程中,Ntldr 使用Boot.ini 文件來確定在啟動/引導過程中要顯示哪些操作系統選項,我們對啟動選項的設置可以通過修改boot.ini文件中相應內容實現。
在Windows Vista中,微軟引入了一種全新的boot loader架構, Windows Boot Manager (Bootmgr.exe)。與Ntldr嚴重地依賴於硬件不同的是,Windows Vista中的新架構可以實現完整的硬件獨立性,且能夠與多種操作系統無縫結合,讓Windows Vista的啟動/引導過程更加快速與安全。同時,將之前Windows 系統中由Boot.ini管理的內容移交給新的Boot Configuration Data (BCD : 啟動設置數據),當然,也提供了新的啟動選項編輯工具,BCDEdit (BCDEdit.exe),來管理啟動設置。
BCDEdit : Windows Vista啟動設置編輯工具
在傳統的基於BIOS的計算機中,如果只安裝Windows Vista,除了極早期的Windows Vista測試版本外,您將會發現 Boot.ini 文件已經徹底從系統中消失;如果系統中安裝了Windows Vista和之前的WIndows系統如Windows XP,雖然仍可找到 Boot.ini 文件,不過,這個文件只作用於那些系統,而不會對 Windows Vista的啟動有任何影響。
在基於EFI (Extensible Firmware Interface : 可擴展固件接口,以後采用這種接口的PC會越來越多 )的計算機中,Boot.ini 文件則更不復存在,在基於EFI的系統中,啟動選項被貯存在主板的存儲器中。此時要修改啟動選項,要麼通過能夠讀寫NVRAM的工具如NvrBoot,要麼使用上文提到的BCDEdit。
由此可見,在Windows Vista中,想要再像之前Windows XP中那樣通過一個簡單的文本編輯器來修改Boot.ini的方式來管理啟動選項已經不可能了,要對啟動設置進行修改,只能使用命令格式相對要復雜得多的BCDEdit。
此外,微軟也在Windows Vista 中提供了可通過WMI (Windows Management Instrumentation : Windows管理規范)調用的 BCD 類,通過它可以用編程的方式修改BCD數據,不過,相信對絕大多數用戶而言,這更是不可能的任務。
啟動BCDEdit
需要注意的是,BCDEdit不是一個運行於圖形界面下的程序,而是一個命令行工具,該文件 (Bcdedit.exe) 位於“WindowsSystem32”目錄下。
要執行BCDEdit,首先應進入命令行窗口,並要將操作用戶並提升至管理員權限。
通過命令行工具Bcdedit,我們可以添加、刪除及修改BCD (Boot Configuration Data)中的對象。在BCD中,每個對象均具有唯一的 GUID (Globally Unique Identifier : 全局唯一標識符),如系統中的每塊硬盤、每個分區的GUID (全局唯一標識符)均不相同。www.45it.com(電腦軟硬件應用網)
在BCD中,硬盤或分區的GUID可分為如下幾類:
{legacy} :指存在上一代Windows系統如Windows XP的硬盤或分區;
{default} : 默認操作系統所在硬盤或分區;
{current} : 當前硬盤或分區;
{c34b751a-ff09-11d9-9e6e-0030482375e7} : 類似於這個格式的GUID指其他安裝了操作系統的硬盤或分區。
(注:這只是個例子,具體數字根據硬盤或分區參數會有相應變化,但均會類似於{xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx}格式)。
BCDEDIT命令
bcdedit /? : 顯示命令幫助
bcdedit.exe /? CREATESTORE : 顯示命令參數“ CREATESTORE ”的詳細信息,——當然,“ CREATESTORE ”也只是示例,使用中對其他任何可用參數也均可使用類似格式查看該參數的具體說明。
bcdedit 或 bcdedit /enum all : 顯示Windows Vista系統當前的啟動設置數據,這時系統中所有安裝了操作系統的硬盤或分區均會顯示相應的 GUID 標識,如 {xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx}
使用BCDEdit備份與恢復啟動選項
在對Windows Vista的啟動選項修改之前,最好先對其備份,以防萬一操作失誤或其他故障導致系統無法啟動。
bcdedit /export “D:BCD BackupBcd Backup” : 將啟動設置備份到D盤 “BCD Backup” 目錄下;
bcdedit /import “D:BCD BackupBcd Backup” : 恢復之前備份在D盤 “BCD Backup”目錄下啟動選項。
在命令行窗口中,轉到系統目錄如 “C:/windows/system32”下,然後輸入“ bcdedit” 即可。
使用BCDEdit修改啟動菜單選項
作為一種良好的操作習慣,在對Windows Vista的啟動選項進行任何修改前,首先要對BCD中的啟動選項進行備份,相應的命令上頁我們已介紹過,在此不再贅述;其次,使用“bcdedit ”或“ bcdedit /enum all ”來查看系統中硬盤或分區的正確 GUID 標識,並將其記錄下來。畢竟,BCDEdit只是一款命令行工具,我們操作時需手動輸入類似“{xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx}”這樣的長字符串時,很容易出錯,而這往往會導致Windows Vista啟動失敗。
下面詳細介紹使用BCDEdit修改啟動選項的常用命令格式:
bcdedit /set {legacy} Description “Windows XP Professional SP2” : 修改上一代操作系統在啟動菜單中的顯示內容,比如說我們也可將其修改為“Vista天地專用XP SP2”之類。注意,命令中的引號不可省略;
bcdedit /set {current} description “Windows Vista Build 5270 x86″ : 修改當前啟動硬盤或分區上的操作系統在啟動菜單中的顯示內容。注意,當前分區上的操作系統可能為Windows Vista,也可以是其他系統,當然,命令中的引號也不可省略;
bcdedit /set {5189b25c-5558-4bf2-bca4-289b11bd29e2} description “Windows Vista Build 5270 x64” : 修改安裝於其他硬盤或分區的系統在啟動菜單中的顯示內容,使用這項命令時一定要注意該硬盤/分區的GUID輸入正確,相應的GUID可通過“ bcdedit ”或“ bcdedit /enum all ”命令查看。
bcdedit /default {current} : 將當前啟動硬盤/分區中的操作系統設置為默認啟動的系統;
bcdedit /default {5189b25c-5558-4bf2-bca4-289b11bd29e2} : 設置指定GUID上的操作系統為默認啟動的系統;
bcdedit /default {legacy} : 設置上一代Windows 系統Windows XP為默認啟動的系統;
bcdedit /displayorder : 設置啟用菜單中各項的顯示順序,如:bcdedit.exe /displayorder {legacy} {current} 將首先顯示Windows XP,然後再顯示默認啟動的系統如Windows Vista;
bcdedit /timeout 15 : 將默認的啟動菜單顯示時間30秒更改為15秒,當然,您可以將這個時間修改為任何您希望的數值。
使用BCDEdit修復硬盤/分區結構錯誤
在對啟動選項的修改過程中,如添加或刪除某個硬盤/分區時,可能會因操作中的不慎導致硬盤/分區結構的混亂,除了采用恢復修改前的備份方法外,也可以首先使用BCDEdit來嘗試一下修復。
具體方法如下:
1. X:>X:oot ixntfs.exe -lh -all : 這時的“ X: ”指引導目錄 “boot” 所在的硬盤/分區;
2. bcdedit /set {5189b25c-5558-4bf2-bca4-289b11bd29e2} device partition=X: : 將指定GUID的分區設為啟動分區。注意,這裡的“ X: ”的GUID須與指定值不同,同時,運行該命令後,必須接著運行下面的osdevice命令;
3. bcdedit /set {5189b25c-5558-4bf2-bca4-289b11bd29e2} osdevice partition=X: : 將指定GUID的分區設為啟動分區。注意,這個命令必須與上面的device命令配對使用,同時“ X: ”的GUID須與指定值不同。