Windows TIPS
[System Environment]
  Windows TIPS TOPへ
Windows TIPS全リストへ
内容別分類一覧へ

bcdeditでVista/Windows Server 2008のブートOSメニューを変更する

解説をスキップして操作方法を読む

デジタルアドバンテージ 打越 浩幸
2008/12/12
対象OS
Windows Vista
Windows Server 2008
VistaやWindows Server 2008ではBCDストアという新しいブート・メカニズムを利用している。
BCDストアのデータを変更するにはbcdeditコマンドを利用する。
ブートするOSの名称を変更するにはdescriptionという変数の値を変更する。

解説

 Windows Server 2003以前のOSでは、システムがブートする場合にはシステム・ドライブのルートに置かれた\boot.iniというテキスト・ファイルを参照していた。これに対してWindows VistaやWindows Server 2008では、Windows OSのブート・メカニズムが抜本的に変更され、ブート時に使用する情報はBCD(ブート構成データ)ストアに格納されている。

 これに伴い、ブート情報を変更する方法も以前とはまったく異なっている。通常はこれらの情報を変更する必要はないだろうが、例えば1台のコンピュータに複数のOSをインストールした場合には、変更したくなるだろう。例えば、実験などの目的で32bit版のWindows Vistaと64bit版のWindows Vistaを1台のコンピュータにインストールした場合、システム起動時には次のようなメニューが表示される。

2つのWindows Vistaをインストールした例
1台のコンピュータに32bit版のWindows Vistaと64bit版のWindows Vistaをインストールすると、システム起動時にこのようなメニューが表示される。ユーザーはどちらのOSを起動するかをカーソル・キーで選択し、[Enter]キーを押すとそのOSが起動する。デフォルトでは、最後にインストールしたOSが有効になっている(30秒間応答がないと、自動起動する)。この例では、どちらも同じメニュー名なので区別が付かない。ちなみにインストール先はすべて別パーティションにしている(さもないと、さまざまなフォルダやファイルがOS間で衝突/競合するため)。
64bit(x64)版のWindows Vista Ultimate Edition。
32bit(x86)版のWindows Vista Enterprise Edition。

 このようにどちらのOSも「Microsoft Windows Vista」と表示されており、区別が付かない。これ以外にも、エディションや言語の異なるOSを導入したり、ベータ版やRC版などをインストールしたり、それらを削除したりすると、メニュー項目はさらに増えるため、デフォルトの名称のままでは非常に使いづらいだろう。

 このような場合、従来のOSならばboot.iniファイルを編集するのだが(TIPS「システムのブート情報ファイルBOOT.INIを編集する」参照)、BCDストアの場合はデータが完全にバイナリ・データベース化されているので、テキスト・エディタで簡単に編集するというわけにはいかない。BCDストアの内容を操作するためにはBCDEDIT.EXEというツールを利用する。これはコマンド・プロンプト上で操作するツールなので、Server Coreでも利用できるが、慣れないとやや使いづらいかもしれない。本TIPSでは、bcdeditの一番基本的な使い方として、ブート・メニューに表示されるOS名を変更する方法について解説する。より高度な使い方については、今後別TIPSで取り上げる。

操作方法

管理権限のあるコマンド・プロンプト上で起動する

 bcdeditはシステムの重要なファイルを変更するツールである。そのため、管理者として実行したコマンド・プロンプト上でのみ利用できる。通常のコマンド・プロンプト上で起動すると次のようなエラーが表示され、利用できない。

権限不足の場合のエラー
管理者権限のあるコマンド・プロンプト以外で起動すると、このようなエラーが表示され、実行できない。

 管理者権限のあるコマンド・プロンプトを起動させるには、[スタート]の[すべてのプログラム]−[アクセサリ]の[コマンド プロンプト]を右クリックして[管理者として実行]を選択する。

 bcdeditの基本的な使い方は「bcdedit /?」とすると、表示される。

現在のBCDストア情報の列挙(表示)

 引数を付けずにbcdeditを実行すると、現在のBCDストアの情報が一覧表示される。これは「bcdedit /enum」を実行するのと同じである。今回はブート・メニューを変更するため、ブートされるOSの名前の部分(description)に注目する。

BCDストアの情報の例
これは2つのWindows Vistaがインストールされている場合の例。2つのパーティション(C:とD:)にそれぞれOSがインストールされている。
管理者権限のあるコマンド・プロンプトでは、タイトルの先頭に「管理者:」が表示される。
引数なしか、/enumオプションを付けてbcdeditを実行する。すると以下のようなブート情報が表示される。
ブート情報。この部分の指定に従って、起動するOSが決められる。
起動するデフォルトOS。デフォルトでは「{current}」というブート項目が選択され、ブートする。
ここでは「{current}」と「{99eba38a-……」という、2つのブート項目の表示順序を決めている。先ほど表示されていた2つのOSは、これらに相当する。
ブート項目1。これはデフォルトで起動する64bit版のWindows Vista。C:にインストールされている。
ブート項目1の表示名。「Microsoft Windows Vista」となっている。
ブート項目1のIDは「{current}」となっているが、本当のID数値はこの「{82fbba33-……}」。デフォルトのものは常に「{current}」という別名で参照できる。
ブート項目2。これは最初にインストールしてあった32bit版のWindows Vista。ブート項目1のOSから見ると、D:ドライブにインストールされているように見える(ブート項目2のOSを起動するとC:になる)。
ブート項目1のID数値列。
ブート項目2の表示名。これも同じく「Microsoft Windows Vista」となっている。

 この例では、2つの「Windows ブート ローダー」という項目があるが、これらが各OSのブート情報を表している。そしてその2つのうちからどちらを選ぶか、その表示順序はどうするかなどを記述しているのが最初にある「Windows ブート マネージャ」項目である。

bcdedit /setでメニューの文字列を変更する

 2つのブート項目にはそれぞれ固有のID数値が付けられており(「{99eba38a-……」と「{99eba38a-……」)、それらを使って識別される。ただし現在のデフォルト・ブート項目に限っては「{current}」という別名でも参照できるようになっているし、省略することも可能である。

 BCDでは、各ブート項目の中にある「description」の値をOS選択のためのメニュー名として表示するようになっている。この例ではいずれも「Microsoft Windows Vista」となっているので、同じ名前が表示されているが、これらを変更して、分かりやすい名前にしてみよう。

 まず現在のデフォルトのOSの名称を「Microsoft Windows Vista」から「Vista Ultimate x64」に変更してみる。このためにはbcdedit /setコマンドを利用する(使い方は「bcdedit /set /?」で表示される)。引数には変更する変数名(description)と変更後の文字列を指定する。

OS名の変更(1)
bcdedit /setコマンドでデフォルトのブート・メニュー項目のメニュー名を変更する。

 デフォルトでない項目を変更するには、/setの後にブート項目のID数字列を指定すればよい。

OS名の変更(2)
最初にインストールsたOSの名前を変更する。デフォルトのブート項目でない場合は、ID文字列を指定する。

 もう1度bcdeditもしくはbcdedit /enumで内容を確認後、システムを再起動すればブート・メニューが変更されているはずである。End of Article

新しく設定されたOS名
2つのOSが異なるメニュー名で表示されている。
変更されたメニュー名。

「Windows TIPS」


Windows Server Insider フォーラム 新着記事
@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)

注目のテーマ

Windows Server Insider 記事ランキング

本日 月間