Windowsのbcdeditでブートメニューの項目を追加するTech TIPS

Windows Vista/Server 2008ではBCDストアという新しいブート・メカニズムを利用している。ブート・メニューの項目を追加するには、bcdedit /createで新規作成するか、bcdedit /copyコマンドでコピー後、値を設定する。

» 2009年05月15日 05時00分 公開
[打越浩幸デジタルアドバンテージ]
「Tech TIPS」のインデックス

連載目次

対象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で新しい項目を追加する

 新しい項目を作成するには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 /copyで既存の項目をコピーして追加する

 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で項目を削除する

 ブート・メニューの項目を削除するには、「bcdedit /delete {〜〜}」を利用する。{〜〜} は削除したい項目のID数字列である({current} や {default} などの省略形も利用可能)。

※項目の削除
C:\>bcdedit /delete {852bd6a2-411a-11de-9b8e-001cc08d5d3c}
この操作を正しく終了しました。



「Tech TIPS」のインデックス

Tech TIPS

Copyright© Digital Advantage Corp. All Rights Reserved.

スポンサーからのお知らせPR

注目のテーマ

AI for エンジニアリング
「サプライチェーン攻撃」対策
1P情シスのための脆弱性管理/対策の現実解
OSSのサプライチェーン管理、取るべきアクションとは
Microsoft & Windows最前線2024
システム開発ノウハウ 【発注ナビ】PR
あなたにおすすめの記事PR

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。