連載
» 2010年04月22日 00時00分 UPDATE

Windows 7新時代:第11回 Windows 7のVHDブートを試す (1/3)

Windows 7では、VHDファイルからブート可能になっている。マルチブートやUSBメモリからのブートも簡単に実現できるVHDブートの設定方法を解説する。

[小林章彦,デジタルアドバンテージ]
Windows 7新時代
Windows Server Insider

 

「Windows 7新時代」のインデックス

連載目次

 「第10回 Windows 7のVHDファイル・サポート」では、Windows 7でサポートされているVHDの作成/読み書き機能について解説した。Windows 7のVHDサポート機能という点では、VHDファイルからブートできる機能がEnterpriseとUltimateの2つのエディションでサポートされている(Windows Server 2008 R2はすべてのエディションでVHDファイルからのブートをサポートしている)。これにより、Windows 7やWindows Server 2008 R2のブート・ローダを利用して、Windows 7 EnterpriseやUltimateのシステム・イメージが含まれたVHDファイルからの起動(VHDブート)が行える。

 この機能を利用すれば、既存のWindows OS環境のブート・ローダだけを操作することで、マルチブート環境が容易に作成できる。普段はWindows 7を利用しているが、デモやテストのためにWindows Server 2008 R2環境が必要といった場合でも、再起動だけで切り替えが可能だ。仮想化環境でサポートされていないデバイスであっても、物理コンピュータから起動されるのため、VHDブートならば利用可能だ。仮想環境を使っている場合と違い、追加したOSも同時に起動して利用するわけにはいかないが、バックアップやリストアはVHDファイルのコピーなどで簡単に対処できるし、新規にディスクやパーティションを用意しなくても、(空き容量さえあれば)何種類ものOS環境を用意できるのが便利である。

wi-vhdboot01.gif ブート・ローダとVHDファイルの関係
Windows 7のブート・ローダは、図のように複数のブート・ローダを設定することが可能になっている。図では、ブート・マネージャの{default}にWindows 7が設定されているため、ほかのブート・ローダの設定がない場合、物理ディスクインストールされているWindows 7が起動する。ここでは、さらにVHDブートを行うために、Windows 7とWindows Server 2008 R2のVHDファイル用のブート・ローダを追加し、ブート時に選択可能にしている。なおVHDブートを利用するためには、OS側でも対応が必要である(物理ディスクではなく、単なるファイル上にインストールされているため)。そのため、VHDブートして利用できるOSは現在のところ、Windows 7 EnterpriseとUltimate、Windows Server 2008 R2に限られる。

 VHDブートする環境(OS)を作成するには、大きく分けて次の2通りの方法がある

  • 方法1 ― 既存のVHDファイルをメニューに追加する
     OSイメージが含まれたVHDファイルを用意し、それをブート・ローダに追加登録する。
     
  • 方法2 ― VHDファイル上にOSを新規インストールする
     OSの新規インストールの途中でVHDファイル(を使ったパーティション)を作成し、そこにインストールする。

 方法1は、すでに作成済みのVHDファイルがある場合に利用できる方法である。Virtual PC 2007やWindows Virtual PC、Virtual Server 2005 R2、Hyper-Vなど、いずれの仮想化環境を使ってもよいので、実行可能なWindows 7/Windows Server 2008 R2がインストールされたVHDファイルを用意する(Windows 7/Server 2008 R2の標準バックアップ・ツールで作成したバックアップVHDファイルでもよい。詳細は後述)。次にbcdeditコマンドを使ってこのVHDファイルをブート・ローダのメニューに追加登録すると、コンピュータの起動時に選択可能になる。

 この方法のメリットは、(手元にVHDファイルが存在すれば)最も簡単にVHDブートさせられるということである。ただし元々は仮想マシン環境で動作していたOSイメージなので、実PCで起動させた場合、(最初の1回だけだが)ハードウェア構成の変更によってデバイス・ドライバの再インストールなどの作業が発生する(後述するように、デバイス・ドライバ関係でレジストリ変更などが必要なこともある)。完全なクリーン・インストールをさせたい場合は、次の方法2にするとよい。またホストOSがWindows 7の場合、64bit版のゲストOSをVHDファイルとして用意する方法がないので(Windows 7のWindows Virtual PCでは、32bit版ゲストOSしか利用できない)、作業が面倒である(いったんWindows Server 2008 R2を実PCにインストールし、そこでHyper-Vを使って64bit版OSをVHDファイルにインストールするなど)。この場合も、次の方法2がよいだろう。

 方法2は、コンピュータをWindows 7/Windows Server 2008 R2のインストールDVD-ROMを使って起動し、新規インストール作業を行わせる方法である。インストールDVD-ROMを使ってOSをインストールしようとしても、通常は物理ハードディスク(とその中に存在するパーティション)しか認識されない。そこで、インストール作業の途中でdiskpartコマンドを起動し、VHDファイルを作成してアタッチ後、仮想ディスクをインストーラに再認識させる。以後の作業は物理的なディスクにインストールさせる場合と同様である。

 この方法では、インストールDVDさえ用意すれば、手元にVHDファイルがなくてもOSが新規インストールできるし(アップグレードインストールは不可)、現在使用しているOSやその種類(32bitか64bit、エディション、言語)に関わらず、いずれのOSもインストールできる(ただしWindows 7はProfessional/Ultimate Editionのみ)。また方法1と違い、ブート・ローダの項目を手動で編集する必要はない。通常のOSインストール時と同様に、インストーラが自動的に行ってくれるからだ。

方法1 ― 既存のVHDファイルをメニューに追加する

 まずVHDブートを行うためのVHDファイルを用意する。Virtual PCやHyper-Vなどの仮想化ソフトウェアを利用して、Windows 7 EnterpriseまたはUltimate、Windows Server 2008 R2をゲストOSとしたVHDファイルを作成しておく。VHDファイルの作成方法は、「仮想PCで学ぶ『体当たり』Windowsシステム管理 第1回 実験用の仮想PC環境を準備する」「Windows TIPS:Windows Virtual PCで新しい仮想マシンを作成する」を参照してほしい。後述のように仮想ハードディスクは、容量固定タイプで作成しておいた方がよい。また「第10回 Windows 7のVHDファイル・サポート」で解説したように、Windows 7/Server 2008 R2の標準バックアップ・ツールを利用すると、VHDファイルによるシステム・イメージが作成できるので、このVHDファイルを利用してもよい。ただし、この場合はバックアップ・ファイルが更新されてしまうことになるので、必ずコピーしたものをVHDブートに利用すること。

 次にコマンド・プロンプトを[管理者として実行]で起動し、以下のコマンドを実行する。bcdeditコマンドについては、関連記事を参照していただきたい。

C:\> bcdedit /create /d “Windows 7 - VHD Boot” /application OSLOADER

 「“Windows 7 - VHD Boot”」の部分は、ブート・マネージャで表示されるものなので、分かりやすい名前を付けておけばよい。すると、以下のように作成したエントリのidentifier(ID)が表示される。

エントリ {1506ac5d-c37f-11de-839c-d8a8f5a29ccc} は正常に作成されました。

 以下、このコマンドで作成されたエントリ(ここでは、{1506ac5d-c37f-11de-839c-d8a8f5a29ccc})に対して設定を行うことになる。このエントリの値はユニークなIDとなるため、実行環境などによって異なるので注意が必要だ。なおエントリが分からなくなったら、「bcdedit」を実行すると、追加されたエントリが調べられる。

 次に、このエントリに対して起動先となるVHDファイルのパスなどを設定していく。コマンドでエラーなく実行できた場合は、「この操作を正しく終了しました。」と表示される。起動ドライブを[C:]のように、[ ] で囲むことを忘れないようにすること。

C:\>bcdedit /set {1506ac5d-c37f-11de-839c-d8a8f5a29ccc} device VHD=[C:]\VHDBOOT\win7.vhd
C:\>bcdedit /set {1506ac5d-c37f-11de-839c-d8a8f5a29ccc} osdevice VHD=[C:]\VHDBOOT\win7.vhd
C:\>bcdedit /set {1506ac5d-c37f-11de-839c-d8a8f5a29ccc} path  \Windows\system32\winload.exe
C:\>bcdedit /set {1506ac5d-c37f-11de-839c-d8a8f5a29ccc} systemroot \Windows
C:\>bcdedit /set {1506ac5d-c37f-11de-839c-d8a8f5a29ccc} locale ja-JP
C:\>bcdedit /set {1506ac5d-c37f-11de-839c-d8a8f5a29ccc} detecthal yes
C:\>bcdedit /displayorder {1506ac5d-c37f-11de-839c-d8a8f5a29ccc} /addlast

 設定が完了したら「bcdedit」を実行して、パスなどがブート・ローダに正しく設定されたかどうか確認するとよい。

wi-vhdboot02.gif ブート・ローダ設定後の内容
VHDブートのためのエントリを追加し、上述の設定を行う。「bcdedit」を実行すると、このような設定になっているはずだ(エントリのIDは環境によって異なるので注意)。
  (1)追加したブート・エントリのID。このエントリに対応するブート・ローダの設定が(2)になる。
  (2)追加したブート・ローダの設定内容。上述のコマンドによって追加された内容がここに表示されているはずだ。VHDファイルへのパスなど、間違いがないか確認しよう。

 これで、VHDブートのためのブート・ローダの設定が完了する。再起動すれば、ブート・マネージャに「Windows 7 - VHD Boot」が追加されて、VHDブートが選択できるようになっているはずだ。「Windows 7 - VHD Boot」を選択すれば、VHDファイル内のWindows 7が起動する。初回起動時は、ログオン後にデバイス・ドライバのインストールが行われる。仮想化環境では、仮想化されたデバイス(ハードディスクのインターフェイスやグラフィックス機能など)であるため、物理コンピュータ上のデバイスが新しいデバイスとして認識されるためだ。

wi-vhdboot03.gif VHDブート追加後のブート・マネージャの画面
ブート・ローダの設定を行い、VHDブートが可能になると、ブート・マネージャには設定したVHDブートを行うためのエントリが現れる。
  (1)こちらを選択すれば、VHDブートが行われる。

Windows XPからWindows 7への移行ノウハウを知りたい!なら

XP→Win7移行支援記事集



       1|2|3 次のページへ

Copyright© 1999-2017 Digital Advantage Corp. All Rights Reserved.

@IT Special

- PR -

TechTargetジャパン

この記事に関連するホワイトペーパー

RSSについて

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

メールマガジン登録

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