VHDXファイルからWindowsを起動させてみる


はじめに

VHDXブートとはWindows 7/Server 2008 R2以降で提供されている機能で、VHDX(仮想HDD)から
サーバを起動することができる

背景

最近は仮想化が進んでいる
  →物理でも共通のイメージが使えたら良いいかもね!
  →Windowsだし、VHDXブートで良いよね!

メリット

・仮想環境と共通イメージを利用できる
・VHDX以外は物理デバイスを直接利用
   →各種HW管理ツールが利用可能
・P2P、V2Pが自由自在に
・仮想化と比べ、リソースに無駄がなくオーバーヘッドも低い
・バックアップが簡単
・マルチブートが可能

デメリット

・構成が複雑になる
・複数OSの同時起動はできない(仮想化ではないので)
・物理構成に比べ、ディスク利用効率及びIOが悪くなる
・ドライバ回りに配慮が必要
・トラブル時の対応は……
・制限事項
 https://docs.microsoft.com/ja-jp/windows-hardware/manufacture/desktop/deploy-windows-on-a-vhd--native-boot

前提

起動したいOSが入ったVHDXを作成済み

物理ハードディスクの容量が起動したいVHDX以上であること

OSインストール

まずはWindowsを普通にHDDにインストール *インストール方法は割愛

ディスク状況は下記な感じでな

考慮事項
・VHDXブート後、元々のCドライブは不要となるため、最小でよい
・未割当領域をVHDX格納場所として利用するため、OS分と仮想メモリ分以上の容量を確保する

未割当領域にY等のドライブレターを割り当て、起動したいOSが入ったVHDXを入れる

BootManagerの編集

コマンドプロンプト上で下記実行

bcdedit /copy {current} /d "メニュー表記"
bcdedit /set device vhd=[ドライブレター:]<ディレクトリ><VHDファイル名>
bcdedit /set osdevice vhd=[ドライブレター:]<ディレクトリ><VHDファイル名>
bcdedit /set detecthal on

Microsoft Windows [Version 10.0.14393]
(c) 2016 Microsoft Corporation. All rights reserved.

C:\Windows\system32>bcdedit /copy {current} /d "VHD boot"
エントリは {33e534c9-d027-11e8-8371-fe67fa56f32b} に正常にコピーされました。

C:\Windows\system32>bcdedit /set {33e534c9-d027-11e8-8371-fe67fa56f32b} device vhd=[Y:]\検証.vhdx
この操作を正しく終了しました。

C:\Windows\system32>bcdedit /set {33e534c9-d027-11e8-8371-fe67fa56f32b} osdevice vhd=[Y:]\検証.vhdx
この操作を正しく終了しました。

C:\Windows\system32>bcdedit /set {33e534c9-d027-11e8-8371-fe67fa56f32b} detecthal on
この操作を正しく終了しました。

C:\Windows\system32>

システムのプロパティ→起動と回復→規定のオペレーションシステム
 VHD bootへと変更
 OSの一覧を表示~のチェックを外し、再起動

VHDXブート後の確認

VHDXがディスク1として認識され、VHDX内のCドライブから起動している事が分かる

事後作業

VHDX置き場(今回はF)をYへと変更
仮想メモリのドライブをCからYへと変更(VHDX上では仮想メモリを取れない為)
元々のCドライブ(今回はE)をフォーマット、必要であればその他ドライブとして利用する
   →不要であれば、すべてYドライブへと拡張してみても
VHDX上のシステムで予約済み(今回はD)のドライブレターを削除

5.png

その他

C以外のドライブを別VHDXとした場合は起動時に自動的にマウントされなかった

タスクスケジューラにて起動時に下記様を実行させ自動的にマウントさせてみる

 ★開始プログラム
 C:\Windows\System32\cmd.exe
 ★引数
 /c "(echo SELECT VDISK FILE"Y:\D-Drive.vhdx" && echo ATTACH VDISK &&
 echo SELECT VDISK FILE"Y:\E-Drive.vhdx" && echo ATTACH VDISK) | diskpart“

可変ディスクはトラブルの元 固定にするべき
VHDXドライブサイズが物理サイズを超えると起動できない

ブート方法の違いによるディスクIO差

検証機:HP PROLIANT DL360 G7
使用ソフト:CrystalDiskMark

てきとーな検証をしたため、物理HDDより良い数値が出てしまったが、物理ブートだろうがVHDXブートだろうが
転送速度に対した差はないと考えられる

富士通による検証

公開してありました
最大でも6%の劣化との事
https://jp.fujitsu.com/platform/server/primergy/software/windows/technical/tips/w2008r2/01-02.html