ブート構成データ エディタについてよく寄せられる質問

ブート構成データ

BCD ストアとは何ですか ?

ブート構成データ (BCD) ストアにはブート構成パラメータが含まれいて、Microsoft® Windows Vista® と Microsoft® Windows Server™ コード ネーム "Longhorn" のオペレーティング システム起動方法を制御します。 こうしたパラメータは、以前は Boot.ini ファイル (BIOS ベースのオペレーティング システム) または不揮発性 RAM (NVRAM) エントリ (拡張ファームウェア インターフェイス ベースのオペレーティング システム) に含まれていました。 Bcdedit.exe コマンド ライン ツールを使用して BCD ストアにエントリを追加、削除、編集、付加することによって、オペレーティング システムが稼動する前の環境で実行される Windows® コードを操作できます。 Bcdedit.exe は Windows Vista パーティションの \Windows\System32 ディレクトリにあります。

  注 :

このドキュメントは主に Windows Vista に重点を置いて説明していますが、記載した情報は Windows Vista と Windows Server 2008 の両方に適用されます。

  注 :

コマンド プロンプトでコマンドやオプションの詳細を確認するには、「bcdedit.exe /? command」と入力してください。 たとえば、「bcdedit.exe /? CREATESTORE」と入力します。

Boot.ini から BCD に変更した理由を教えてください。

BCD は、ブート構成データを記述するメカニズムを強化するために作成されました。 新しいファームウェア モデル (拡張ファームウェア インターフェイス (EFI) など) の開発に伴い、基になるファームウェアを抽象化するために拡張可能で相互運用可能なインターフェイスが必要になりました。 この新しいデザインによって、Windows Vista のさまざまな新機能 (スタートアップ修復ツールやマルチ ユーザー インストールのショートカットなど) の基盤が提供されます。

BCD ファイルはレジストリ内のどこにありますか ?

BIOS ベースのオペレーティング システム。 BCD レジストリ ファイルは、アクティブ パーティションの \Boot\Bcd ディレクトリにあります。

EFI ベースのオペレーティング システム。 BCD レジストリ ファイルは EFI システム パーティションにあります。

すべてのユーザーが BCD を変更できますか ?

いいえ、BCD を変更するには管理者の資格情報が必要です。

BCD を変更する方法を教えてください。

変更する内容によって異なりますが、BCD は次のツールを使用して変更できます。

起動と回復。 [起動と回復] ダイアログ ボックスでは、コンピュータに複数のオペレーティング システムをインストールしている場合に、既定のオペレーティング システムを選択して起動することができます。 また、タイムアウト値を変更することもできます。 これらの設定は、[システムのプロパティ] ダイアログ ボックスの [詳細設定] タブにあります。

システム構成ユーティリティ (Msconfig.exe)。 Msconfig.exe は、/debug、/safeboot、/bootlog、/noguiboot、/basevideo、/numproc の各オプションを含む機能を備えた高度なツールです。

BCD WMI プロバイダ。 BCD Windows Management Instrumentation (WMI) プロバイダは、BCD を変更するユーティリティをスクリプト化するために使用できる管理インターフェイスです。 これは BCD を使用できる唯一のプログラマム インターフェイスです。 詳細については、Microsoft Web サイトの「Boot Configuration Data (BCD)」 (http://go.microsoft.com/fwlink/?LinkId=56792) (英語) を参照してください。

BCDEdit.exe。 BCDEdit.exe は、Bootcfg.exe に代わる Windows Vista の コマンド ライン ユーティリティです。 詳細については、「Bcdedit.exe では何ができますか ?」を参照してください。

  注 :

Bootcfg.exe を使用して BCD を変更することはできません。 ただし、Bootcfg.exe は、古いオペレーティング システムをサポートするためにこのオペレーティング システムにも残しています。

EFI ブート マネージャから Windows エントリを参照できない理由を教えてください。 また、ブート マネージャが 2 つ存在する理由も教えてください。

すべての Windows エントリは BCD ストアに格納されます。 EFI ベースのオペレーティング システムでは、"Windows ブート マネージャ" と呼ばれる EFI ファームウェア ブート マネージャに 1 つのエントリがあります。 このファイルは、\EFI\Microsoft\Boot\Bootmgfw.efi にあります。EFI ブート マネージャを使用して Windows ブート マネージャを起動すると、EFI ベースのオペレーティング システムと PC/AT ベースのオペレーティング システムの両方に共通のルック アンド フィールが得られます。 たとえば、詳細ブート オプション メニューが機能します。 EFI ブート マネージャの既定のタイムアウト値は 2 秒です。これにより、Windows Server 2003 Service Pack 1 と Windows Vista のどちらを起動するかを簡単に切り替えることができます。

ページのトップへページのトップへ

マルチ ブート環境

オペレーティング システムが既にインストールされているコンピュータに Windows Vista をインストールできますか ?

はい。 Windows Vista を別のパーティションにインストールできます。 古いオペレーティング システムをインストールしてから Windows Vista をインストールすることをお勧めします。 その結果、古いオペレーティング システムでは、ブート構成に引き続き Boot.ini が使用されます。

Boot.ini の動作に使用していたコードを Windows Vista では BCD を使用するように置き換える必要はありますか ?

いいえ、ありません。古いオペレーティング システムでは Boot.ini を、Windows Vista では BCD を使用するように、コードを変更する必要があります。

マルチ ブート環境で Windows Vista より前のオペレーティング システムの BCD を変更すると、ブート構成が変わりますか ?

いいえ、変わりません。Windows Vista のブート構成を変更するには BCD を変更する必要があります。 Boot.ini (BIOS ベースのオペレーティング システム用) または NVRAM (EFI ベースのオペレーティング システム用) を変更して、古いオペレーティング システムのブート構成を変更する必要もあります。

Windows Vista を起動する予定がないときに BCD を完全に無効にすることはできますか ?

いいえ、できません。最初に、どのオペレーティング システムを起動するかを判断するために Windows Vista のブート マネージャが実行されます。 そのため、古いオペレーティング システムを起動する場合は、BCD ストアの既定の順序を古いオペレーティング システムに設定する必要があります。 詳細については、「既定のオペレーティング システム エントリを変更する方法」を参照してください。

ページのトップへページのトップへ

BCDEdit.exe

Bcdedit.exe とは何ですか ?

Bcdedit.exe を使用すると、BCD ストアにエントリを追加、削除、編集、付加することによって、オペレーティング システムが稼動する前の環境で実行される Windows コードを変更できます。 Bcdedit.exe は Windows Vista パーティションの \Windows\System32 ディレクトリにあります。

Bcdedit.exe では何ができますか ?

現状、Bcdedit.exe では次の操作を実行できます。

• 後で Windows Server 2008 をインストールするために、BCD ストアを作成する。

• 既存の BCD ストアにエントリを追加する。

• BCD ストア内の既存のエントリを変更する。

• BCD ストアからエントリを削除する。

•BCD ストアにエントリをエクスポートする。

•BCD ストアからエントリをインポートする。

• 現在アクティブな設定を一覧する。

• 特定の種類のエントリを照会する。

• グローバルな変更を (すべてのエントリに) 適用する。

• 既定のタイムアウト値を変更する。

bcdedit /enum を実行すると、1 つの Windows ブート マネージャ エントリ、いくつかの Windows ブート ローダー エントリ、および1 つのレガシ エントリを受け取る理由を教えてください。

ブート環境は、Windows ブート マネージャと、ブート環境で実行されるさまざまなブート アプリケーションという 2 つのカテゴリに分けられます。 Windows ブート マネージャは、基本的にはブート操作を制御するミニ オペレーティング システムで、実行するブート アプリケーションを選択できます。 さまざまなブート アプリケーション (たとえば、Windows ブート ローダー) があり、それぞれのアプリケーションでは異なる処理が行われます。 たとえば、Windows ブート ローダー アプリケーションは Windows を読み込みます。

/enum を指定すると、以下の項目を取得することになります。

1 つの Windows ブート マネージャ エントリ (ブート マネージャが 1 つだけ存在するため)。

コンピュータにインストールした各 Windows Vista オペレーティング システム用の Windows ブート ローダー アプリケーション。 たとえば、2 つの異なるバージョンの Windows Vista を異なるパーティションにインストールした場合、Windows ブート ローダー エントリが 2 つ表示されます。

1 つのレガシ エントリ。 このエントリはブート アプリケーションではありませんが、代わりに NTLDR と Boot.ini を使用して Windows Vista より古いオペレーティング システムを起動します。 このエントリを使用して、Windows Server 2003、Windows XP、およびそれ以前のバージョンのオペレーティング システム (コンピュータにインストールしている場合) を起動します。

Bcdedit.exe のコマンド ライン ヘルプはありますか ?

はい。 コマンド プロンプトでコマンドやオプションの詳細を確認するには、「bcdedit.exe /? Command」または「bcdedit.exe /? Command」と入力してください。 たとえば、「bcdedit.exe /? CREATESTORE」と入力します。

ページのトップへページのトップへ

使い慣れた作業を実行する新しい方法

グローバルなデバッガ設定を変更する方法

コマンド プロンプトで、次のコマンドを入力します。

bcdedit /dbgsettings DebugType [debugport:Port] [baudrate:Baud]

[channel:Channel] [targetname:TargetName]

オプション説明

DebugType

デバッガの種類を指定します。 DebugType には、SERIAL、1394、または USB のいずれかを指定できます。 残りのオプションは、

選択したデバッガの種類によって異なります。

Port

SERIAL デバッグ用に、シリアル ポートをデバッグ ポートとして使用することを指定します。

Baud

SERIAL デバッガ用に、デバッグに使用するボー レートを指定します。

Channel

1394 デバッグ用に、デバッグに使用する 1394 チャネルを指定します。

TargetName

ユニバーサル シリアル バス (USB) デバッグ用に、デバッグに使用する USB 対象名を指定します。

次のコマンドは、115,200 ボーで com1 を使用して、グローバルなデバッガ設定を

シリアル デバッグに設定します。

bcdedit /dbgsettings serial debugport:1 baudrate:115200

次のコマンドは、チャネル 23 を使用して、グローバルなデバッガ設定を 1394 デバッグに

設定します。

bcdedit /dbgsettings 1394 CHANNEL:32

次のコマンドは、対象名 "debugging" を使用して、グローバルなデバッグ設定を

USB デバッグに設定します。

bcdedit /dbgsettings USB targetname:debugging

デバッガ設定を確認する方法

コマンド プロンプトから、次のコマンドを入力します。

bcdedit /enum Type /v

オプション説明

Type

一覧するエントリの種類を指定します。 Type には次のいずれかを指定できます。

ACTIVE

FIRMWARE

BOOTAPP

BOOTMGR

OSLOADER

INHERIT

ALL

たとえば、次のコマンドはすべてのエントリを一覧します。

bcdedit /enum all /v

既定のオペレーティング システム エントリを変更する方法

コマンド プロンプトから、次のコマンドを入力します。

bcdedit /default ID

オプション説明

ID

タイムアウト期間終了時に使用される既定の GUID を指定します。

{466f5a88-0af2-4f76-9038-095b170dc21c} は NTLDR 用に事前定義された GUID です。

bcdedit /enum all を指定することにより、特定のオブジェクトの ID を調べることができます。

次のコマンドは、指定されたエントリを既定のブート マネージャ エントリとして設定

します。

bcdedit /default {cbd971bf-b7b8-4885-951a-fa03044f5d71}

次のコマンドは、レガシ Windows ローダー (Ntldr) を既定値として設定

します。 {466f5a88-0af2-4f76-9038-095b170dc21c} は Ntldr 用に事前定義された GUID です。

bcdedit /default {466f5a88-0af2-4f76-9038-095b170dc21c}

次回の再起動のためにブート シーケンスを変更する方法

コマンド プロンプトから、次のコマンドを入力します。

bcdedit /bootsequence {ID} {ID} {ID} …

オプション説明

ID

次回の再起動用のブート シーケンスを構成する GUID を指定します。 この設定で 1 回起動されると、既定のブート順に戻ります。

次のコマンドは、指定されたオペレーティング システムを次回再起動時に既定のオペレーティング システムに設定します。 その再起動後、DISPLAYORDER にリセットされます。

bcdedit /bootsequence {cbd971bf-b7b8-4885-951a-fa03044f5d71}

次のコマンドは、ブート マネージャの 1 回限りのブート シーケンスに 2 つの

オペレーティング システム エントリとレガシ Windows ローダー (Ntldr) を設定します。

bcdedit /bootsequnce {802d5e32-0784-11da-bd33-000476eba25f}

ブート マネージャのタイムアウト値を変更する方法

既定のオペレーティング システムが選択されるまでコンピュータが待機する時間を変更するには、次のコマンドを入力します。

bcdedit /timeout TimeOut

オプション説明

TimeOut

ブート マネージャが既定のエントリを選択する前に待機する時間を秒単位で指定します。

たとえば、次のコマンドは、ブート マネージャの TimeOut を 15 秒に設定します。

bcdedit /timeout 15

ブート マネージャの表示順序を設定する方法

コマンド プロンプトから、次のコマンドを入力します。

Bcdedit.exe /display {ID} {ID1} {ID2}

または

Bcdedit.exe /displayorder {ID} [/addlast|/addfirst|/remove]

オプション説明

ID

表示順序を構成する 1 つの GUID または GUID のリストを指定します。 少なくとも 1 つの ID を指定する必要があります。

ID の詳細については、「bcdedit /? ID」と入力してください。

次のコマンドは、ブート マネージャの表示順序に 3 つのオペレーティング システムを設定します。

Bcdedit.exe /displayorder {c84b751a-ff09-11d9-9e6e-0030482375e6} {c74b751a-ff09-11d9-9e6e-0030482375e4} {c34b751a-ff09-11d9-9e6e-0030482375e7}

次のコマンドは、ブート マネージャの表示順序に 2 つのオペレーティング システム エントリとレガシ Windows ローダーを設定します。

bcdedit /displayorder {802d5e32-0784-11da-bd33-000476eba25f}

次のコマンドは、GUID によって表されるエントリをブート メニューの表示順序の末尾に追加します。

bcdedit.exe /displayorder {c84b751a-ff09-11d9-9e6e-0030482375e6}-addlast

ブート エントリを削除する方法

コマンド プロンプトから、次のコマンドを入力します。

bcdedit /delete ID [/f]

オプション説明

ID

削除するブート エントリの GUID を指定します。 ID が指定されていない場合、現在のブート エントリ ID が削除されます。

既知の GUID を指定する場合は、/f を指定して強制的に削除する必要があります。 次に例を示します。

bcdedit /delete {default} /f

たとえば、次のコマンドは、ID {802d5e32-0784-11da-bd33-000476eba25f} のエントリを削除します。

bcdedit /delete {802d5e32-0784-11da-bd33-000476eba25f}

カーネル デバッガを有効または無効にする方法

コマンド プロンプトから、次のコマンドを入力します。

bcdedit /debug [{ID}] {on|off}

オプション説明

ID

変更するブート エントリの GUID を指定します。 ID が指定されていない場合、現在のブート エントリ ID が変更されます。

たとえば、次のコマンドを使用すると、指定したオペレーティング システム ブート エントリのブート デバッグが有効になります。

bcdedit /debug {cbd971bf-b7b8-4885-951a-fa03044f5d71} on

  注 :

ID の詳細については、「bcdedit /? ID」を実行してください。

物理アドレス拡張 (PAE) を設定する方法

コマンド プロンプトから、次のコマンドを入力します。

bcdedit /set {ID} pae [Default|ForceEnable|ForceDisable]

オプション説明

ID

変更するオペレーティング システム エントリの ID を指定します。 ID を指定しない場合、現在のオペレーティング システムの設定が変更されます。

次に例を示します。

bcdedit /set {802d5e32-0784-11da-bd33-000476eba25f} pae forceenable

REMOVEMEMORY を設定する方法

コマンド プロンプトから、次のコマンドを入力します。 removememory は、オペレーティング システムで使用できる総メモリ容量から特定の量のメモリを削除します。

bcdedit /set {GUID} removememory bytes

オプション説明

ID

変更するオペレーティング システム エントリの ID を指定します。 ID を指定しない場合、現在のオペレーティング システムの設定が変更されます。

bytes

削除するバイト数を指定します。

この例では、使用可能な総メモリ容量から 256 MB を削除します。

bcdedit /set {802d5e32-0784-11da-bd33-000476eba25f } removememory 256

MAXMEM/TRUNCATEMEMORY を設定する方法

コマンド プロンプトから、次のコマンドを入力します。 truncatememory は、指定された物理アドレス以上のアドレスのメモリを無視します。

bcdedit /set {ID} truncatememory bytes

  注 :

代わりに、removememory を使用することをお勧めします。 removememory は、指定したメモリを使用するようにオペレーティング システムを適切に制限します。また、メモリ ホールも考慮されます。

オプション説明

ID

変更するオペレーティング システム エントリの ID を指定します。 ID を指定しない場合、現在のオペレーティング システムの設定が変更されます。

bytes

切り捨てるバイト数を指定します。

この例では、メモリを 1024 MB に切り捨てるように設定します。

bcdedit /set {802d5e32-0784-11da-bd33-000476eba25f} truncatememory 1073741824

プライベート カーネルを追加する方法

コマンド プロンプトから、次のコマンドを入力します。

bcdedit /set {ID} kernel "Path"

オプション説明

ID

変更するオペレーティング システム エントリの ID を指定します。 ID を指定しない場合、現在のオペレーティング システムの設定が変更されます。

次に例を示します。

bcdedit /set {802d5e32-0784-11da-bd33-000476eba25f} kernel "mykrnl.dll"

新しい Windows Vista オペレーティング システム エントリを作成する方法

新しい Windows Vista オペレーティング システム エントリを作成するには、次の手順を実行します。

新しい Windows Vista オペレーティング システム エントリを作成するには

1.

まず、複製するオペレーティング システム エントリをコピーし、その名前を "NewEntryDescription" に変更します。

bcdedit /copy {GuidToCopy} /d “NewEntryDescription

2.

このコマンドは、新しい GUID を分割します。 次のコマンドを指定して、新しい GUID を使用してパーティション情報を変更します。

bcdedit /set {NewGuid} device partition=x:

bcdedit /set {NewGuid} osdevice partition=x:

3.

次のコマンドを指定して、作成された新しいオペレーティング システム エントリを追加して表示します。

bcdedit /displayorder {NewGuid} /addlast

特定の種類のエントリを一覧する方法

/enum コマンドは、BCD ストア内のエントリを一覧します。 エントリを一覧するには、次のコマンドを入力します。

bcdedit /enum [Type]

オプション説明

Type

一覧するエントリの種類を指定します。 Type には次のいずれかを指定できます。

active (既定値)。 ブート マネージャの表示順に含まれるすべてのエントリを一覧します。

Firmware。 ファームウェア アプリケーション エントリをすべて一覧します。

Bootapp。 ブート環境アプリケーション エントリをすべて一覧します。

Bootmgr。 ブート マネージャ エントリをすべて一覧します。

Osloader。 オペレーティング システム エントリをすべて一覧します。

Inherit。 種類を継承するエントリをすべて一覧します。

All。 すべてのエントリを一覧します。

次のコマンドは、オペレーティング システム ローダーのブート エントリをすべて一覧します。

bcdedit /enum osloader

次のコマンドは、ブート マネージャ エントリをすべて一覧します。

bcdedit /enum bootmgr

Windows Vista を実行しているコンピュータに前のバージョンの Windows をインストールするときに BCD を変更する方法

Windows Vista を実行しているコンピュータに古い Windows オペレーティング システムをインストールするには、次の手順を実行します。

Windows Vista を実行しているコンピュータに前のバージョンの Windows をインストールするには

1.

前のバージョンの Windows をインストールします。

2.

古いオペレーティング システムにログオンし、次のコマンドを実行して最新のブート マネージャを復元します。 Fixntfs.exe はアクティブ パーティションの \boot ディレクトリにあります。

fixntfs /lh

3.

次のコマンドを指定して、古いオペレーティング システム用の BCD エントリを作成します。 Bcdedit.exe は Windows Vista パーティションの \Windows\System32 ディレクトリにあります。 Description には、古いオペレーティング システムの新しいエントリに対する説明を指定します。

Bcdedit /create {legacy} /d "Description"

Bcdedit /set {legacy} device boot

Bcdedit /set {legacy} path \ntldr

Bcdedit /displayorder {legacy} /addlast

4.

変更を有効にするために、コンピュータを再起動します。

ハード ディスクから WIM イメージを起動するエントリを作成する方法

Windows Imaging Format (WIM) イメージを起動するエントリを作成するには、ブート パーティションを指すように RAMDISK オプションを指定して OSloader タイプのエントリを作成する必要があります。 この操作を行うには、次の手順を実行します。 この手順では、arcpath multi(0)disk(0)rdisk(0)partition(1) はコンピュータ上の C: ドライブを参照していて、Boot.wim は WIM イメージ内の System32 フォルダの Winload.exe に含まれている通常の Boot.wim です。

ハード ディスクから WIM イメージを起動するエントリを作成するには

1.

次のコマンドを指定して、BCD ストアに {ramdisktoptions} オブジェクトを作成します。Drive には、イメージが含まれているドライブを指定してください。

bcdedit /create {ramdiskoptions} /d "Ramdisk options"

bcdedit /set {ramdiskoptions} ramdisksdidevice partition=Drive

bcdedit /set {ramdiskoptions} ramdisksdipath \boot\boot.sdi

2.

次のコマンドを指定して、新しいブート アプリケーション エントリを作成します。

bcdedit /create /d "Boot from WIM" /application OSLOADER

3.

これにより、新しく作成されたエントリの ID (GUID) が返されます。 この新しいエントリはこの手順の残りの部分では {GUID} と呼びます。 次に、以下のコマンドを指定します。

bcdedit /set {GUID} device ramdisk=[c:]\sources\boot.wim,{ramdiskoptions}

bcdedit /set {GUID} path \windows\system32\boot\winload.exe

bcdedit /set {GUID} osdevice ramdisk=[c:]\sources\boot.wim,{ramdiskoptions}

bcdedit /set {GUID} systemroot \windows

4.

Windows プレインストール環境 (Windows PE) で起動する場合は、次のコマンドを指定する必要もあります。

bcdedit /set {GUID} winpe yes

bcdedit /set {GUID} detecthal yes

5.

次のコマンドを指定して、新しいエントリを表示順序に追加します。

bcdedit /displayorder {GUID} /addlast

特定のエントリのデバッガ設定を変更する方法

特定のデバッガの設定のグローバル エントリを上書きするには、次のいずれかのコマンドを入力します。

  注 :

このコマンドは特定のブート エントリのデバッガを有効または無効にするわけではありません。

シリアル デバッグを設定するには、次のコマンドを入力します。

bcdedit /set {GUID} debugtype:serial

bcdedit /set {GUID} baudrate:Baudrate

bcdedit /set {GUID} debugport:Port

USB デバッグを設定するには、次のコマンドを入力します。

bcdedit /set {GUID} debugtype:usbbcdedit /set {GUID} targetname:debugging

1394 デバッグを設定するには、次のコマンドを入力します。

bcdedit /set {GUID} debugtype:1394bcdedit /set {GUID} targetname:32

次のコマンドは、115,200 ボーで com1 を使用して、c74b751a-ff09-11d9-9e6e-0030482375e4 のデバッガの設定をシリアル デバッグに設定します。

Bcdedit /set {c74b751a-ff09-11d9-9e6e-0030482375e4} debugtype:serial

Bcdedit /set {c74b751a-ff09-11d9-9e6e-0030482375e4} baudrate:115200

Bcdedit /set {c74b751a-ff09-11d9-9e6e-0030482375e4} debugport:1


ページのトップへページのトップへ