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