最近由于工作測試需要,在一臺電腦上安裝了多操作系統(tǒng)(XP,2000,2003,VISTA,WIN7),但是發(fā)現(xiàn)window7只會顯示“之前版本的系統(tǒng)”等啟動選項,需要修改以方便進(jìn)入需要的系統(tǒng)。但是發(fā)現(xiàn)win7下無法像XP下直接修改C:/boot.ini即可,需要在管理員權(quán)限下使用bcdedit命令操作。記錄如下:
Bcdedit簡介
在NT60系列操作系統(tǒng)(Windows 7/Vista/2008)中的一個命令行工具,用于建立和重新配置bootloader,后者無須再使用boot.ini文件。也就是說,使用BCDEdit這個工具,能夠修改NT60 系列系統(tǒng)的啟動菜單在之前基于NT50系列(Windows XP/2000/2003)的Windows系統(tǒng)中,Windows使用Ntldr作為Boot Loader來啟動系統(tǒng),但在新的NT60系列系統(tǒng)中,微軟引入了一種全新的boot loader架構(gòu),Windows Boot Manager (Bootmgr.exe)。與Ntldr嚴(yán)重地依賴于硬件不同的是,NT60中的新架構(gòu)可以實現(xiàn)完整的硬件獨立性,且能夠與多種操作系統(tǒng)無縫結(jié)合,讓NT60的啟動/引導(dǎo)過程更加快速與安全。同時,將之前Windows 系統(tǒng)中由Boot.ini管理的內(nèi)容移交給新的Boot Configuration Data (BCD : 啟動設(shè)置數(shù)據(jù)),當(dāng)然,也提供了新的啟動選項編輯工具,BCDEdit (BCDEdit.exe),來管理啟動設(shè)置。——所謂boot loader,在指在內(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)。Windows NT60 (Windows 7/Vista/2008)與早期NT52 系列系統(tǒng)(Windows XP/2000/2003)啟動的對比 在傳統(tǒng)的基于BIOS的計算機中,如果只安裝NT60 系列操作系統(tǒng)(Windows 7/Vista/2008),您將會發(fā)現(xiàn)Boot.ini 文件已經(jīng)徹底從系統(tǒng)中消失;如果系統(tǒng)中安裝了NT60 和之前的Windows 系統(tǒng),如NT52 系列操作系統(tǒng) (Windows XP/2000/2003),雖然仍可找到Boot.ini 文件,不過,這個文件只作用于那些系統(tǒng),而不會對NT60 的啟動有任何影響。而在基于EFI (Extensible Firmware Interface : 可擴展固件接口,以后采用這種接口的PC會越來越多)的計算機中,Boot.ini 文件則更不復(fù)存在,在基于EFI的系統(tǒng)中,啟動選項被貯存在主板的存儲器中。此時要修改啟動選項,要么通過能夠讀寫NVRAM的工具如NvrBoot,要么使用上文提到的BCDEdit。由此可見,在NT60中,想要再像之前NT52 中那樣通過一個簡單的文本編輯器來修改Boot.ini(或用NT52自帶工具Bootcfg)的方式來管理啟動選項已經(jīng)不可能了,要對啟動設(shè)置進(jìn)行修改,只能使用命令格式相對要復(fù)雜得多的BCDEdit。
此外,微軟也在NT60 中提供了可通過WMI (Windows Management Instrumentation : Windows管理規(guī)范)調(diào)用的BCD 類,通過它可以用編程的方式修改BCD數(shù)據(jù)。不過,相信對絕大多數(shù)根本不會接觸編程的用戶而言,這更是不可能的任務(wù)。
BCDEdit 使用前注意
1.工具性質(zhì)
需要注意的是,BCDEdit不是一個運行于圖形界面下的程序,而是一個命令行工具,該文件(Bcdedit.exe) 位于 “\Windows\System 32”目錄下。
2.啟動
要執(zhí)行BCDEdit,首先應(yīng)進(jìn)入命令行窗口,并要將操作用戶并提升至管理員權(quán)限。另外,該工具依賴于參數(shù),如果不帶參數(shù),則不能正常使用。
在命令行窗口中,轉(zhuǎn)到系統(tǒng)目錄如 “C:/windows/system32”下,然后輸入“bcdedit 參數(shù)>” 即可。也可直接在任意目錄運行,因為System32目錄本身在環(huán)境變量“Path”的范圍內(nèi)。
3.BCDEdit命令核心
(1)幫助
bcdedit /? : 顯示全部的命令幫助(都只是概述)。
bcdedit.exe /? 命令> : 顯示指定命令參數(shù)的詳細(xì)信息(無需帶斜杠)。使用中對其他任何可用參數(shù)也均可使用本命令格式查看該參數(shù)的具體說明。
(2)Enum
通過命令行工具Bcdedit,我們可以添加、刪除及修改BCD (Boot Configuration Data)中的對象。在BCD中,每個對象均具有唯一的GUID (Globally Unique Identifier : 全局唯一標(biāo)識符),如系統(tǒng)中的每塊硬盤、每個分區(qū)的GUID (全局唯一標(biāo)識符)均不相同。
在BCD中,硬盤或分區(qū)的GUID可分為如下幾類:
{ntldr}: 指存在上代NT50系列操作系統(tǒng)(Windows XP/2000/2003)的硬盤或分區(qū);
{default}: 默認(rèn)所在硬盤或分區(qū);
{current}: 當(dāng)前硬盤或分區(qū);
{GUID>}: 類似于這個格式的GUID指其他安裝了操作系統(tǒng)的硬盤或分區(qū)。
(注:相應(yīng)的GUID可通過“bcdedit ”或“bcdedit /enum all ”命令查看。這樣會顯示BCD當(dāng)前的啟動設(shè)置數(shù)據(jù),包含了所有在BCD記錄中的操作系統(tǒng),均能顯示其GUID,用戶可以此作更改啟動數(shù)據(jù)的參考。)
(3)保險措施(使用BCDEdit備份與恢復(fù)啟動選項)
在對Windows NT60的啟動選項修改之前,最好先對其備份,以防萬一操作失誤或其他故障導(dǎo)致系統(tǒng)無法啟動?!?br />bcdedit /export 目錄> : 將啟動設(shè)置備份到指定的目錄下;
bcdedit /import 目錄> : 恢復(fù)之前備份在指定目錄下啟動選項。
注:當(dāng)需要還原備份的啟動選項時,應(yīng)仔細(xì)檢查備份的啟動選項是否對應(yīng)于自己所需要的,否則重新設(shè)置會比較麻煩。
使用BCDEdit修改啟動菜單選項
作為一種良好的操作習(xí)慣,在對Windows Vista的啟動選項進(jìn)行任何修改前,首先要對BCD中的啟動選項進(jìn)行備份,相應(yīng)的命令上頁我們已介紹過,在此不再贅述;其次,使用“bcdedit ”或“bcdedit /enum all ”來查看系統(tǒng)中硬盤或分區(qū)的正確GUID 標(biāo)識,并將其記錄下來。畢竟,BCDEdit只是一款命令行工具,我們操作時需手動輸入類似“”這樣的長字符串時,很容易出錯,而這往往會導(dǎo)致Windows Vista啟動失敗。
下面詳細(xì)介紹使用BCDEdit修改啟動選項的常用命令格式:
bcdedit /set {ntldr} Description “Windows XP Professional SP2”: 修改上一代在啟動菜單中的顯示內(nèi)容,比如說我們也可將其修改為“Vista天地de專用XP SP2”之類。注意,命令中的引號不可省略;操作系統(tǒng)
bcdedit /set {current} description “Windows Vista Build 5270 x86″: 修改當(dāng)前啟動硬盤或分區(qū)上的操作系統(tǒng)在啟動菜單中的顯示內(nèi)容。注意,當(dāng)前分區(qū)上的操作系統(tǒng)可能為Windows Vista,也可以是其他系統(tǒng),當(dāng)然,命令中的引號也不可省略;
bcdedit /set {GUID>} description “Windows Vista 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 {GUID>} :設(shè)置指定GUID上的操作系統(tǒng)為默認(rèn)啟動的系統(tǒng);
bcdedit /default {ntldr} :設(shè)置上一代Windows 系統(tǒng)Windows XP為默認(rèn)啟動的系統(tǒng);
bcdedit /displayorder : 設(shè)置啟用菜單中各項的顯示順序,如:
bcdedit.exe /displayorder {ntldr} {current} :將首先顯示W(wǎng)indows XP,然后再顯示默認(rèn)啟動的系統(tǒng)如Windows Vista;
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ù)。
具體方法如下:
X:\&;X:\boot\fixntfs.exe -lh -all : 這時的“X: ”指引導(dǎo)目錄 “boot” 所在的硬盤/分區(qū);
bcdedit /set device partition=X: : 將指定GUID的分區(qū)設(shè)為啟動分區(qū)。注意,這里的“X: ”的GUID須與指定值不同,同時,搜狗電腦網(wǎng),運行該命令后,必須接著運行下面的osdevice命令;
bcdedit /set osdevice partition=X: : 將指定GUID的分區(qū)設(shè)為啟動分區(qū)。注意,這個命令必須與上面的device命令配對使用,同時“X: ”的GUID須與指定值不同。
Bcdedit命令詳解,自定義Vista啟動管理項
Bcdedit 位于X:\Windows\system32\ "X:"為安裝Vista的盤符。
儲存操作指令
====================
/createstore 創(chuàng)建一個新的空白啟動配置數(shù)據(jù)文件。
bcdedit /createstore C:\Data\BCD 創(chuàng)建BCD啟動配置數(shù)據(jù)文件儲存到“C:\DATA\&;文件夾。
/export 備份啟動配置數(shù)據(jù)文件。
bcdedit /export "C:\Data\BCD Backup" 備份BCD啟動配置文件到“C:\Data\&;文件夾,并以“BCD Backup”命名。
/import 還原啟動配置數(shù)據(jù)文件。
bcdedit /import "C:\Data\BCD Backup" 從“C:\Data\&;文件夾恢復(fù)BCD啟動配置文件。
儲存項目操作指令
====================
/copy 項目拷貝
操作系統(tǒng)啟動項目的拷貝:
bcdedit /copy /d "Copy of entry"
/create 新建項目
創(chuàng)建操作系統(tǒng)載入程序項目的NTLDR(Ntldr):
bcdedit /create /d "Earlier Windows OS Loader"
創(chuàng)建存儲器磁碟另外的選擇項項目:
bcdedit /create /d "Ramdisk options"
創(chuàng)建一個新的操作系統(tǒng)啟動項目:
bcdedit /create /d "Windows Vista" /application osloader
創(chuàng)建一個新的調(diào)試器:
bcdedit /create /d "Debugger Settings"
/delete 刪除項目
刪除指定的操作系統(tǒng)項目:
bcdedit /delete
刪除指定的操作系統(tǒng)項目但啟動時不顯示項目(徹底刪除):
bcdedit /delete /cleanup
刪除指定的操作系統(tǒng)項目但啟動時顯示項目:
bcdedit /delete /nocleanup
刪除操作系統(tǒng)載入程序項目的NTLDR:
bcdedit /delete /f
項目選擇操作指令
====================
/deletevalue 刪除項目選擇項。
刪除啟動管理的bootmgr選擇項項目:
bcdedit /deletevalue bootsequence
刪除(WinPE)操作系統(tǒng)的數(shù)值開機項目:
bcdedit /deletevalue winpe
刪除來自指定的操作的Windows PE 數(shù)值系統(tǒng)開機項目:
bcdedit /deletevalue winpe
/set 設(shè)定項目選擇項數(shù)值。
設(shè)定操作系統(tǒng)“cbd971bf-b7b8-4885-951a-fa03044f5d71”引導(dǎo)分區(qū)“C”:
bcdedit /set device partition=C:
指定的操作系統(tǒng)引導(dǎo)文件“windows\ system 32\ winload.exe”:
bcdedit /set path \windows\system32\winload.exe
設(shè)定“NX”為“OptIn”:
bcdedit /set nx optin
更改系統(tǒng)名稱
默認(rèn)XP系統(tǒng)名稱在Vista啟動管理器中是"earlier version of Windows",更改:
bcdedit /set Description "Windows XP Professional SP2"
默認(rèn)Vista系統(tǒng)名稱在Vista啟動管理器中是"Microsoft Windows",更改:
bcdedit /set Description "Windows Vista 5456"
輸出控制指令
====================
/enum 在儲存中的列表項目。
列出所有的操作系統(tǒng)載入程序啟動項目:
bcdedit /enum OSLOADER
列出所有的啟動管理項目:
bcdedit /enum BOOTMGR
列出默認(rèn)的啟動項目:
bcdedit /enum
列出指定的操作系統(tǒng)啟動項目:
bcdedit /enum
/v 列出所有活動的項目
bcdedit /enum ACTIVE /v
啟動管理控制指令
====================
/bootsequence 設(shè)定啟動列表順序。
設(shè)定二個操作系統(tǒng)項目和啟動順序:
bcdedit /bootsequence {cbd971bf-b7b8-4885-951a- fa03044f5d71}
加入操作系統(tǒng)項目為啟動列表最后項:
bcdedit /bootsequence /addlast
/default 設(shè)定默認(rèn)啟動項目。
設(shè)定默認(rèn)啟動項目:
bcdedit /default
設(shè)定默認(rèn)啟動操作系統(tǒng)程序為NTLDR:
bcdedit /default
/displayorder 設(shè)定哪一個系統(tǒng)啟動顯示多啟動畫面。
設(shè)定二個操作系統(tǒng)項目和在啟動管理顯示命令中被建立操作系統(tǒng)載入的程序NTLDR:
bcdedit /displayorder
把指定的操作系統(tǒng)項目加入啟動管理顯示命令結(jié)束:
bcdedit /displayorder /addlast
/timeout 設(shè)定啟動暫停數(shù)值。
/toolsdisplayorder 設(shè)定命令在哪一個啟動管理顯示工具畫面。
設(shè)定二個工具項目和內(nèi)存診斷在那啟動管理工具顯示命令:
bcdedit /toolsdisplayorder
把指定的工具項目加入啟動的結(jié)束管理工具顯示命令:
bcdedit /toolsdisplayorder /addlast
為一個啟動應(yīng)用程序控制緊急處理服務(wù)的指令
====================
/bootems
開啟啟動管理緊急處理服務(wù):
bcdedit /bootems ON
/ems
為目前的操作系統(tǒng)啟動項目EMS 開啟:
bcdedit /ems ON
/emssettings 設(shè)定緊急處理服務(wù)參數(shù)。
設(shè)定EMS 參數(shù)使用基本輸出入系統(tǒng)設(shè)定:
bcdedit /emssettings BIOS