Windows Vista/Server 2008ではBCDストアという新しいブート・メカニズムを利用している。ブート・メニューの項目を追加するには、bcdedit /createで新規作成するか、bcdedit /copyコマンドでコピー後、値を設定する。
対象OS:Windows Vista/Windows Server 2008
TIPS「bcdeditでVista/Windows Server 2008のブートOSメニューを変更する」「bcdeditでブート・メニューの表示順序やデフォルトを変更する」では、Windows Vista/Server 2008以降で導入された新しいブート・メニュー・システム「BCD(ブート構成データ)ストア)」と、そのブート項目の表示名を変更するbcdedit.exeコマンドの基本的な使い方を紹介した。
本TIPSではその続きとして、新しいブート・メニュー項目を追加する方法を紹介する。メモリ・サイズやデータ実行保護(DEP)などのオプションを変更したり、デバッグ・オプションを追加したりするなど、設定を変えてOSを起動したい場合は、元の項目を残したまま、新しいブート・メニュー項目を追加するとよい。従来のBOOT.INIを使ったブート・システムの場合は、メモ帳などでコピーして新しい項目を追加していたが、BCDストアの場合はbcdeditコマンドを使って新しい項目を追加する必要がある。
bcdeditでブートのメニュー項目を増やすには2つの方法がある。1つはbcdedit /createで新しい項目を作成し、必要な値をセットする方法である。ただしこの方法では、必要な値(ブートするパーティションや起動パスなど)をいちいちすべて手動でセットする必要があり、あまり簡単ではない。もう1つは既存の項目をコピーして作成し、必要な部分の値だけを上書き設定する方法である。こちらは必要最小限の操作で設定が完了するので、簡単である。
新しい項目を作成するにはbcdedit /createを利用する。BCDストアに追加できる項目の種類にはいろいろなものがあるが、OSをブートさせるには、「bcdedit /create /d "〜〜" /application osloader」を利用する。「/d "〜〜"」は作成したエントリの説明文(description)である。エントリを追加後、{〜〜} のようなID数字列が表示されるので、以後はその数字列を指定して、メニューへの追加(bcdedit /displayorder 〜 /addlast)、新しい値のセット(bcdedit /set 〜)などを行う。
C:\>bcdedit …現在の状態の確認
Windows ブート マネージャー
--------------------------------
identifier {bootmgr}
device partition=\Device\HarddiskVolume1
description Windows Boot Manager
locale ja-JP
inherit {globalsettings}
default {current}
resumeobject {9191f96f-3a56-11de-8e3c-8ef497690387}
displayorder {current}
{9191f970-3a56-11de-8e3c-8ef497690387}
…(中略)…
C:\>bcdedit /create /d "new vista" /application osloader …作成
エントリ {9191f977-3a56-11de-8e3c-8ef497690387} は正常に作成されました。 …このID数字列をメモしておく
C:\>bcdedit /displayorder {9191f977-3a56-11de-8e3c-8ef497690387} /addlast …メニュー項目の最後に追加
この操作を正しく終了しました。
C:\>bcdedit …追加後の値の確認
Windows ブート マネージャー
…(中略)…
Windows ブート ローダー …追加された項目
--------------------------------
identifier {9191f977-3a56-11de-8e3c-8ef497690387}
description new vista
※以下値をセットする例
C:\>bcdedit /set {9191f977-3a56-11de-8e3c-8ef497690387} device partition=c:
この操作を正しく終了しました。
C:\>bcdedit /set {9191f977-3a56-11de-8e3c-8ef497690387} osdevice partition=c:
この操作を正しく終了しました。
…(以下省略)…
最後に2つ値をセットしているが、実際にはこのほかに10種類程度の値をセットする必要がある。どのような値が必要なのかは、ほかのブート項目を参考にしながらセットすればよい。
bcdedit /createでは新規項目をゼロから作成した。しかしこのような操作をいちいち行うのは面倒であるし、ミスする可能性もある。既存のOSに対していくつかオプションを設定するだけなら、元の項目をコピーして、必要な部分だけを上書き設定するのが簡単である。エントリをコピーするには「bcdedit /copy {〜〜} /d "〜〜"」を使う。{〜〜} はコピーする元の項目のID数字列、/d "〜〜" は項目の説明文である。
C:\>bcdedit /copy {current} /d "new vista" …コピーして追加する
エントリは {852bd6a2-411a-11de-9b8e-001cc08d5d3c} に正常にコピーされました。
C:\>bcdedit …確認
Windows ブート マネージャー
--------------------------------
…(中略)…
Windows ブート ローダー …追加された項目。説明文以外はすべて元のコピー
--------------------------------
identifier {852bd6a2-411a-11de-9b8e-001cc08d5d3c}
device partition=C:
path \Windows\system32\winload.exe
description new vista …説明文
locale ja-JP
inherit {bootloadersettings}
recoverysequence {9191f96d-3a56-11de-8e3c-8ef497690387}
recoveryenabled Yes
osdevice partition=C:
systemroot \Windows
resumeobject {9191f96b-3a56-11de-8e3c-8ef497690387}
nx OptIn
bcdedit /copyで項目を追加すると自動的に表示リストの最後に追加されるので、「bcdedit /displayorder 〜〜 /addlast」コマンドの実行は不要である。エントリを追加したら、次は/setコマンドなどで値をセットする。以下はnxとdebugオプションを設定する例である。
※データ実行保護(DEP)の設定変更
C:\>bcdedit /set {852bd6a2-411a-11de-9b8e-001cc08d5d3c} nx optin
この操作を正しく終了しました。
※デバッグ・モードをオンにする
C:\>bcdedit /debug {852bd6a2-411a-11de-9b8e-001cc08d5d3c} on
この操作を正しく終了しました。
ブート・メニューの項目を削除するには、「bcdedit /delete {〜〜}」を利用する。{〜〜} は削除したい項目のID数字列である({current} や {default} などの省略形も利用可能)。
※項目の削除
C:\>bcdedit /delete {852bd6a2-411a-11de-9b8e-001cc08d5d3c}
この操作を正しく終了しました。
■この記事と関連性の高い別の記事
Copyright© Digital Advantage Corp. All Rights Reserved.