Windows 7時代の新常識-仮想ハードディスクをドライブとして使う【後編】

VHDファイルをブートドライブにする


 VHD(Virtual Hard Disk)は、Hyper-VやVirtual PCなどで使われている仮想ハードディスクのファイルフォーマットだ。これまで仮想環境で使われていたVHDファイルだが、Windows 7とWindows Server 2008 R2では、ドライブとしてマウントしたり、OSのブートドライブとして利用できるようになる。

 今回は、VHDファイルをブートドライブとして使用する方法を紹介する。


新しく作るVHDファイルを使ってブートドライブを作る

 まずは、HDDの代わりにVHDファイルをブートドライブにする方法を紹介する。ここでは、未フォーマットのHDDに対して、新たにVHDファイルを作成し、作成したVHDファイルにWindows 7をインストールする方法を紹介する。

 注意が必要なのは、VHDファイルをブートドライブにできるOSは、Windows 7/Windows Server 2008 R2だけだ。Windows XP/Vista、Windows Server 2008は利用できない。


Windows 7のインストールメディアを起動する。言語やキーボードの種類を選択し、次に進む左下にある[コンピューターを修復する]をクリックする[Windowsの起動に伴う...]を選択し、次に進む

一番下にある[コマンドプロンプト]をクリックするdiskpartと入力するselect disk 0と入力し、HDDを選択する

cleanと入力し、HDDの内容を消去するcreate partition primaryと入力し、プライマリパーティションを作成するformat FS=NTFS LABEL="System Drive" quickと入力し、HDDをフォーマットする。ここではラベル名をSystem Driveとしているが、ほかの名前をつけてもかまわない

assign letter=C:と入力し、フォーマットしたHDDをCドライブに割り当てるcreate vdisk file=c:\Windows7RC.vhd maximum=20000 type=expandableと入力し、CドライブにHDファイルを作成する。ここでは、ファイル名を「Windows7RC.vhd」、サイズを「20GB」、「容量可変(expandable)」で設定している。容量固定のVHDファイルを作成する場合は、type=fixedと指定するselect vdisk file=C:\Windows7RC.vhdと入力し、VHDファイルを選択する

attach vdiskと入力し、VHDファイルをアタッチする。これでインストーラからVHDファイルがドライブとして認識できるようになったexitと入力し、diskpartコマンドを終了するsetupと入力し、Windows 7のセットアップを再開する

Windowsのインストーラが起動するので、指示にしたがって進めていくインストールの種類では、「新規インストール」を選択インストール先で、[ディスク1 未割り当て領域]というドライブが表示されているので、これを選択する。あとは指示に従ってインストールを進めていく

 インストールが終了すると、VHDファイルのドライブがCに、VHDファイルが置かれている物理HDDがDドライブに割り当てられているのがわかる。


VHDファイルのドライブがC、VHDファイルが置かれている物理HDDがDに割り当てられているDドライブを見ると、作成したVHDファイルが置かれているのがわかる

VHDファイルを使ってマルチブート環境を作る

 マルチブート環境を作るのは簡単だ。VHDファイルを使ってブートドライブを作る手順と同じ要領で作成し、そのVHDファイルにOSをインストールすればOKだ。なお、VHDファイルの名前はインストールするOSにあわせて変更してかまわない。

  1. インストールしたいOSのインストールメディアで起動
  2. 「新しく作るVHDファイルを使ってブートドライブを作る」で説明した手順でコマンドプロンプトを起動
  3. diskpartを実行
  4. create vdisk file=C:\Windows7x64.vhd maximum=20000 type=expandableを実行
  5. select vdisk file=C:\Windows7x64.vhdを実行
  6. attach vdiskを実行
  7. exitを実行
  8. setupを実行
  9. メッセージに従ってインストールを実行する

 なお、コマンドプロンプトでVHDファイルを作らずに、Windows 7やWindows Server 2008 R2のディスク管理ツールで空のVHDファイルを作成し、セットアップ時にそのVHDファイルを選択してもOKだ。createコマンドの手順を省略し、selectで作成したVHDファイルを指定すればいい。ただし、内蔵HDDにVHDファイルを作らないとアクセスできないので気をつけよう。また、Windowsのディスク管理ツールで作成した直後のVHDファイルはマウントした状態にあるので、切断しておくことも忘れないように。

 このようにして、Windows 7/Windows Server 2008 R2をVHDファイルでブートすることができる。いったんVHDファイルでブートできるようにしておけば、VHDファイルごと保存し、いつでもオリジナル環境に戻すことができる。テストで何度も再インストールを行う筆者にとっては、時間のかかるインストール作業がコピーだけで終わるのは便利だ。


ブートメニューをわかりやすくする

 マルチブート環境を作ると、PCの起動時にブートメニューが表示され、起動可能なOS名が表示される。ただし、同じ種類のOSをインストールすると、メニューには同じOS名が表示される。このOS名を変更したければ、OS名を変更したいOSを起動し、管理者権限を持ったアカウントでBcdeditコマンドを使えば変更できる。


スタートメニューにあるコマンドプロンプトを右クリックし、[管理者として実行]を選択コマンドプロンプトのタイトルバーに[管理者]と表示されていればOK現在起動しているOSのブートメニューの名前を変更するには、bcdedit /set description "Windows 7 RC 64bit"と入力

 これで、ブートメニューで表示される名前が変更できる。また、もう一方のOS名も変更したい場合は、コマンドプロンプトで「bcdedit」を実行し、変更したいOSのidentifier({}でくくられている文字列)を指定すれば変更できる。


bcdeditと入力した直後の画面。起動しているOSのidentifierは{current}と表示されている。それ以外のOSを変更するには、identifierに表示されている名称を使って変更するbcdedit /set {202716e1-5726-11de-9f4d-bf0f14838494} description "Windows 7 RC 32bit"と入力する

VHDのパフォーマンスは?

 では、VHDファイルでブートしたOSのパフォーマンスは、どの程度なのだろうか? 今回、Windows 7 RC x86版を、「物理ディスク」「VHD固定容量ディスク(20GB)」「VHD容量可変ディスク(20GB)」の3つのパターンでテストしてみた。

 ベンチマークソフトには、CrystalMarkDisk2.2を使用し、条件としては、100MBを対象に5回繰り返した。


 物理ディスクとVHDファイル(固定容量・容量可変)では、パフォーマンスはそれほど変わらない。ただし、VHD容量可変ディスクは、容量を拡張していくと、パフォーマンスが低下する可能性がある。また、VHD容量固定ディスクは、物理ディスクのクラスタを大きくすれば、よりパフォーマンスがアップする可能性がある。

 このベンチマークから、VHDを利用してもパフォーマンス面で劣らないことがわかる。ただし、VHDファイルでOSをブートした場合、ページファイルがVHDファイル上に作成できなかったり、バックアップ機能が利用できないなど、Windows 7/Windows Server 2008 R2のいくつかの機能に制限ができる。

 とはいえ、VHDファイルを使ったブート機能はうまく使えば便利な機能だ。例えば、多くのPCを管理しているIT管理者なら、マスターになるVHDファイルを作成しておき、必要に応じてクライアントPCに配布すればいい。最新の環境にアップデートする場合も、VHDファイルをコピーするだけでいい。クライアントPCにOSをインストールする手間を考えれば、非常に便利だ。

 Windows展開サービスでVHDファイルを配布して、ブートすることも可能だ。将来的には、VDIと同じような使い方もできるかもしれない。





(山本 雅史)

2009/7/10/ 00:00