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 開機載入器物件都有自己的識別碼,而且物件的 devicepath 設定會指出正確的磁碟分割和開機應用程式。

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,這是一般值。 您也可以明確設定 osdevicedevice 值,如下列範例所示。 此範例也假設您已將 EFI 的 Windows 開機載入器指定為預設開機載入器物件。

Bcdedit /set {default} device partition=c:
Bcdedit /set {default} osdevice partition=c:

路徑設定

pathWindows 開機載入器的 元素會指定該磁片區上開機載入器的位置。 針對 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