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ファイルを取得する
この記事を書いてる時点で6.3GBあるから、少し待ってほしい
まだまだ先は長いからな...
Hyper-Vの設定
- Windowsアプリケーションから「Hyper-V マネージャー」を開く
- 右の操作メニューにある「Hyper-Vの設定」を押下
サーバー「拡張セッションモード ポリシー」にある
「拡張セッション モードを許可する」のチェックを外し適用
一旦適用ボタンの押下忘れずに - 続いて
ユーザー「拡張セッション モード」にある
「拡張セッション モードを使用する」のチェックを外しOK
OKボタンを押下して閉じる
仮想マシン(VM)の作成
- Windowsアプリケーションから「Hyper-V マネージャー」を開く
- 右の操作メニューにある「クイック作成」を押下
- 「ローカル インストール元」を選択する
- 「インストール元の変更」ボタンを押下し、先ほどダウンロードしたWindows11 ISOファイルを選択する
- 名前を付けてやる
なお後ほどこの名前を指定して設定するので英語の名前にしておこう
ここでは「SUBVM1」として進める
- あとは「仮想マシンの作成」ボタンを押下すると爆速でVMが作成される
- 「設定の編集」ボタンを押下する
Windows11 & GPU-Pを有効化するのに何点か設定が必要なので順に説明する
- 「セキュリティ」の設定で
「トラステッド プラットフォーム モジュールを有効にする」をチェックする
Windows11からはこのTPMが無いと基本動かないので渋々入れる
- 「メモリ」の設定で
RAMのサイズを「8192」MB = 8GBに設定
「動的メモリを有効にする」のチェックを外す
- 「プロセッサ」の設定で
仮想プロセッサの数を「2」以上にする
初期設定だと仮想プロセッサがPCの半分入っており、大量にCPUを食われるので適度な値にしよう
- 「チェックポイント」の設定で
「チェックポイントを有効にする」のチェックを外す
- 最後に「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を選択した
- ライセンス条項...を読んだら
同意にチェックを入れて次へを押下
- Windowsをクリーンインストールするので
下のカスタムを選択
- インストール場所を聞かれるが、良しなにしてくれるので次へを押下
- インストールが開始するのでしばらくは待機
- 再起動すると国と地域の画面となる
- ではここでシャットダウンしよう!
このまま普通に進めることもできるが、その場合は
オンラインアカウント持ってるよって人も最初はオフラインアカウントを
個人設定で「Microsoft オンラインアカウント」が必須になる
これを回避するにはネットワーク接続を切断しないといけないのだ
作るのがいい
何故ならオンラインアカウントの入力した先頭5文字だけが
自身のフォルダ名として作られるのだ!
なんでメールアドレス全部のフォルダ名じゃないんだよ! - シャットダウンした後、ネットワーク接続を切断すべく設定
-
ネットワークアダプターの仮想スイッチを「接続されていません」にして
OKボタンを押下して閉じる
- そして再びVMを起動する
- ここで隠しコマンド入れます
「Shift + F10」キーを押して管理者権限のコマンドプロンプトを召喚
コマンドプロンプトにて「oobe\BypassNRO.cmd」を実行すると再起動します
-
再起動したらセットアップを進めます
-
ネットワークに接続しましょう と出るが、
先ほどネットワーク アダプターを切断したため、ここは「インターネットに接続していません」を選択しよう
「制限された設定で続行」を選択
- デバイス利用者の設定になるので適当なユーザ名を入力
理由もあるんだが本運用する際はオンラインアカウントのパスワードになるので今ここで厳密にパスワードを考える必要はないのだ...
空欄のまま次へを押下
- 最終のOS設定に入るのでまた暫し待つ
- Windowsアップデートをするためネットワーク接続を有効にする
再び設定を開く
仮想スイッチを「Default Switch」に戻してOKボタン押下 - 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が見えていれば正常です
ここまで来たらもう少しです - VMのGPU-Pに対応したドライバを入れる
通常ならGPUベンダーのサイトに行ってドライバインストーラーをダウンロードするのですが、GPU-PではVMをホストしてるPCのドライバを丸ごとコピーして持ってくる必要があります
その下準備をVM上でします
さらに「HostDriverStore」の配下に「FileRepository」フォルダーも作ろう
(途中の警告画面は「はい」で進める) - VMは通常のWindowsシャットダウンを実施
- PC上で ディスクの管理を開く
- 操作メニューから「VHDの接続」を選択
- 場所はVMの「仮想ハードディスク」で確認できるので
そのVHDXファイルのパスをコピーする
- 先ほどのウィンドウにVHDXのパスを入力してOK
正常に接続されればドライブが増える
今回はEドライブとして進める - PC上でEドライブを開き
「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にフォルダごとコピーします - ディスクの管理から「VHDの切断」を実施
- では改めてVMを起動してみます
初回起動時は稀にHyper-Vの起動画面から進まないことがある
その場合は「停止」で強制的にシャットダウンをし、数秒置いてから再度起動してみてください
それでも起動しない場合は、下記を実施してください- GPU-Pの割り当てを解除
こちらを管理者権限のPowerShellで実施すると解除できる
- VM起動
- VMシャットダウン
- GPU-Pの割り当て実施
- GPU-Pの割り当てを解除
- 問題なく起動するとWindows画面になります
- デバイス マネージャーを開いて「ディスプレイ アダプター」に警告がないことを確認します
仮想オーディオドライバ(VB-CABLE)の導入
- オーディオデバイスが無いと動かない一部のゲームがあるため
有名どころのVB-CABLEを入れます
なお、あくまでゲーム起動させる為だけに入れており音は出ません
- Edge開いて「VBCABLE_Driver_Pack43.zip」をダウンロード
- ZIPファイルを展開し、「VBCALE_Setup_x64.exe」を管理者として実行
- これにて完了です