Windows11 + Hyper-V(GPU-P)で始めるVM環境
目次
- 目次
- ゴール
- この記事の読者ターゲット
- Hyper-Vの有効化
- Windows11インストールイメージの取得
- Hyper-Vの設定
- 仮想マシン(VM)の作成
- VMへWindows11 OSインストール
- VMにGPU-Pを割り当てる
- 仮想オーディオドライバ(VB-CABLE)の導入
- 全体を通して
ゴール
VM環境内でGPU利用するアプリケーションを快適に動作させることを目的とします

この記事の読者ターゲット
- パソコン(以下PC)についてスキルがある(用語等を理解し操作できる)
- 仮想マシン(以下VM)上でGPUを利用したアプリケーションを使いたい
- PCにWindows 11 "Pro" のOSを利用している
(HomeでもHyper-Vを利用できるらしいが、ここでは説明しません) - PCスペックが下記を満たすこと
- 長期間にわたって利用する場合は、VM用にWindows11のライセンスを購入できる
→Pro, HomeどちらでもOK
ではやっていきましょう
読者ターゲットではない人はうまい棒でも食ってろ!
Hyper-Vの有効化
- 管理者としてPowerShellを起動
- 次のコマンドを実行
Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Hyper-V -All
コマンドが見つからなかった場合は、管理者として PowerShell を実行していることを確認してください - PCを再起動する
Windows11インストールイメージの取得
- Windows11のディスクイメージ(ISO)をダウンロードする
適当なブラウザで下記URLを開く
- 「Windows 11 (multi-edition ISO)」を選択

- ダウンロードボタンを押下すると、言語選択となるので「日本語」で進める

言語は日本語とする - 確認ボタンを押下すると、「64-bit ダウンロード」ボタンが表示されるので
ここからISOファイルを取得する

やっとISOのダウンロード この記事を書いてる時点で6.3GBあるから、少し待ってほしい
まだまだ先は長いからな...
なお自分は2分で終わった
Hyper-Vの設定
- Windowsアプリケーションから「Hyper-V マネージャー」を開く

- 右の操作メニューにある「Hyper-Vの設定」を押下
サーバー「拡張セッションモード ポリシー」にある
「拡張セッション モードを許可する」のチェックを外し適用
一旦適用ボタンの押下忘れずに
- 続いて
ユーザー「拡張セッション モード」にある
「拡張セッション モードを使用する」のチェックを外しOK

こっちも無効に OKボタンを押下して閉じる
仮想マシン(VM)の作成
- Windowsアプリケーションから「Hyper-V マネージャー」を開く

仮想マシンからっぽの前提で進めます - 右の操作メニューにある「クイック作成」を押下

最初はこんな画面になるはず - 「ローカル インストール元」を選択する

- 「インストール元の変更」ボタンを押下し、先ほどダウンロードしたWindows11 ISOファイルを選択する

ISOファイルを選択後 - 名前を付けてやる
なお後ほどこの名前を指定して設定するので英語の名前にしておこう
ここでは「SUBVM1」として進める

英語にしとくと後々コマンドで呼び出すの便利なのよな - あとは「仮想マシンの作成」ボタンを押下すると爆速でVMが作成される

まだWindows11 OSはインストールされてないから注意 - 「設定の編集」ボタンを押下する
Windows11 & GPU-Pを有効化するのに何点か設定が必要なので順に説明する

設定画面 - 「セキュリティ」の設定で
「トラステッド プラットフォーム モジュールを有効にする」をチェックする
Windows11からはこのTPMが無いと基本動かないので渋々入れる

TPMを有効にするをチェック - 「メモリ」の設定で
RAMのサイズを「8192」MB = 8GBに設定
「動的メモリを有効にする」のチェックを外す

メモリ8GBは快適に利用するためにも欲しいところ - 「プロセッサ」の設定で
仮想プロセッサの数を「2」以上にする

とりあえず2以上あればいいよ 初期設定だと仮想プロセッサがPCの半分入っており、大量にCPUを食われるので適度な値にしよう
- 「チェックポイント」の設定で
「チェックポイントを有効にする」のチェックを外す

こいつが有効だとGPU-Pが使えない - 最後に「OK」ボタンを押下し、設定を保存する
VMへWindows11 OSインストール
- VM「SUBVM1」をダブルクリックし開く

オフ状態(停止中)ならこの画面 - 起動ボタンを押下し、立ち上げる
とほぼ同時に速攻何かのキーを押してISOファイルからブートさせる
「>>>Start PXE over IPv4.」と表示されたらブート失敗!
もうちょっと手心が欲しいですね
なお、このスクリーンショット撮るために5回ほどリセットした
本当にキー押す時間みじけぇんだよ!!!
ブート失敗した方は操作メニューから「リセット」しましょう

- 正常にISOファイルからブート出来たらWindowsインストーラが起動します

次へ 
今すぐインストール 
- Windowsのライセンス認証 画面が表示される
ここで長期に利用するならWindows 11のプロダクトキーを入力してもいいが、
まずは動作検証したいので下部の「プロダクトキーがありません」を押下

素直な子は好きだよ - Windows 11のOS種類を選択
後で Home → Proにアップグレードも可能なのでトライアルする人は
「Windows 11 Home」を選ぼう
ここではProを選択した

自分はWindows11 Proのライセンス所有してるので... - ライセンス条項...を読んだら
同意にチェックを入れて次へを押下

読みましょうね - Windowsをクリーンインストールするので
下のカスタムを選択

カスタムを選択 - インストール場所を聞かれるが、良しなにしてくれるので次へを押下

このまま次へを選択すると自動で良しなにしてくれる - インストールが開始するのでしばらくは待機

ちょっとコンビニ行ってもいいのよ? - 再起動すると国と地域の画面となる

- ではここでシャットダウンしよう!

えっ?なんでと思うが、とりあえずシャットダウンしてほしい このまま普通に進めることもできるが、その場合は
オンラインアカウント持ってるよって人も最初はオフラインアカウントを
個人設定で「Microsoft オンラインアカウント」が必須になる
これを回避するにはネットワーク接続を切断しないといけないのだ
作るのがいい
何故ならオンラインアカウントの入力した先頭5文字だけが
自身のフォルダ名として作られるのだ!
なんでメールアドレス全部のフォルダ名じゃないんだよ! - シャットダウンした後、ネットワーク接続を切断すべく設定

設定をセンターに入れてクリック! -
ネットワークアダプターの仮想スイッチを「接続されていません」にして
OKボタンを押下して閉じる

仮想スイッチのリストから選択 - そして再びVMを起動する

はい - ここで隠しコマンド入れます
「Shift + F10」キーを押して管理者権限のコマンドプロンプトを召喚

召喚! コマンドプロンプトにて「oobe\BypassNRO.cmd」を実行すると再起動します

oobe\BypassNRO.cmd 
再起動 -
再起動したらセットアップを進めます

Japan! 
はい 
スキップ! -
ネットワークに接続しましょう と出るが、
先ほどネットワーク アダプターを切断したため、ここは「インターネットに接続していません」を選択しよう

時には嘘も必要なのだよ 「制限された設定で続行」を選択

制限有で - デバイス利用者の設定になるので適当なユーザ名を入力

好きなユーザ名を入れるとよい
理由もあるんだが本運用する際はオンラインアカウントのパスワードになるので今ここで厳密にパスワードを考える必要はないのだ...
空欄のまま次へを押下
パスワードは空欄!!!
プライバシー設定を聞かれるが、検証用に使うので全部OFFにして同意

OFF! - 最終のOS設定に入るのでまた暫し待つ

Hello, Windows 
待ーつわ 
あっさりWindows11 起動 - Windowsアップデートをするためネットワーク接続を有効にする
再び設定を開く

仮想スイッチを「Default Switch」に戻してOKボタン押下
これでネットワーク接続可能に戻る - Windows Updateをして最新の状態にしよう

「設定」を開こう 
Windows Updateにいくつかインストール可能なものがある 
最新の状態 ヨシッ -
ここで普通のWindows 11インストールまでが完了

一旦お疲れさまでした
- 次に進むため、通常のWindowsシャットダウンをしてください
VMにGPU-Pを割り当てる
やっとメインが来た...
- 私のGitHubリポジトリからGPU-Pを有効化するためのPowerShellスクリプトをダウンロードする
- ダウンロードしたGPU-P_enable.ps1をメモ帳等のテキストエディタで開く
変更が必要な個所があります - PC上で管理者としてPowerShellを起動
- PowerShellにてGPU-P_enable.ps1を実行する
(GPU-P_enable.ps1をダウンロードしたディレクトリで行ってください)
VMへのGPU-P割り当てが成功すれば「Success」と表示されます

成功した場合の例 失敗したときには「ERROR」もしくは赤字が表示されるので切り分け調査してください
- 成功したら再度VMを起動し、デバイスマネージャーを開きましょう
ディスプレイ アダプターにGPUが見えていれば正常です
ここまで来たらもう少しです
警告付だが、ここではAMD Radeonが生えた - VMのGPU-Pに対応したドライバを入れる
通常ならGPUベンダーのサイトに行ってドライバインストーラーをダウンロードするのですが、GPU-PではVMをホストしてるPCのドライバを丸ごとコピーして持ってくる必要があります
その下準備をVM上でします

エクスプローラーを開きます 
「C:\Windows\Sytem32」 のフォルダを開きます 
新規作成で「フォルダー」を選択 
警告が出るが続行! 
はい 
この新しいフォルダーの名前を「HostDriverStore」に変更 
また警告出るが はい 
上手にできました さらに「HostDriverStore」の配下に「FileRepository」フォルダーも作ろう
(途中の警告画面は「はい」で進める)
「FileRepository」も作った - VMは通常のWindowsシャットダウンを実施
- PC上で ディスクの管理を開く

Windowsスタートボタン右クリックで行けるよ - 操作メニューから「VHDの接続」を選択

VHDの接続を選択 
VHDの場所を聞かれる - 場所はVMの「仮想ハードディスク」で確認できるので
そのVHDXファイルのパスをコピーする

通常は「C:\ProgramData\Microsoft\Windows\Virtual Hard Disks\」の配下 - 先ほどのウィンドウにVHDXのパスを入力してOK

こんな感じ 正常に接続されればドライブが増える
今回はEドライブとして進める
ディスク2 が増え、Eドライブが認識された - PC上でEドライブを開き
「Windows\System32\HostDriverStore\FileRepository」の空フォルダに移動する

「Windows\System32\HostDriverStore\FileRepository」まで移動 - このフォルダ内にGPU-Pに必要なドライバファイルをPCでコピーして
入れる必要があるが、PC内には大量のドライバが存在しており探すのに苦労する
よってPowerShellスクリプトで場所を特定することにした
- PC上で管理者としてPowerShellを起動
- PowerShellにてGPU_Driver_list.ps1を実行する
(GPU_Driver_list.ps1をダウンロードしたディレクトリで行ってください)
検索結果が「InstalledDisplayDrivers」として表示されます
(私の場合、AMDとNVIDIAの2台GPUがあるので2行でてます)

表示されるフォルダ名は環境によって変わります ここではAMD Radeonドライバーが1行目に入ってることが分かったので、
該当のフォルダをEドライブのFileRepositoryにフォルダごとコピーします
「u0398229.inf_amd64_d2c627a9878b9758」フォルダごとをコピーした - ディスクの管理から「VHDの切断」を実施

忘れるとVMが起動できないので忘れずに切断しよう 
確認してOK - では改めてVMを起動してみます
初回起動時は稀にHyper-Vの起動画面から進まないことがある
その場合は「停止」で強制的にシャットダウンをし、数秒置いてから再度起動してみてください
それでも起動しない場合は、下記を実施してください- GPU-Pの割り当てを解除
こちらを管理者権限のPowerShellで実施すると解除できる
- VM起動
- VMシャットダウン
- GPU-Pの割り当て実施
- GPU-Pの割り当てを解除
- 問題なく起動するとWindows画面になります

分かる人にはわかる 下のタスクバーが透けてることをッ...! - デバイス マネージャーを開いて「ディスプレイ アダプター」に警告がないことを確認します

ヨシッ!
仮想オーディオドライバ(VB-CABLE)の導入
- オーディオデバイスが無いと動かない一部のゲームがあるため
有名どころのVB-CABLEを入れます
なお、あくまでゲーム起動させる為だけに入れており音は出ません
- Edge開いて「VBCABLE_Driver_Pack43.zip」をダウンロード

VBCABLE_Driver_Pack43.zip をダウンロード - ZIPファイルを展開し、「VBCALE_Setup_x64.exe」を管理者として実行

管理者として実行を忘れずに 
はい 
Install Driver 
インストール 
完了したらOK
ブラウザが開くが速攻閉じる(宣伝) - これにて完了です
