linux修改BCD文件,关于BCDEdit 命令的使用
1, BCD 介紹
在Win7中與之前的版本的引導系統不同,微軟引入了一種全新的boot loader架構, Windows Boot Manager
(Bootmgr.exe)。與之前通過Ntldr來初始化硬件設備、建立內存空間的映射圖等,將系統的軟硬件環境設置成一個合適的狀態,為最終調用操作
系統內核準備好正確的環境相比。Win7中的新架構可以實現完整的硬件獨立性,且能夠與多種操作系統無縫結合,讓Win7的啟動/引導過程更加快速與安
全。同時,將之前Windows系統中由Boot.ini管理的內容移交給新的Boot Configuration Data (BCD :
啟動設置數據),當然,也提供了新的啟動選項編輯工具,BCDEdit (BCDEdit.exe),來管理啟動設置。
BCDEdit:Win7啟動設置編輯工具
如果是新安裝Win7操作系統,你將會發現在的文件夾中Boot.ini文件已經徹底消失;如果系統中安裝了之前的操作系統版本,雖然仍可找到Boot.ini文件,但是這個文件只作用于老版本的操作系統,并不對Win7造成任何影響。
在基于EFI (Extensible Firmware Interface : 可擴展固件接口,以后采用這種接口的PC會越來越多
)的計算機中,Boot.ini
文件則更不復存在,在基于EFI的系統中,啟動選項被貯存在主板的存儲器中。此時要修改啟動選項,就需要使用BCDEdit,甚至在修改Boot.ini
的方式也不能使用原先的文本編輯器。另外一方面,微軟在Win7中提供了可通過WMI (Windows Management
Instrumentation : Windows管理規范)調用的BCD類,通過它可以用編程的方式修改BCD數據。
BCDEdit的啟動
BCDEdit不是一個運行于圖形界面程序,而是一個命令行工具,運行文件Bcdedit.exe位于
“\Windows\System32”目錄下。如果需要執行BCDEdit,首先應進入命令行窗口,并要將操作用戶并提升至管理員權限。在命令行窗口
中,輸入“bcdedit” 即可。
2,BCDEdit命令簡介
通過命令行工具Bcdedit,用戶可以添加、刪除及修改BCD (Boot Configuration
Data)中的對象。在BCD中,每個對象均具有唯一的 GUID (Globally Unique Identifier :
全局唯一標識符),如系統中的每塊硬盤、每個分區的GUID (全局唯一標識符)均不相同。
在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 :
顯示Vista和Win7系統當前的啟動設置數據,這時系統中所有安裝了操作系統的硬盤或分區均會顯示相應的 GUID 標識,如
{xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx} 。
使用BCDEdit備份與恢復啟動選項
在對Vista和Win7的啟動選項修改之前,最好先對其備份,以防萬一操作失誤或其他故障導致系統無法啟動。
bcdedit /export “D:\BCD Backup\Bcd Backup” : 將啟動設置備份到D盤 “BCD Backup” 目錄下;
bcdedit /import “D:\BCD Backup\Bcd Backup” : 恢復之前備份在D盤 “BCD Backup”目錄下啟動選項。
使用BCDEdit修改啟動菜單選項
作為一種良好的操作習慣,在對Vista和Win7的啟
動選項進行任何修改前,首先要對BCD中的啟動選項進行備份,相應的命令上頁我們已介紹過,在此不再贅述;其次,使用“bcdedit ”或“
bcdedit /enum all ”來查看系統中硬盤或分區的正確 GUID
標識,并將其記錄下來。畢竟,BCDEdit只是一款命令行工具,我們操作時需手動輸入類似“{xxxxxxxx-xxxx-xxxx-xxxx-
xxxxxxxxxxxx}”這樣的長字符串時,很容易出錯,而這往往會導致Vista和Win7啟動失敗。
3,下面詳細介紹使用BCDEdit修改啟動選項的常用命令格式:
bcdedit /set {legacy} Description “Windows XP Professional SP2” :
修改上一代操作系統在啟動菜單中的顯示內容,比如說我們也可將其修改為“Vista天地專用XP SP2”之類。注意,命令中的引號不可省略;
bcdedit
/set {current} description “Vista和Win7 Build 5270 x86″ :
修改當前啟動硬盤或分區上的操作系統在啟動菜單中的顯示內容。注意,當前分區上的操作系統可能為Vista和Win7,也可以是其他系統,當然,命令中的
引號也不可省略;
bcdedit /set {5189b25c-5558-4bf2-bca4-289b11bd29e2}
description “Vista和Win7 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,然后再顯示默認啟動的系統如Vista和Win7
bcdedit /timeout 15 : 將默認的啟動菜單顯示時間30秒更改為15秒,當然,您可以將這個時間修改為任何您希望的數值。
使用BCDEdit修復硬盤/分區結構錯誤
在對啟動選項的修改過程中,如添加或刪除某個硬盤/分區時,可能會因操作中的不慎導致硬盤/分區結構的混亂,除了采用恢復修改前的備份方法外,也可以首先使用BCDEdit來嘗試一下修復。
具體方法如下:
X:\>X:\boot\fixntfs.exe -lh -all : 這時的“ X: ”指引導目錄 “boot” 所在的硬盤/分區;
bcdedit
/set {5189b25c-5558-4bf2-bca4-289b11bd29e2} device partition=X: :
將指定GUID的分區設為啟動分區。注意,這里的“ X: ”的GUID須與指定值不同,同時,運行該命令后,必須接著運行下面的osdevice命令;
bcdedit /set {5189b25c-5558-4bf2-bca4-289b11bd29e2} osdevice
partition=X: : 將指定GUID的分區設為啟動分區。注意,這個命令必須與上面的device命令配對使用,同時“ X:
”的GUID須與指定值不同。
4
基礎教程:BCDEDIT常用命令及使用實例(圖)
BCDEDIT是從Vista開始引入的啟動配置數據管理工具,命令行工具用于修改啟動配置數據存儲,可以使用Bcdedit.exe在啟動配置數
據存儲中添加、刪除、編輯和附加存儲項,適應Vista/Windows 2008/Windows
7及之后版本系統,bcdedit.exe文件位于系統盤的Windows\system32目錄下
,其功能非常強大,很多啟動問題都可以通過該命令解決,當然前提是你不怕麻煩。
如果只是臨時為了應急,比如啟動菜單修復,大家也可以使用一些現成的啟動管理軟件,比如EasyBCD等,如果時間或條件許可,天緣還是建議你多“折騰”一下,下次再遇到類似問題就會得心應手。
一、BCDEDIT常用命令一覽表
功能
命令行
示例
導出備份當前系統啟動配置數據
bcdedit /export
把當前配置數據導出到D盤,并存為Bkup文件,雙引號可要可不要
bcdedit /export "D:\Bkup"
導入并覆蓋當前系統啟動配置數據
bcdedit /import
把D盤Bkup配置文件導入并覆蓋當前配置數據,雙引號可要可不要
bcdedit /import "D:\Bkup"
顯示Bcdedit全部命令幫助
bcdedit /?
bcdedit /?
bcdedit /?,顯示Bcdedit全部命令幫助
bcdedit /? /store,指定顯示store命令幫助,命令前面的斜杠可要可不要
在儲存中的列表項目
bcdedit [/store ] /enum [| ] [/v]
列出當前系統全部啟動項:
bcdedit,或
bcdedit /enum,或bcdedit /enum ACTIVE
顯示所有存儲中的項(包括啟動管理器顯示項、固件應用程序、啟動環境、繼承項等等):
bcdedit /enum all
列出所有操作系統項:
bcdedit /enum OSLOADER
列出所有的啟動管理項:
bcdedit /enum BOOTMGR
/v參數可以完整顯示項標識符,而不是使用已知標識符的名稱:
bcdedit /enum ACTIVE /v
設置默認啟動菜單顯示超時
bcdedit /timeout
將默認啟動菜單顯示超時時間設為5秒
bcdedit /timeout 5
創建指定啟動項副本
bcdedit [/store ] /copy {} /d
復制啟動項目:
bcdedit /copy {GUID} /d "New entry"
新建啟動項目
bcdedit /create [{}] [/d ]
[/application |? ?? /inherit [] |
/inherit DEVICE | /device]
創建Windows XP系統引導項:
bcdedit /create {ntldr} /d "Windows XP SP3"
創建一個Windows 8系統啟動項:
bcdedit /create /d "Windows 8" /application osloader
刪除項目
bcdedit [/store ] /delete [/f] [/cleanup | /nocleanup]
徹底刪除指定的啟動項:
bcdedit /delete {GUID} /cleanup
刪除存儲中涉及NTLDR的OS加載項:
bcdedit /delete {GUID} /f
刪除啟動配置數據存儲項中的數據元素
bcdedit [/store ] /deletevalue []
刪除啟動管理器中的bootsequence選項:
bcdedit /deletevalue {bootmgr} bootsequence
設定項目選擇項數值
bcdedit [/store ] /set [{}] [ /addfirst | /addlast | /remove ]
修改啟動項描述:
bcdedit /set {GUID} description "Windows 7 SP2"
設置啟動管理器使用的一次性啟動序列
bcdedit /bootsequence [...] [ /addfirst | /addlast | /remove ]
設定多個啟動序列(ID之間使用空格):
bcdedit /bootsequence {GUID1} {GUID2} {GUID3} { ...}
加入操作系統項目為啟動列表最后項:
bcdedit /bootsequence {GUID} /addlast
設定默認啟動項目
bcdedit /default
設定GUID序列為默認啟動項:
bcdedit /default {GUID}
將基于NTLDR的OS設置為默認項(天緣注:多個NTLDR沒問題?):
bcdedit /default {ntldr}
設置啟用管理器使用的顯示順序
bcdedit /displayorder [...] [ /addfirst | /addlast | /remove ]
將指定OS項添加到啟動管理顯示順序末尾:
bcdedit /displayorder? {GUID} /addlast
啟用或禁用指定項的緊急管理服務
bcdedit /bootems [] { ON | OFF }
開啟啟動管理器緊急處理服務:
bcdedit /bootems {bootmgr} ON
啟用或禁用指定操作系統啟動項的緊急管理服務
bcdedit /ems [] { ON | OFF }
啟用當前操作系統啟動項的緊急管理服務:
bcdedit /ems ON
設置系統全局緊急管理服務設置
bcdedit /emssettings [ BIOS ] | [ EMSPORT:| [EMSBAUDRATE:] ]
將緊急管理服務參數設置為使用BIOS設置:
bcdedit /emssettings BIOS
其中幾個參數解釋:
指定要使用的存儲。如果未指定此選項,則使用系統存儲。詳細信息,請運行 "bcdedit /? store"。
指定要修改的項的標識符。如果未指定,則使用 {current}。 有關標識符的詳細信息,請運行 "bcdedit /? ID"。
指定將創建或修改的選項數據類型。有關數據類型的詳細信息,請運行 "bcdedit /? TYPES"。
指定應分配給該選項的值。的格式取決于指定的數據類型。 有關數據格式的詳細信息,請運行 "bcdedit /? FORMATS"。
此外BCDEDIT還有幾條命令上表未列出來,可以通過cmd命令行下輸入bcdedit /? 方式查看注解,幫助相當詳細。
二、BCDEDIT完整命令列表(來源Windows 7 Bcdedit幫助)
對存儲執行的命令
======================================
/createstore??? 新建空的啟動配置數據存儲。
/export???????? 將系統存儲的內容導出到文件。以后可以使用該文件還原系統存儲的狀態。
/import???????? 使用 /export 命令創建的備份文件來還原系統存儲的狀態。
/sysstore?????? 設置系統存儲設備(僅影響 EFI 系統,在重新啟動后不再有效, 且僅用于系統存儲設備不確定的情況下)。
對存儲中的項執行的命令
======================================
/copy?????????? 復制存儲中的項。
/create???????? 在存儲中新建項。
/delete???????? 刪除存儲中的項。
/mirror???????? 創建存儲中項的鏡像。
對項選項執行的命令
======================================
/deletevalue??? 刪除存儲中的項選項。
/set??????????? 設置存儲中的項選項值。
運行 bcdedit /? TYPES 可獲得這些命令使用的數據類型的列表。
運行 bcdedit /? FORMATS 可獲得有效數據格式的列表。
控制輸出的命令
======================================
/enum?????????? 列出存儲中的項。
/v????????????? 命令行選項,完整顯示項標識符,而不是使用已知標識符的名稱。單獨使用命令 /v 可完整顯示活動類型的項標識符。
單獨運行 "bcdedit" 等同于運行 "bcdedit /enum ACTIVE"。
控制啟動管理器的命令
======================================
/bootsequence?? 為啟動管理器設置一次性啟動序列。
/default??????? 設置啟動管理器將使用的默認項。
/displayorder?? 設置啟動管理器顯示多重引導菜單的順序。
/timeout??????? 設置啟動管理器的超時值。
/toolsdisplayorder? 設置啟動管理器顯示工具菜單的順序。
控制啟動應用程序緊急管理服務的命令
======================================
/bootems??????? 啟用或禁用啟動應用程序的緊急管理服務。
/ems??????????? 啟用或禁用操作系統項的緊急管理服務。
/emssettings??? 設置全局緊急管理服務參數。
控制調試的命令
======================================
/bootdebug????? 啟用或禁用啟動應用程序的啟動調試。
/dbgsettings??? 設置全局調試程序參數。
/debug????????? 啟用或禁用操作系統項的內核調試。
/hypervisorsettings? 設置虛擬機監控程序的參數。
三、Bcdedit常用設置修復及配置示例
1、警告Bcdedit命令需要在管理員權限下進行操作,如下圖:
2、在使用BCD之前,請先備份當前系統的啟動配置文件方法如下:
bcdedit /export D:\bootbkup
bcdedit /import D:\bootbkup
其中bootbkup是備份的文件名。
3、BCDEDIT運行界面,如下圖,請留意圖中的標識符位置和項目名稱。
啟動入口最主要是四個部分:
Identifier標識符——啟動入口的系統標識,可能是bootmgr、current或id形式等。
device設備——一般是驅動器路徑或虛擬映像,系統啟動引導后入口。
path路徑——是device設備的位置,系統用來定位啟動文件。
description描述——顯示描述,也就是大家見到的菜單顯示。
{bootmgr} ——啟動管理器
{current}——當前操作系統,啟動時選擇的系統
{default} ——缺省默認的啟動項
{ntldr} ——早期Windows加載
四、BCDEDIT常用操作步驟
1、為Windows XP創建一個分區啟動入口:
bcdedit /create {ntldr} /d "Windows XP"
bcdedit /set {ntldr} device partition=F:
bcdedit /set {ntldr} path ntldr
bcdedit /displayorder {ntldr} /addlast
2、刪除Windows XP啟動入口
bcdedit /delete {ntldr} /f
3、設置啟動分區
bcdedit /set {標識符} device partition=C:
4、增加Linux引導入口
bcdedit /create /d "GrubInstallUbuntu" /application bootsector
命令執行后會返回一個GUID,然后使用鼠標選中右鍵全選,并在標題欄中右鍵復制下來,接著再執行以下命令(命令中的GUID需要替換成上面命令返回的ID 值)。
bcdedit /set {GUID} device partition=C:
bcdedit /set {GUID} path grldr.mbr
bcdedit /displayorder {GUID} /addlast
5、關閉系統DEP保護:
bcdedit.exe/set {current} nx AlwaysOff
6、創建一個配置數據庫:
bcdedit /createstore C:\Myboot
總結
以上是生活随笔為你收集整理的linux修改BCD文件,关于BCDEdit 命令的使用的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: VIPKID数千万战略投资新学说,深度参
- 下一篇: 拥抱ES6(三)