ブート構成データ (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」と入力します。
BCD は、ブート構成データを記述するメカニズムを強化するために作成されました。 新しいファームウェア モデル (拡張ファームウェア インターフェイス (EFI) など) の開発に伴い、基になるファームウェアを抽象化するために拡張可能で相互運用可能なインターフェイスが必要になりました。 この新しいデザインによって、Windows Vista のさまざまな新機能 (スタートアップ修復ツールやマルチ ユーザー インストールのショートカットなど) の基盤が提供されます。
| • | BIOS ベースのオペレーティング システム。 BCD レジストリ ファイルは、アクティブ パーティションの \Boot\Bcd ディレクトリにあります。 |
| • | EFI ベースのオペレーティング システム。 BCD レジストリ ファイルは EFI システム パーティションにあります。 |
いいえ、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 は、古いオペレーティング システムをサポートするためにこのオペレーティング システムにも残しています。 |
すべての 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 をインストールすることをお勧めします。 その結果、古いオペレーティング システムでは、ブート構成に引き続き Boot.ini が使用されます。
いいえ、ありません。古いオペレーティング システムでは Boot.ini を、Windows Vista では BCD を使用するように、コードを変更する必要があります。
いいえ、変わりません。Windows Vista のブート構成を変更するには BCD を変更する必要があります。 Boot.ini (BIOS ベースのオペレーティング システム用) または NVRAM (EFI ベースのオペレーティング システム用) を変更して、古いオペレーティング システムのブート構成を変更する必要もあります。
いいえ、できません。最初に、どのオペレーティング システムを起動するかを判断するために Windows Vista のブート マネージャが実行されます。 そのため、古いオペレーティング システムを起動する場合は、BCD ストアの既定の順序を古いオペレーティング システムに設定する必要があります。 詳細については、「既定のオペレーティング システム エントリを変更する方法」を参照してください。
Bcdedit.exe を使用すると、BCD ストアにエントリを追加、削除、編集、付加することによって、オペレーティング システムが稼動する前の環境で実行される Windows コードを変更できます。 Bcdedit.exe は Windows Vista パーティションの \Windows\System32 ディレクトリにあります。
現状、Bcdedit.exe では次の操作を実行できます。
• 後で Windows Server 2008 をインストールするために、BCD ストアを作成する。
• 既存の BCD ストアにエントリを追加する。
• BCD ストア内の既存のエントリを変更する。
• BCD ストアからエントリを削除する。
•BCD ストアにエントリをエクスポートする。
•BCD ストアからエントリをインポートする。
• 現在アクティブな設定を一覧する。
• 特定の種類のエントリを照会する。
• グローバルな変更を (すべてのエントリに) 適用する。
• 既定のタイムアウト値を変更する。
ブート環境は、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 /? 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 には次のいずれかを指定できます。
| ||||||||||||||
たとえば、次のコマンドはすべてのエントリを一覧します。
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」を実行してください。
コマンド プロンプトから、次のコマンドを入力します。
bcdedit /set {ID} pae [Default|ForceEnable|ForceDisable]
| オプション | 説明 |
ID | 変更するオペレーティング システム エントリの ID を指定します。 ID を指定しない場合、現在のオペレーティング システムの設定が変更されます。 |
次に例を示します。
bcdedit /set {802d5e32-0784-11da-bd33-000476eba25f} pae forceenable
コマンド プロンプトから、次のコマンドを入力します。 removememory は、オペレーティング システムで使用できる総メモリ容量から特定の量のメモリを削除します。
bcdedit /set {GUID} removememory bytes
| オプション | 説明 |
ID | 変更するオペレーティング システム エントリの ID を指定します。 ID を指定しない場合、現在のオペレーティング システムの設定が変更されます。 |
bytes | 削除するバイト数を指定します。 |
この例では、使用可能な総メモリ容量から 256 MB を削除します。
bcdedit /set {802d5e32-0784-11da-bd33-000476eba25f } removememory 256
コマンド プロンプトから、次のコマンドを入力します。 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 オペレーティング システム エントリを作成するには、次の手順を実行します。
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 には次のいずれかを指定できます。
| ||||||||||||||
次のコマンドは、オペレーティング システム ローダーのブート エントリをすべて一覧します。
bcdedit /enum osloader
次のコマンドは、ブート マネージャ エントリをすべて一覧します。
bcdedit /enum bootmgr
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. | 変更を有効にするために、コンピュータを再起動します。 |
Windows Imaging Format (WIM) イメージを起動するエントリを作成するには、ブート パーティションを指すように RAMDISK オプションを指定して OSloader タイプのエントリを作成する必要があります。 この操作を行うには、次の手順を実行します。 この手順では、arcpath multi(0)disk(0)rdisk(0)partition(1) はコンピュータ上の C: ドライブを参照していて、Boot.wim は WIM イメージ内の System32 フォルダの Winload.exe に含まれている通常の Boot.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