Windows 8導入後に何らかの理由でWindows 7が必要となった場合、仮想PC上でWindows 7をインストールし動作するのも一つの手段だが、VHDを使う手段もある。
VHDは仮想ハードディスクの略で、簡単に言えばファイルを一つ作成し、そのファイルを一つのハードディスクとして使う事が出来る機能である。CD/DVDのイメージファイルであるISOファイルをマウント出来るが、それと同じ感じでVHDファイルをドライブとしてマウントし、自由に読み書きが出来る機能である。
Windows 7 Enterprise / UltimateやWindows 8はこのVHDファイルにOSをインストールする事が出来る。PC起動時に起動するパーティションを選択する様にこのVHDファイルを起動ドライブとして選択し、VHDにインストールされているOSを起動し稼働させる事が出来る。起動後はVHDファイルがシステムドライブとして認識され、VHDファイルが格納されているパーティションやその他ドライブは通常ドライブとして扱う事が出来る。
VHDにOSをインストールするメリットとしては、
・PCのリソースをフルに使える(仮想PCと異なりHDDが仮想化しているだけ)
・システムドライブがファイル一つに収まっているので、バックアップや複製、復元が容易に行える。
・わざわざOS毎にパーティションを分ける必要が無い。HDDを効率良く使える。
・不要になったらファイル削除とブート―ローダから項目を削除するだけで良い。
デメリットとしては休止状態が使えない、Bitlockerに制約がある、HDDのパフォーマンスが落ちると言った事がある。このあたりComputerworldの記事を参考にして頂きたい。
仮想PCだとパフォーマンスや周辺デバイス利用に問題がある、かと言ってHDDのパーティションを切り直す余裕も無い、と言う場合に利用出来る技である。VHDを圧縮保存しておき、必要になった時だけ展開して利用する事も可能だ。ただ、利用出来るOSはWindows 7 Enterprise/UltimateやWindows 8等VHDブートに対応しているOSに限られる。
今回Windows 8 Proが動作している環境にWindows 7 UltimateのVHDブートを追加する手順を紹介するが、Windows 7やWindows Vistaの環境にWindows 8のVHDブートを追加すると言った事も可能だ(方法はGoogleで検索)。後、当然ながらVHDブートするOSのライセンスも必要となる。
まず、インストール先となるVHDファイルを作成する。「Win + X」ショートカットキー押下後、「ディスクの管理」を開く。
操作メニューから「VHDの作成」をクリックする。
VHDの作成画面が表示されるので、VHDファイルの保存場所(ブート設定後動かせないので特定の場所を作成しておく)、容量、種類を設定する。Windows 7はVHDXをサポートしていないのでVHDにしておく事。種類は固定の方がパフォーマンスが良いが、可変にしておくとディスク容量を節約出来るので、状況に応じ設定する。
VHD作成後自動的にマウントされるので、ディスクを右クリックし「ディスクの初期化」を行う。
初期化後、パーティションを右クリックし新しいボリュームを作成しNTFSフォーマットを行う。
作成中「フォーマットしますか?」のメッセージが表示されるので、「キャンセル」をクリックして閉じておく。
これでVHDが作成されるので、VHDにOSをインストールする。VHDにOSをインストールする方法としてimagexツールを使う方法と従来のインストールメディアからPCを起動し、OSセットアップ画面でVHDをマウント後セットアップを行う方法があるが、今回は手順としては手軽なimagexを使う方法で説明する(OSセットアップメディアがisoイメージであれば、DVDドライブ不要で出来る)。
imagexを使う方法は手軽ではあるが、1.6GBのインストールキットをダウンロード後インストールする必要がある。まず、マイクロソフトのサイトからWindows自動インストールキットを入手する。
Windows 7要のWindows自動インストールキット(AIK)
isoファイルを保存後、ファイルを右クリックしマウントする。
StartCDを実行し、セットアップを開始する。
「Windows AIK セットアップ」をクリックし、AIKをインストールする。
.NET Framework 2.0がインストールされていない場合メッセージが表示されるので、この場合はメニューから「.NET Framework セットアップ」を選択しインストールする。
.NET Frameworkインストール後、再度AIKのセットアップを行う。
AIKインストール後、Windows 7 Ultimate等VHDにインストールするOSのセットアップメディアを準備する。imagexを使う場合、必要なのはセットアップメディアに含まれているsources\install.wimファイルなので、isoイメージをマウントして同ファイルを抜き出すか、別PCで抜き出してコピーして来ても良い。
AIKインストール後スタート画面に「Deploymentツールのコマンドプロンプト」のショートカットが作成されているので、右クリックしアプリバーから「管理者として実行」を選択する。
imagexを使い、OSをVHDにインストールする。もしこの時点でVHDがマウントされていない場合、VHDファイルを右クリックしマウントしておく。
例では、OSセットアップメディアがD:ドライブ、VHDがE:ドライブにマウントされている場合。Windows 7 Ultimateの場合、インストール出来るエディションが複数存在するため、imagex実行の際何番の指定でどのエディションがインストールされるか確認しておく。
imagex /info d:\sources\install.wim
IMAGE INDEXがインストール番号、NAMEがエディション名になっているので、番号を確認する。この番号を誤ると誤ったエディションがインストールされVHDから起動出来なくなる。Windows 7 Ultimateの場合4番か5番になる。
imagex /apply d:\sources\install.wim 4 e:
コマンド実行するとVHDに対しOSのインストールが行われるので、完了まで待機する。
インストール完了後、BCDに作成したVHDから起動出来る様項目を追加する。bcdeditを実行すると現在のBCDストアの内容が表示される。
既存の項目をコピーしてから編集をかけるか、慣れていれば新規に追加する。Windows 7 VHDは好みの名称を入力する。編集前にexportで現在のBCDをバックアップしておくと安全である。
bcdedit /copy {current} /d "Windows 7 VHD"
項目コピー後エントリのGUIDが表示されるので、コマンドプロンプトの画面を右クリック後範囲指定を選択し、GUIDをコピーしておく。bcdeditを実行すると、追加された項目が確認出来る。
項目を編集し、作成したVHDファイルから起動する様設定する。”[C:]”は括弧”[]”付きで、vhdファイルを保存している場所を指定する。
bcdedit /set {コピーしたGUID} device VHD=[C:]\vhd\win7disk.vhd bcdedit /set {コピーしたGUID} osdevice VHD=[C:]\vhd\win7disk.vhd
再度bcdeditを実行し、Windows 7のブートローダーが正しく設定されている事を確認する。(誤ってWindows 8側が変わっていない事を確認)
これで準備はOKだ。PCを再起動するとブートメニューが表示されるので、作成したWindows 7 VHDを選択する。
Windows 7 VHDを選択してるのにも関わらずWindows 8が起動したりエラーが発生する場合は、ブートローダーの設定内容が正しいか、PCが64bit非対応なのに64bitのWindows 7をインストールしていないか確認しよう。
Windows 7起動後セットアップが開始するので、セットアップを行う。(例では英語版をセットアップしているので英語版表記になっている)
これでWindows 7の環境構築は完了である。VHDファイルはC:ドライブとしてマウントされ、本来のドライブはD:ドライブとしてマウントされ利用可能となっている(D:ドライブの中にvhdファイル実体がある)
Windows 7環境のバックアップを取りたい場合はWindows 8で起動しなおしvhdファイルをコピーすれば良い、不要になればvhdファイルを削除後bcdeditでブート項目を削除すれば良い。
ちなみに、imagexで操作を誤りProfessional版をインストールしてしまった場合は、セットアップの最後の段階で「VHDを使えません」と表示される。
今回紹介したVHDを使い、USBストレージデバイスからWindows 8を起動するWindows To Goもどきも出来るらしいので、後日方法を調査し紹介したいと思う。
This post is also available in: 英語
こちらのホームページを参考にしてWindows 8.1にWindows 7 UltimateをVHDでインストールしました。
起動でWindows 8.1とWindows 7 VHDを選択する画面までは行くのですが、
Windows 7を選択するとエラーの自動回復を始める画面になり、トラブルシューティングに行くか、勝手にWindows 8.1が上がってきてしまいます。
このパソコンはUEFI、GPTの設定なので、VHDを作成するときにMBRではなく、GPTを選択しました。
UEFIだと何か別の設定が必要なのでしょうか?
また、BCDEditのPathが、\Windows\system32\winload.efiになっていました。
Pathは\Windows\system32\winload.efiでも\Windows\system32\winload.exeでも
どちらにしてもうまく起動しませんでした。
使用しているパソコンはVAIO Fit13(Windows 8.1プレインストール)です。
CPU:intel corei5 SDD 256GB memory 4GB
返信遅くなり申し訳ありません。
かなり前にやった事なのであまり覚えていませんが、
http://win8room.net/2013/02/05/1469.html
を参考にしてみて下さい。
私もUEFI+GPTディスクにWindows8.1 Proが入っている(メイン)環境に、
別マシンのBIOS+MBRディスクに構築済みのWindows7 Ultimateを
P2VしたVHDを使って、デュアルブートしようとしていますが、
Windows7が正常に起動せず困っています(起動に失敗して、
OSの選択画面に戻ってしまいます)。
※ BCDストアの構成等は、正常にできていると思っています。
この記事の環境は、UEFIブートとBIOSブートのどちらなのでしょうか。
上のコメントにも書いてある
http://win8room.net/2013/02/05/1469.html
の記事では、Dell Inspiron 15zのUEFIブートでやっています。
UEFI/BIOSの問題よりOS標準のドライバーでHDDを認識しない事が難点です。