管理啟動項 - Windows 7中的BCDEDIT命令

2009/9/21 11:07:31    編輯:Windows7之家 - Mary Jane     字體:【

Win7之家afsion.com.cn):管理啟動項 - Windows 7中的BCDEDIT命令

在之前基于NT的Windows系統(tǒng)中,Windows使用Ntldr作為Boot Loader來啟動系統(tǒng),——所謂boot loader,在指在操作系統(tǒng)內(nèi)核運行之前執(zhí)行的一段小程序,系統(tǒng)通過它來初始化硬件設(shè)備、建立內(nèi)存空間的映射圖等,將系統(tǒng)的軟硬件環(huán)境設(shè)置成一個合適的 狀態(tài),為最終調(diào)用操作系統(tǒng)內(nèi)核準(zhǔn)備好正確的環(huán)境。——在啟動過程中,Ntldr 使用Boot.ini 文件來確定在啟動/引導(dǎo)過程中要顯示哪些操作系統(tǒng)選項,我們對啟動選項的設(shè)置可以通過修改boot.ini文件中相應(yīng)內(nèi)容實現(xiàn)。

在Vista和Windows7中,微軟引入了一種全新的boot loader架構(gòu), Windows Boot Manager (Bootmgr.exe)。與Ntldr嚴(yán)重地依賴于硬件不同的是,Vista和Windows7中 的新架構(gòu)可以實現(xiàn)完整的硬件獨立性,且能夠與多種操作系統(tǒng)無縫結(jié)合,讓W(xué)indows Vista的啟動/引導(dǎo)過程更加快速與安全。同時,將之前Windows 系統(tǒng)中由Boot.ini管理的內(nèi)容移交給新的Boot Configuration Data (BCD : 啟動設(shè)置數(shù)據(jù)),當(dāng)然,也提供了新的啟動選項編輯工具,BCDEdit (BCDEdit.exe),來管理啟動設(shè)置。

BCDEdit : Vista和Windows 7啟動設(shè)置編輯工具

  在傳統(tǒng)的基于BIOS的計算機中,如果只安裝Vista和Windows 7,除了極早期的Vista和Windows 7測試版本外,您將會發(fā)現(xiàn) Boot.ini 文件已經(jīng)徹底從系統(tǒng)中消失;如果系統(tǒng)中安裝了Vista和Windows 7和之前的WIndows系統(tǒng)如Windows XP,雖然仍可找到 Boot.ini 文件,不過,這個文件只作用于那些系統(tǒng),而不會對 Vista和Windows 7的啟動有任何影響。

  在基于EFI (Extensible Firmware Interface : 可擴展固件接口,以后采用這種接口的PC會越來越多 )的計算機中,Boot.ini 文件則更不復(fù)存在,在基于EFI的系統(tǒng)中,啟動選項被貯存在主板的存儲器中。此時要修改啟動選項,要么通過能夠讀寫NVRAM的工具如NvrBoot,要 么使用上文提到的BCDEdit。

  由此可見,在Vista和Windows 7中,想要再像之前Windows XP中那樣通過一個簡單的文本編輯器來修改Boot.ini的方式來管理啟動選項已經(jīng)不可能了,要對啟動設(shè)置進(jìn)行修改,只能使用命令格式相對要復(fù)雜得多的BCDEdit。

  此外,微軟也在Vista和Windows7 中提供了可通過WMI (Windows Management Instrumentation : Windows管理規(guī)范)調(diào)用的 BCD 類,通過它可以用編程的方式修改BCD數(shù)據(jù),不過,相信對絕大多數(shù)用戶而言,這更是不可能的任務(wù)。

啟動BCDEdit

  需要注意的是,BCDEdit不是一個運行于圖形界面下的程序,而是一個命令行工具,該文件 (Bcdedit.exe) 位于 “\Windows\System32”目錄下。

  要執(zhí)行BCDEdit,首先應(yīng)進(jìn)入命令行窗口,并要將操作用戶并提升至管理員權(quán)限。在命令行窗口中,輸入“ bcdedit” 即可。

BCDEdit命令簡介

  通過命令行工具Bcdedit,我們可以添加、刪除及修改BCD (Boot Configuration Data)中的對象。在BCD中,每個對象均具有唯一的 GUID (Globally Unique Identifier : 全局唯一標(biāo)識符),如系統(tǒng)中的每塊硬盤、每個分區(qū)的GUID (全局唯一標(biāo)識符)均不相同。

  在BCD中,硬盤或分區(qū)的GUID可分為如下幾類:

  • {legacy} :指存在上一代Windows系統(tǒng)如Windows XP的硬盤或分區(qū);
  • {default} : 默認(rèn)操作系統(tǒng)所在硬盤或分區(qū);
  • {current} : 當(dāng)前硬盤或分區(qū);
  • {c34b751a-ff09-11d9-9e6e-0030482375e7} : 類似于這個格式的GUID指其他安裝了操作系統(tǒng)的硬盤或分區(qū)。
    (注:這只是個例子,具體數(shù)字根據(jù)硬盤或分區(qū)參數(shù)會有相應(yīng)變化,但均會類似于{xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx}格式)。

BCDEDIT命令

  • bcdedit /? : 顯示命令幫助
  • bcdedit.exe /? CREATESTORE : 顯示命令參數(shù)“ CREATESTORE ”的詳細(xì)信息,——當(dāng)然,“ CREATESTORE ”也只是示例,使用中對其他任何可用參數(shù)也均可使用類似格式查看該參數(shù)的具體說明。
  • bcdedit 或 bcdedit /enum all : 顯示Vista和Windows 7系統(tǒng)當(dāng)前的啟動設(shè)置數(shù)據(jù),這時系統(tǒng)中所有安裝了操作系統(tǒng)的硬盤或分區(qū)均會顯示相應(yīng)的 GUID 標(biāo)識,如 {xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx} 。

使用BCDEdit備份與恢復(fù)啟動選項

  在對Vista和Windows 7的啟動選項修改之前,最好先對其備份,以防萬一操作失誤或其他故障導(dǎo)致系統(tǒng)無法啟動。

  • bcdedit /export “D:\BCD Backup\Bcd Backup” : 將啟動設(shè)置備份到D盤 “BCD Backup” 目錄下;
  • bcdedit /import “D:\BCD Backup\Bcd Backup” : 恢復(fù)之前備份在D盤 “BCD Backup”目錄下啟動選項。

使用BCDEdit修改啟動菜單選項

  作為一種良好的操作習(xí)慣,在對Vista和Windows 7的啟 動選項進(jìn)行任何修改前,首先要對BCD中的啟動選項進(jìn)行備份,相應(yīng)的命令上頁我們已介紹過,在此不再贅述;其次,使用“bcdedit ”或“ bcdedit /enum all ”來查看系統(tǒng)中硬盤或分區(qū)的正確 GUID 標(biāo)識,并將其記錄下來。畢竟,BCDEdit只是一款命令行工具,我們操作時需手動輸入類似“{xxxxxxxx-xxxx-xxxx-xxxx- xxxxxxxxxxxx}”這樣的長字符串時,很容易出錯,而這往往會導(dǎo)致Vista和Windows 7啟動失敗。

  下面詳細(xì)介紹使用BCDEdit修改啟動選項的常用命令格式:

  • bcdedit /set {legacy} Description “Windows XP Professional SP2” : 修改上一代操作系統(tǒng)在啟動菜單中的顯示內(nèi)容,比如說我們也可將其修改為“Vista天地專用XP SP2”之類。注意,命令中的引號不可省略;
  • bcdedit /set {current} description “Vista和Windows 7 Build 5270 x86″ : 修改當(dāng)前啟動硬盤或分區(qū)上的操作系統(tǒng)在啟動菜單中的顯示內(nèi)容。注意,當(dāng)前分區(qū)上的操作系統(tǒng)可能為Vista和Windows 7,也可以是其他系統(tǒng),當(dāng)然,命令中的引號也不可省略;
  • bcdedit /set {5189b25c-5558-4bf2-bca4-289b11bd29e2} description “Vista和Windows 7 Build 5270 x64” : 修改安裝于其他硬盤或分區(qū)的系統(tǒng)在啟動菜單中的顯示內(nèi)容,使用這項命令時一定要注意該硬盤/分區(qū)的GUID輸入正確,相應(yīng)的GUID可通過“ bcdedit ”或“ bcdedit /enum all ”命令查看。
  • bcdedit /default {current} : 將當(dāng)前啟動硬盤/分區(qū)中的操作系統(tǒng)設(shè)置為默認(rèn)啟動的系統(tǒng);
  • bcdedit /default {5189b25c-5558-4bf2-bca4-289b11bd29e2} : 設(shè)置指定GUID上的操作系統(tǒng)為默認(rèn)啟動的系統(tǒng);
  • bcdedit /default {legacy} : 設(shè)置上一代Windows 系統(tǒng)Windows XP為默認(rèn)啟動的系統(tǒng);
  • bcdedit /displayorder : 設(shè)置啟用菜單中各項的顯示順序,如:
    bcdedit.exe /displayorder {legacy} {current}
    將首先顯示W(wǎng)indows XP,然后再顯示默認(rèn)啟動的系統(tǒng)如Vista和Windows7
  • bcdedit /timeout 15 : 將默認(rèn)的啟動菜單顯示時間30秒更改為15秒,當(dāng)然,您可以將這個時間修改為任何您希望的數(shù)值。

使用BCDEdit修復(fù)硬盤/分區(qū)結(jié)構(gòu)錯誤

  在對啟動選項的修改過程中,如添加或刪除某個硬盤/分區(qū)時,可能會因操作中的不慎導(dǎo)致硬盤/分區(qū)結(jié)構(gòu)的混亂,除了采用恢復(fù)修改前的備份方法外,也可以首先使用BCDEdit來嘗試一下修復(fù)。

  具體方法如下:

  1. X:\>X:\boot\fixntfs.exe -lh -all : 這時的“ X: ”指引導(dǎo)目錄 “boot” 所在的硬盤/分區(qū);
  2. bcdedit /set {5189b25c-5558-4bf2-bca4-289b11bd29e2} device partition=X: : 將指定GUID的分區(qū)設(shè)為啟動分區(qū)。注意,這里的“ X: ”的GUID須與指定值不同,同時,運行該命令后,必須接著運行下面的osdevice命令;
  3. bcdedit /set {5189b25c-5558-4bf2-bca4-289b11bd29e2} osdevice partition=X: : 將指定GUID的分區(qū)設(shè)為啟動分區(qū)。注意,這個命令必須與上面的device命令配對使用,同時“ X: ”的GUID須與指定值不同。