Windows 8 は VHDX (VHD も可) でブートすることが可能です。
今回は Windows 8 Enterprise を VHDX / 差分 VHDX でブートするための手順をまとめていきたいと思います。
VHDX ブートをすることで既存の環境を残したまま、パーティション構成を変更せずに物理環境でブートすることができます。
Windows 8 で普段使用しているハードのデバイスドライバをインストールすることができるかを確認する場合、物理環境にインストーする必要があります。
そのような場合は今回紹介する VHDX ブートを使用するとよいと思います。
今回の投稿では Hyper-V 2.0 のゲスト OS で検証をしているため、ディスクの構成は以下のようになっています。
なお、Windows 8 のインストールメディアですが、Windows 7 USB/DVD ダウンロード ツール を使用することで、USB のブートメディアを作成することができます。
■Windows 8 Enterprise を VHDX ブート
VHDX ブートするためには VHDX を作成して、その仮想ディスクに対してインストールをする必要があります。
インストールの方法はいろいろとあると思いますが、私は以下の方法でインストールしています。
- Windows 8 のインストールメディアで起動
- 以下の画面までインストーラーを進める
- 今回は未フォーマットのディスクを使用しているので Shift + F10 でコマンドプロンプトを開いて以下のコマンドを実行し、パーティションを作成
# すでに使用しているハードディスクを使用する場合、この作業は不要です。diskpart
select disk 0
create part primary
format fs=ntfs quick
assign
exit
exitGUI からパーティションの割り当てを行った場合、以下の画像のように先頭に 350MB のパーティションが作成されていると思います。
Hyper-V のゲスト OS で試していた限りは、上記のパーティション構成だとインストールの途中で [0x8007002] のエラーが発生してしまい、インストールをすることができませんでした。
# インストールするファイルの準備中で (2% ~ 3% のタイミングでエラーになりました)
そのため、今回は 1 パーティション構成としています。
- Shift + F10 を押してコマンドプロンプトを起動
- 以下のコマンドを実行して VHDX を保存するフォルダを作成
mkdir C:VHDX - 以下のコマンドを実行
diskpart
create vdisk file=”c:vhdxbase.vhdx” maximum=40960 type=expandable
attach vdisk
exit
exit - 最新の情報に更新をクリックして、アタッチした VHDX を表示させ、そのディスクを選択してインストールを行う
# このドライブに ~ の表示がありますがインストールすることができます。
- OS のインストールが終了したらシャットダウンします。
■差分 VHD ブート
続いて差分 VHD を使用してブートしてみたいと思います。
手っ取り早く差分 VHD ブートをするため、一度 Windows 8 のインストールメディアで起動します。
- Shift + F10 を押してコマンドプロントを起動
- 以下のコマンドを実行して差分 VHDX を作成
diskpart
create vdisk file=”c:vhdxdiff.vhdx” parent=”c:vhdxbase.vhdx”
exit - 以下のコマンドを実行して BCD のエントリを変更
bcdedit /set {default} device “vhd=[C:]vhdxdiff.vhdx”
bcdedit /set {default} osdevice “vhd=[C:]vhdxdiff.vhdx” - 以下のコマンドを実行して再起動
wpeutil reboot
以上で差分 VHDX を使用したブートは完了です。
VHDX ブートした場合は軌道に使用した VHDX ファイルが最大サイズまで拡張されましたが差分 VHDX ブートした場合は、差分 VHDX のファイルが最大サイズまで拡張されます。
今回は {default] の BCD のエントリを変更しましたが、以下のコマンドを実行することで既定のエントリをコピーして変更することも可能です。
bcdedit /copy {default} /d “Copy Entry” bcdedit /set {<コピーされたエントリの GUID>} device “vhd=[C:]vhdxdiff.vhdx” bcdedit /set {<コピーされたエントリの GUID>} osdevice “vhd=[C:]vhdxdiff.vhdx” |
複数の差分 VHDX (差分 VHD) を使用したい場合にはエントリをコピーして使用することになるかと。
Windows 8 では OS の選択画面が変更されているので、BCD のエントリをコピーするとこのような画面になります。
先頭の 350MB のパーティションが存在している場合にエラーとなってしまったのが気になるのですが、Windows 8 + VHDX を使用して VHDX ブート / 差分 VHDX ブートはできそうですね。
なお、先頭に 350MB のパーティションが存在している物理環境では正常に VHDX ブートのインストールが 3% より先に進んだので 1 パーティション構成以外でも動作すると思います。