UEFI 的 BCD 系統存放區設定
針對典型的部署案例,您不需要修改 BCD 存放區。 本主題討論 BCD 存放區中您可以修改的各種 BCD 設定。 在 UEFI 系統上,這包括下列開機應用程式的設定:
下列各節將詳細說明這些開機應用程式的可用設定,以及如何修改 UEFI 系統的每個應用程式。
為了簡單起見,本節中的 BCDEdit 範例會修改 BCD 系統存放區。 若要修改另一個存放區,例如 BCD 範本的複本,請在命令列中包含存放區名稱。
UEFI 的 Windows 開機管理員設定
Windows 開機管理員 ({bootmgr}
) 管理開機程式。 以 UEFI 為基礎的系統包含韌體開機管理員 Bootmgfw.efi,它會載入以儲存在 NVRAM 中的變數為基礎的 EFI 應用程式。
Windows 開機管理員中 和 path
元素的 device
BCD 設定表示韌體開機管理員。 名為 BCD-template for Windows 的範本包含下列適用于 Windows 開機管理員的設定。
## Windows Boot Manager
identifier {bootmgr}
device partition=\Device\HarddiskVolume1
path \EFI\Microsoft\Boot\bootmgfw.efi
description Windows Boot Manager
裝置設定
元素 device
會指定包含 Windows 開機管理員的磁片區。 若為 UEFI 系統, device
Windows 開機管理員的 元素會設定為系統磁碟分割磁片區字母。 若要判斷正確的磁片區字母,請使用 Diskpart 工具來檢視磁碟分割。 下列範例假設系統具有具有多個磁碟分割的單一硬碟,包括已指派 S 磁碟機號的系統磁碟分割。
下列 Diskpart 命令會選取磁片 0,然後列出該磁片上磁片區的詳細資料,包括其磁碟機號。 它會將磁片區 2 顯示為系統分割區。
DISKPART> select disk 0
DISKPART> list volume
Volume ### Ltr Label Fs Type Size Status Info
---------- --- ------ ----- ---------- ------- --------- ------
Volume 0 D NTFS Partition 103 GB Healthy
Volume 1 C NTFS Partition 49 GB Healthy Boot
Volume 2 S FAT32 Partition 200 MB Healthy System
如果系統磁碟分割沒有指派的磁碟機號,請使用 Diskpart assign
命令指派一個。 下列範例假設系統磁碟分割為磁片區 2,並將它指派為磁碟機號。
Diskpart
select disk 0
list volume
select volume 2 // assuming volume 2 is the system partition
assign letter=s
判斷系統磁片區之後,請將 device
Windows 開機管理員的 元素設定為對應的磁碟機號。 下列範例會將 設定 device
為磁片磁碟機 S。
Bcdedit /set {bootmgr} device partition=s:// system partition
提示
如果您先前已使用 Diskpart 取得磁碟機號,然後重新開機您的電腦,請在執行此命令之前,使用 Diskpart 再次檢查您的磁碟機號。 視您的環境而定,磁碟機號可能會變更,因此請務必設定正確的磁碟分割。
路徑設定
元素 path
會指定該磁片區上 Windows 開機管理員應用程式的位置。 針對 UEFI 系統, path
表示韌體開機管理員,其路徑為 \EFI\Microsoft\Boot\Bootmgfw.efi
。
您可以藉由列舉存放區中的值,確認 BCD 範本具有正確的路徑,如下所示:
bcdedit /store bcd-template /enum all
若要明確設定 path
為 \EFI\Microsoft\Boot\Bootmgfw.efi
,請使用下列命令。
Bcdedit /set {bootmgr} path \efi\microsoft\boot\bootmgfw.efi
其他設定
您應該將 Windows 開機管理員設定為 UEFI 韌體顯示順序中的第一個專案,如下列範例所示。
Bcdedit /set {fwbootmgr} displayorder {bootmgr} /addfirst
您也應該在 Windows 開機管理員顯示順序中指定最上層的 Windows 開機載入器應用程式。 下列範例示範如何將指定的 Windows 開機載入器放在顯示順序的頂端。
Bcdedit /set {bootmgr} displayorder {<GUID>} /addfirst
在上述範例中, <GUID>
是指定之 Windows 開機載入器物件的識別碼。 下一節將更詳細地討論此識別碼。
注意
具有多個已安裝作業系統的多開機系統具有多個 Windows 開機載入器的實例。 Windows 開機載入器的每個實例都有自己的識別碼。 您可以將預設的 Windows 開機載入器 ({default}
) 設定為上述任何識別碼。
Windows 開機載入器設定
BCD 存放區至少有一個實例,以及 Windows 開機載入器的選擇性多個實例。 個別的 BCD 物件代表每個實例。 每個實例都會載入其中一個已安裝的 Windows 版本,其中包含物件的元素已指定的組態。 每個 Windows 開機載入器物件都有自己的識別碼,而且物件的 device
和 path
設定會指出正確的磁碟分割和開機應用程式。
BCD-template
for Windows 具有具有下列設定的單一 Windows 開機載入器物件。
## Windows Boot Loader
identifier {9f25ee7a-e7b7-11db-94b5-f7e662935912}
device partition=C:
path \Windows\system32\winload.efi
description Microsoft Windows Server
locale en-US
inherit {bootloadersettings}
osdevice partition=C:
systemroot \Windows
此 Windows 開機載入器的識別碼為 {9f25ee7a-e7b7-11db-94b5-f7e662935912}
。 您可以在系統上使用此 GUID,或讓 BCDEdit 工具為您產生新的 GUID。
若要簡化 BCDEdit 命令,您可以將 BCD 系統存放區中的其中一個 Windows 開機載入器指定為預設載入器。 然後,您可以使用標準識別碼 ({default}
) 取代完整的 GUID。下列範例會將 EFI 的 Windows 開機載入器指定為預設開機載入器,假設其使用 BCD 範本中的識別碼 GUID。
Bcdedit /default {9f25ee7a-e7b7-11db-94b5-f7e662935912}
裝置和 OSDevice 設定
下列元素會指定索引鍵位置:
- 元素
device
會指定包含開機應用程式的分割區。 - 元素
osdevice
會指定包含系統根目錄的分割區。
針對 EFI 的 Windows 開機載入器,這兩個專案通常會設定為 Windows 系統磁碟分割的磁碟機號。 不過,如果已啟用 BitLocker 或電腦有多個已安裝的 Windows 版本, osdevice
而且 device
可能設定為不同的分割區。BCD 範本會將這兩個元素設定為驅動 C,這是一般值。 您也可以明確設定 osdevice
和 device
值,如下列範例所示。 此範例也假設您已將 EFI 的 Windows 開機載入器指定為預設開機載入器物件。
Bcdedit /set {default} device partition=c:
Bcdedit /set {default} osdevice partition=c:
路徑設定
path
Windows 開機載入器的 元素會指定該磁片區上開機載入器的位置。 針對 UEFI 系統, path
表示 EFI 的 Windows 開機載入器,其路徑為 \Windows\System32\Winload.efi
。
您可以藉由列舉存放區中的值,確認 BCD-template 具有正確的 path
值。 您也可以明確設定 path
值,如下列範例所示。
Bcdedit /set {default} path \windows\system32\winload.efi
Windows 記憶體測試人員設定
Windows 記憶體測試人員 ({memdiag}
) 在開機時執行記憶體診斷。 應用程式的 device
BCD 設定和 path
元素會指出正確的應用程式。
注意
Intel Itanium 電腦不包含 Windows 記憶體測試人員,而且不需要 {memdiag}
設定。
適用于 Windows 的 BCD 範本具有下列設定。
## Windows Memory Tester
identifier {memdiag}
device partition=\Device\HarddiskVolume1
path \boot\memtest.exe
description Windows Memory Diagnostic
裝置設定
針對 UEFI 系統, device
Windows 記憶體測試人員的 元素會設定為系統磁碟分割磁碟機號。 下列範例假設系統磁碟分割是磁片磁碟機 S,如先前範例所示。
Bcdedit /set {bootmgr} device partition=s: // system partition
路徑設定
元素 path
會指定元素所指定磁片區上 device
Windows Test Manager 的位置。 針對 UEFI 系統, path
表示應用程式的 EFI 版本 (\EFI\Microsoft\Boot\Memtest.efi
) 。
您可以藉由列舉存放區中的值,確認 BCD-template 具有正確的 path
值。 您也可以使用 BCDEdit 工具來明確設定 path
值,如下列範例所示。
Bcdedit /set {memdiag} path \efi\microsoft\boot\memtest.efi