UEFI 用の BCD システム ストアの設定
一般的な展開シナリオでは、BCD ストアに変更を加える必要はありません。 このトピックでは、変更を加えることのできる BCD ストア内の各種 BCD 設定について取り上げます。 UEFI システム上の次のブート アプリケーションの設定が対象となります。
以降のセクションでは、これらの各ブート アプリケーションに用意されている設定の詳細のほか、UEFI システムの各アプリケーションに変更を加える方法について説明します。
簡潔にするために、このセクションで取り上げる BCDEdit の例では、BCD システム ストアに変更を加えています。 BCD-template のコピーなど、他のストアに変更を加える場合は、コマンド ラインにストア名を含めてください。
UEFI 用の Windows ブート マネージャーの設定
ブート プロセスは、Windows ブート マネージャー ({bootmgr}
) によって管理されます。 UEFI ベースのシステムには、NVRAM に格納されている変数に応じた EFI アプリケーションを読み込むファームウェア ブート マネージャー Bootmgfw.efi が存在します。
ファームウェア ブート マネージャーは、Windows ブート マネージャーの device
要素と path
要素の BCD 設定に指定されています。 Windows の BCD-template という名前のテンプレートには、Windows ブート マネージャーに関して次の設定が含まれています。
## Windows Boot Manager
identifier {bootmgr}
device partition=\Device\HarddiskVolume1
path \EFI\Microsoft\Boot\bootmgfw.efi
description Windows Boot Manager
デバイス設定
Windows ブート マネージャーを含んだボリュームは、device
要素で指定されます。 UEFI システムでは、Windows ブート マネージャーの device
要素が、システム パーティションのボリューム文字に設定されます。 正しいボリューム文字を調べるには、Diskpart ツールを使用してディスク パーティションを表示します。 次の例は、ハード ドライブが 1 台のシステムを想定しています。このハード ドライブには、ドライブ文字として 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 であると想定し、ドライブ文字として S を割り当てています。
Diskpart
select disk 0
list volume
select volume 2 // assuming volume 2 is the system partition
assign letter=s
システム パーティション ボリュームを特定したら、Windows ブート マネージャーの device
要素を対応するドライブ文字に設定します。 次の例では、device
を S ドライブに設定しています。
Bcdedit /set {bootmgr} device partition=s:// system partition
ヒント
ここまでで Diskpart を使用してドライブ文字を取得し、その後 PC を再起動した場合は、このコマンドを実行する前に、Diskpart を使用して再度ドライブ文字を確認してください。 環境によっては、ドライブ文字が変化する可能性があるため、設定しているパーティションが正しいことを確認してください。
パスの設定
path
要素は、そのボリューム上の Windows ブート マネージャー アプリケーションの場所を指定します。 UEFI システムの場合、path
にはファームウェア ブート マネージャーが指定され、そのパスは \EFI\Microsoft\Boot\Bootmgfw.efi
になります。
BCD-template のパスが正しいことは、次のようにストア内の値を列挙することによって確認できます。
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 ブート ローダー オブジェクトの識別子です。 この識別子については、次のセクションで詳しく説明します。
Note
複数のオペレーティング システムがインストールされたマルチブート システムには、Windows ブート ローダーのインスタンスが複数存在します。 Windows ブート ローダーのインスタンスにはそれぞれ独自の識別子が割り当てられます。 そのいずれかの識別子を既定の Windows ブート ローダー ({default}
) に設定できます。
Windows ブート ローダーの設定
BCD ストアには、Windows ブート ローダーのインスタンスが少なくとも 1 つ存在します。複数のインスタンスが存在することもあります。 各インスタンスは、個々の BCD オブジェクトによって表されます。 インストールされているいずれかのバージョンの Windows が各インスタンスによって読み込まれ、オブジェクトの要素によって指定された構成が Windows に割り当てられます。 Windows ブート ローダー オブジェクトにはそれぞれ独自の識別子が割り当てられ、そのオブジェクトの device
設定と path
設定によって、正しいパーティションとブート アプリケーションが指定されます。
Windows の BCD-template
には、次の設定を含んだ Windows ブート ローダー オブジェクトが 1 つ存在します。
## 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 ブート ローダーを既定のローダーとして指定できます。 そうすれば完全な GUID の代わりに標準の識別子 ({default}
) を使用できます。次の例では、BCD-template にある GUID 識別子を使用するという前提で、EFI の Windows ブート ローダーを既定のブート ローダーとして指定しています。
Bcdedit /default {9f25ee7a-e7b7-11db-94b5-f7e662935912}
デバイスと OSDevice の設定
キーの場所は、次の要素によって指定されます。
device
要素は、ブート アプリケーションがあるパーティションを指定します。osdevice
要素は、システム ルートがあるパーティションを指定します。
EFI の Windows ブート ローダーでは、どちらの要素も通常は、Windows システム パーティションのドライブ文字に設定されます。 ただし、BitLocker が有効になっている場合やコンピューターに複数のバージョンの Windows がインストールされている場合、osdevice
と device
が異なるパーティションに設定されることもあります。BCD-template では、どちらの要素も、標準の値である C ドライブに設定されています。 また、osdevice
と device
の値を明示的に設定することもできます。その例を次に示します。 この例も、EFI の Windows ブート ローダーが既定のブート ローダー オブジェクトとして指定されていることを前提としています。
Bcdedit /set {default} device partition=c:
Bcdedit /set {default} osdevice partition=c:
パスの設定
Windows ブート ローダーの path
要素は、そのボリューム上のブート ローダーの場所を指定します。 UEFI システムの場合、path
には EFI の Windows ブート ローダーが指定され、そのパスは \Windows\System32\Winload.efi
になります。
BCD-template の path
が正しいことは、ストア内の値を列挙することによって確認できます。 また、path
の値を明示的に設定することもできます。その例を次に示します。
Bcdedit /set {default} path \windows\system32\winload.efi
Windows メモリ テスターの設定
Windows メモリ テスター ({memdiag}
) は、ブート時にメモリの診断を実行します。 正確なアプリケーションは、アプリケーションの device
要素と path
要素の BCD 設定で指定されます。
Note
Intel Itanium コンピューターには Windows メモリ テスターは含まれていないため、{memdiag}
の設定は不要です。
Windows の BCD-template には次の設定があります。
## Windows Memory Tester
identifier {memdiag}
device partition=\Device\HarddiskVolume1
path \boot\memtest.exe
description Windows Memory Diagnostic
デバイス設定
UEFI システムでは、Windows メモリ テスターの device
要素がシステム パーティションのドライブ文字に設定されます。 次の例では、システム パーティションが、前出の例で使用した 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