最近由于工作測試需要,在一台電腦上安裝了多作業系統(XP,2000,2003,VISTA,WIN7),但是發現window7隻會顯示“之前版本的系統”等啟動選項,需要修改以友善進入需要的系統。但是發現win7下無法像XP下直接修改C:/boot.ini即可,需要在管理者權限下使用bcdedit指令操作。記錄如下:
Bcdedit
目錄
Bcdedit簡介
BCDEdit 使用前注意
使用BCDEdit修改啟動菜單選項
更改系統名稱
Bcdedit簡介
在NT60系列作業系統(Windows 7/Vista/2008)中的一個指令行工具,用于建立和重新配置bootloader,後者無須再使用boot.ini檔案。也就是說,使用BCDEdit這個工具,能夠修改NT60 系列系統的啟動菜單
在之前基于NT50系列(Windows XP/2000/2003)的Windows系統中,Windows使用Ntldr作為Boot Loader來啟動系統,但在新的NT60系列系統中,微軟引入了一種全新的boot loader架構,Windows Boot Manager (Bootmgr.exe)。與Ntldr嚴重地依賴于硬體不同的是,NT60中的新架構可以實作完整的硬體獨立性,且能夠與多種作業系統無縫結合,讓NT60的啟動/引導過程更加快速與安全。同時,将之前Windows 系統中由Boot.ini管理的内容移交給新的Boot Configuration Data (BCD : 啟動設定資料),當然,也提供了新的啟動選項編輯工具,BCDEdit (BCDEdit.exe),來管理啟動設定。
——所謂boot loader,在指在核心運作之前執行的一段小程式,系統通過它來初始化硬體裝置、建立記憶體空間的映射圖等,将系統的軟硬體環境設定成一個合适的狀态,為最終調用作業系統核心準備好正确的環境。——在啟動過程中,Ntldr 使用Boot.ini 檔案來确定在啟動/引導過程中要顯示哪些作業系統選項,我們對啟動選項的設定可以通過修改boot.ini檔案中相應内容實作。Windows NT60 (Windows 7/Vista/2008)與早期NT52 系列系統(Windows XP/2000/2003)啟動的對比 在傳統的基于BIOS的計算機中,如果隻安裝NT60 系列作業系統(Windows 7/Vista/2008),您将會發現Boot.ini 檔案已經徹底從系統中消失;如果系統中安裝了NT60 和之前的Windows 系統,如NT52 系列作業系統 (Windows XP/2000/2003),雖然仍可找到Boot.ini 檔案,不過,這個檔案隻作用于那些系統,而不會對NT60 的啟動有任何影響。
而在基于EFI (Extensible Firmware Interface : 可擴充固件接口,以後采用這種接口的PC會越來越多)的計算機中,Boot.ini 檔案則更不複存在,在基于EFI的系統中,啟動選項被貯存在主機闆的存儲器中。此時要修改啟動選項,要麼通過能夠讀寫NVRAM的工具如NvrBoot,要麼使用上文提到的BCDEdit。
由此可見,在NT60中,想要再像之前NT52 中那樣通過一個簡單的文本編輯器來修改Boot.ini(或用NT52自帶工具Bootcfg)的方式來管理啟動選項已經不可能了,要對啟動設定進行修改,隻能使用指令格式相對要複雜得多的BCDEdit。
此外,微軟也在NT60 中提供了可通過WMI (Windows Management Instrumentation : Windows管理規範)調用的BCD 類,通過它可以用程式設計的方式修改BCD資料。不過,相信對絕大多數根本不會接觸程式設計的使用者而言,這更是不可能的任務。
BCDEdit 使用前注意
1.工具性質
需要注意的是,BCDEdit不是一個運作于圖形界面下的程式,而是一個指令行工具,該檔案(Bcdedit.exe) 位于 “\Windows\System 32”目錄下。
2.啟動
要執行BCDEdit,首先應進入指令行視窗,并要将操作使用者并提升至管理者權限。另外,該工具依賴于參數,如果不帶參數,則不能正常使用。
在指令行視窗中,轉到系統目錄如 “C:/windows/system32”下,然後輸入“bcdedit <參數>” 即可。也可直接在任意目錄運作,因為System32目錄本身在環境變量“Path”的範圍内。
3.BCDEdit指令核心
(1)幫助
bcdedit /? : 顯示全部的指令幫助(都隻是概述)。
bcdedit.exe /? <指令> : 顯示指定指令參數的詳細資訊(無需帶斜杠)。使用中對其他任何可用參數也均可使用本指令格式檢視該參數的具體說明。
(2)Enum
通過指令行工具Bcdedit,我們可以添加、删除及修改BCD (Boot Configuration Data)中的對象。在BCD中,每個對象均具有唯一的GUID (Globally Unique Identifier : 全局唯一辨別符),如系統中的每塊硬碟、每個分區的GUID (全局唯一辨別符)均不相同。
在BCD中,硬碟或分區的GUID可分為如下幾類:
{ntldr}: 指存在上代NT50系列作業系統(Windows XP/2000/2003)的硬碟或分區;
{default}: 預設所在硬碟或分區;
{current}: 目前硬碟或分區;
{<GUID>}: 類似于這個格式的GUID指其他安裝了作業系統的硬碟或分區。
(注:相應的GUID可通過“bcdedit ”或“bcdedit /enum all ”指令檢視。這樣會顯示BCD目前的啟動設定資料,包含了所有在BCD記錄中的作業系統,均能顯示其GUID,使用者可以此作更改啟動資料的參考。)
(3)保險措施(使用BCDEdit備份與恢複啟動選項)
在對Windows NT60的啟動選項修改之前,最好先對其備份,以防萬一操作失誤或其他故障導緻系統無法啟動。
bcdedit /export <目錄> : 将啟動設定備份到指定的目錄下;
bcdedit /import <目錄> : 恢複之前備份在指定目錄下啟動選項。
注:當需要還原備份的啟動選項時,應仔細檢查備份的啟動選項是否對應于自己所需要的,否則重新設定會比較麻煩。
使用BCDEdit修改啟動菜單選項
作為一種良好的操作習慣,在對Windows Vista的啟動選項進行任何修改前,首先要對BCD中的啟動選項進行備份,相應的指令上頁我們已介紹過,在此不再贅述;其次,使用“bcdedit ”或“bcdedit /enum all ”來檢視系統中硬碟或分區的正确GUID 辨別,并将其記錄下來。畢竟,BCDEdit隻是一款指令行工具,我們操作時需手動輸入類似“”這樣的長字元串時,很容易出錯,而這往往會導緻Windows Vista啟動失敗。
下面詳細介紹使用BCDEdit修改啟動選項的常用指令格式:
bcdedit /set {ntldr} Description “Windows XP Professional SP2”: 修改上一代在啟動菜單中的顯示内容,比如說我們也可将其修改為“Vista天地de專用XP SP2”之類。注意,指令中的引号不可省略;作業系統
bcdedit /set {current} description “Windows Vista Build 5270 x86″: 修改目前啟動硬碟或分區上的作業系統在啟動菜單中的顯示内容。注意,目前分區上的作業系統可能為Windows Vista,也可以是其他系統,當然,指令中的引号也不可省略;
bcdedit /set {<GUID>} description “Windows Vista Build 5270 x64”: 修改安裝于其他硬碟或分區的系統在啟動菜單中的顯示内容,使用這項指令時一定要注意該硬碟/分區的GUID輸入正确,相應的GUID可通過“bcdedit ”或“bcdedit /enum all ”指令檢視。
bcdedit /default {current} :将目前啟動硬碟/分區中的作業系統設定為預設啟動的系統;
bcdedit /default {<GUID>} :設定指定GUID上的作業系統為預設啟動的系統;
bcdedit /default {ntldr} :設定上一代Windows 系統Windows XP為預設啟動的系統;
bcdedit /displayorder : 設定啟用菜單中各項的顯示順序,如:
bcdedit.exe /displayorder {ntldr} {current} :将首先顯示Windows XP,然後再顯示預設啟動的系統如Windows Vista;
bcdedit /timeout 15 :将預設的啟動菜單顯示時間30秒更改為15秒,當然,您可以将這個時間修改為任何您希望的數值。
使用BCDEdit修複硬碟/分區結構錯誤
在對啟動選項的修改過程中,如添加或删除某個硬碟/分區時,可能會因操作中的不慎導緻硬碟/分區結構的混亂,除了采用恢複修改前的備份方法外,也可以首先使用BCDEdit來嘗試一下修複。
具體方法如下:
X:\>X:\boot\fixntfs.exe -lh -all : 這時的“X: ”指引導目錄 “boot” 所在的硬碟/分區;
bcdedit /set device partition=X: : 将指定GUID的分區設為啟動分區。注意,這裡的“X: ”的GUID須與指定值不同,同時,運作該指令後,必須接着運作下面的osdevice指令;
bcdedit /set osdevice partition=X: : 将指定GUID的分區設為啟動分區。注意,這個指令必須與上面的device指令配對使用,同時“X: ”的GUID須與指定值不同。
Bcdedit指令詳解,自定義Vista啟動管理項
Bcdedit 位于X:\Windows\system32\ "X:"為安裝Vista的盤符。
儲存操作指令
====================
/createstore 建立一個新的空白啟動配置資料檔案。
bcdedit /createstore C:\Data\BCD 建立BCD啟動配置資料檔案儲存到“C:\DATA\”檔案夾。
/export 備份啟動配置資料檔案。
bcdedit /export "C:\Data\BCD Backup" 備份BCD啟動配置檔案到“C:\Data\”檔案夾,并以“BCD Backup”命名。
/import 還原啟動配置資料檔案。
bcdedit /import "C:\Data\BCD Backup" 從“C:\Data\”檔案夾恢複BCD啟動配置檔案。
儲存項目操作指令
====================
/copy 項目拷貝
作業系統啟動項目的拷貝:
bcdedit /copy /d "Copy of entry"
/create 建立項目
建立作業系統載入程式項目的NTLDR(Ntldr):
bcdedit /create /d "Earlier Windows OS Loader"
建立存儲器磁碟另外的選擇項項目:
bcdedit /create /d "Ramdisk options"
建立一個新的作業系統啟動項目:
bcdedit /create /d "Windows Vista" /application osloader
建立一個新的調試器:
bcdedit /create /d "Debugger Settings"
/delete 删除項目
删除指定的作業系統項目:
bcdedit /delete
删除指定的作業系統項目但啟動時不顯示項目(徹底删除):
bcdedit /delete /cleanup
删除指定的作業系統項目但啟動時顯示項目:
bcdedit /delete /nocleanup
删除作業系統載入程式項目的NTLDR:
bcdedit /delete /f
項目選擇操作指令
====================
/deletevalue 删除項目選擇項。
删除啟動管理的bootmgr選擇項項目:
bcdedit /deletevalue bootsequence
删除(WinPE)作業系統的數值開機項目:
bcdedit /deletevalue winpe
删除來自指定的操作的Windows PE 數值系統開機項目:
bcdedit /deletevalue winpe
/set 設定項目選擇項數值。
設定作業系統“cbd971bf-b7b8-4885-951a-fa03044f5d71”引導分區“C”:
bcdedit /set device partition=C:
指定的作業系統引導檔案“windows\ system 32\ winload.exe”:
bcdedit /set path \windows\system32\winload.exe
設定“NX”為“OptIn”:
bcdedit /set nx optin
更改系統名稱
預設XP系統名稱在Vista啟動管理器中是"earlier version of Windows",更改:
bcdedit /set Description "Windows XP Professional SP2"
預設Vista系統名稱在Vista啟動管理器中是"Microsoft Windows",更改:
bcdedit /set Description "Windows Vista 5456"
輸出控制指令
====================
/enum 在儲存中的清單項目。
列出所有的作業系統載入程式啟動項目:
bcdedit /enum OSLOADER
列出所有的啟動管理項目:
bcdedit /enum BOOTMGR
列出預設的啟動項目:
bcdedit /enum
列出指定的作業系統啟動項目:
bcdedit /enum
/v 列出所有活動的項目
bcdedit /enum ACTIVE /v
啟動管理控制指令
====================
/bootsequence 設定啟動清單順序。
設定二個作業系統項目和啟動順序:
bcdedit /bootsequence {cbd971bf-b7b8-4885-951a- fa03044f5d71}
加入作業系統項目為啟動清單最後項:
bcdedit /bootsequence /addlast
/default 設定預設啟動項目。
設定預設啟動項目:
bcdedit /default
設定預設啟動作業系統程式為NTLDR:
bcdedit /default
/displayorder 設定哪一個系統啟動顯示多啟動畫面。
設定二個作業系統項目和在啟動管理顯示指令中被建立作業系統載入的程式NTLDR:
bcdedit /displayorder
把指定的作業系統項目加入啟動管理顯示指令結束:
bcdedit /displayorder /addlast
/timeout 設定啟動暫停數值。
/toolsdisplayorder 設定指令在哪一個啟動管理顯示工具畫面。
設定二個工具項目和記憶體診斷在那啟動管理工具顯示指令:
bcdedit /toolsdisplayorder
把指定的工具項目加入啟動的結束管理工具顯示指令:
bcdedit /toolsdisplayorder /addlast
為一個啟動應用程式控制緊急處理服務的指令
====================
/bootems
開啟啟動管理緊急處理服務:
bcdedit /bootems ON
/ems
為目前的作業系統啟動項目EMS 開啟:
bcdedit /ems ON
/emssettings 設定緊急處理服務參數。
設定EMS 參數使用基本輸出入系統設定:
bcdedit /emssettings BIOS
來自:http://www.2cto.com/os/201107/97712.html