永遠に未着手です。

not yet started

Windows11 + Hyper-V(GPU-P)で始めるVM環境

目次

ゴール

VM環境内でGPU利用するアプリケーションを快適に動作させることを目的とします

MMO: Ragnarok Onlineを起動

この記事の読者ターゲット

  • パソコン(以下PC)についてスキルがある(用語等を理解し操作できる)
  • 仮想マシン(以下VM)上でGPUを利用したアプリケーションを使いたい
  • PCにWindows 11 "Pro" のOSを利用している
    (HomeでもHyper-Vを利用できるらしいが、ここでは説明しません)
  • PCスペックが下記を満たすこと
    • CPU仮想化機能が利用できる
      →タスクマネージャーのパフォーマンスCPUで仮想化:有効であればOK

      仮想化 : 有効 となっているところがポイント
    • CPUコアが4コア以上あること
      VMに2コア利用します
    • メインメモリが16GB以上あること
      VMに8GB利用します
    • 十分なSSD/HDD空き容量があること
      →作業考えると30GBくらいの空き容量は欲しい
    • GPUに「AMD RADEON」または「NVIDIA GeForce」シリーズを搭載している
      GPUは1台だけでもOK
       「Intel Arc」シリーズは実施したことないので不明
  • 長期間にわたって利用する場合は、VM用にWindows11のライセンスを購入できる
    →Pro, HomeどちらでもOK

ではやっていきましょう

 

読者ターゲットではない人はうまい棒でも食ってろ!

www.yaokin.com



Hyper-Vの有効化

  1. 管理者としてPowerShellを起動
  2. 次のコマンドを実行
    Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Hyper-V -All
    コマンドが見つからなかった場合は、管理者として PowerShell を実行していることを確認してください

  3. PCを再起動する

Windows11インストールイメージの取得

  1. Windows11のディスクイメージ(ISO)をダウンロードする
    適当なブラウザで下記URLを開く

    www.microsoft.com

  2. Windows 11 (multi-edition ISO)」を選択

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

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

    やっとISOのダウンロード

    この記事を書いてる時点で6.3GBあるから、少し待ってほしい
    まだまだ先は長いからな...

    なお自分は2分で終わった

Hyper-Vの設定

  1. Windowsアプリケーションから「Hyper-V マネージャー」を開く

  2. 右の操作メニューにある「Hyper-Vの設定」を押下
    サーバー「拡張セッションモード ポリシー」にある
    「拡張セッション モードを許可する」のチェックを外し適用

    一旦適用ボタンの押下忘れずに

  3. 続いて
    ユーザー「拡張セッション モード」にある
    「拡張セッション モードを使用する」のチェックを外しOK

    こっちも無効に

    OKボタンを押下して閉じる

仮想マシン(VM)の作成

  1. Windowsアプリケーションから「Hyper-V マネージャー」を開く

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

    最初はこんな画面になるはず


  3. 「ローカル インストール元」を選択する

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

    ISOファイルを選択後


  5. 名前を付けてやる
    なお後ほどこの名前を指定して設定するので英語の名前にしておこう
    ここでは「SUBVM1」として進める

    英語にしとくと後々コマンドで呼び出すの便利なのよな



  6. あとは「仮想マシンの作成」ボタンを押下すると爆速でVMが作成される

    まだWindows11 OSはインストールされてないから注意


  7. 「設定の編集」ボタンを押下する
    Windows11 & GPU-Pを有効化するのに何点か設定が必要なので順に説明する

    設定画面


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

    TPMを有効にするをチェック


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

     

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

    とりあえず2以上あればいいよ

    初期設定だと仮想プロセッサがPCの半分入っており、大量にCPUを食われるので適度な値にしよう

  11. 「チェックポイント」の設定で
    「チェックポイントを有効にする」のチェックを外す

    こいつが有効だとGPU-Pが使えない
  12. 最後に「OK」ボタンを押下し、設定を保存する

 

VMへWindows11 OSインストール

  1. VM「SUBVM1」をダブルクリックし開く

    オフ状態(停止中)ならこの画面

     



  2. 起動ボタンを押下し、立ち上げる
    ほぼ同時に速攻何かのキーを押してISOファイルからブートさせる
    「>>>Start PXE over IPv4.」と表示されたらブート失敗!
    もうちょっと手心が欲しいですね

    本当にキー押す時間みじけぇんだよ!!!
    なお、このスクリーンショット撮るために5回ほどリセットした

    ブート失敗した方は操作メニューから「リセット」しましょう

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

    次へ

    今すぐインストール



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

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

    自分はWindows11 Proのライセンス所有してるので...


  6. ライセンス条項...を読んだら
    同意にチェックを入れて次へを押下

    読みましょうね


  7. Windowsクリーンインストールするので
    下のカスタムを選択

    カスタムを選択


  8. インストール場所を聞かれるが、良しなにしてくれるので次へを押下

    このまま次へを選択すると自動で良しなにしてくれる


  9. インストールが開始するのでしばらくは待機

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

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

    えっ?なんでと思うが、とりあえずシャットダウンしてほしい

    このまま普通に進めることもできるが、その場合は
    個人設定で「Microsoft オンラインアカウント」が必須になる
    これを回避するにはネットワーク接続を切断しないといけないのだ

    オンラインアカウント持ってるよって人も最初はオフラインアカウントを
    作るのがいい
    何故ならオンラインアカウントの入力した先頭5文字だけが
    自身のフォルダ名として作られるのだ!
    なんでメールアドレス全部のフォルダ名じゃないんだよ!

  12. シャットダウンした後、ネットワーク接続を切断すべく設定

    設定をセンターに入れてクリック!
  13. ネットワークアダプターの仮想スイッチを「接続されていません」にして

    OKボタンを押下して閉じる

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

    はい

     

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

    召喚!

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

    oobe\BypassNRO.cmd

     

    再起動


  16.  再起動したらセットアップを進めます

    Japan!

    はい

    スキップ!
  17. ネットワークに接続しましょう と出るが、
    先ほどネットワーク アダプターを切断したため、ここは

    「インターネットに接続していません」を選択しよう

    時には嘘も必要なのだよ

    「制限された設定で続行」を選択

    制限有で

     

  18. バイス利用者の設定になるので適当なユーザ名を入力

    好きなユーザ名を入れるとよい


    理由もあるんだが本運用する際はオンラインアカウントのパスワードになるので今ここで厳密にパスワードを考える必要はないのだ...
    空欄のまま次へを押下

    パスワードは空欄!!!

     

    プライバシー設定を聞かれるが、検証用に使うので全部OFFにして同意

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

    Hello, Windows

    待ーつわ

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


    仮想スイッチを「Default Switch」に戻してOKボタン押下

    これでネットワーク接続可能に戻る
  21. Windows Updateをして最新の状態にしよう

    「設定」を開こう

    Windows Updateにいくつかインストール可能なものがある

    最新の状態 ヨシッ
  22. ここで普通のWindows 11インストールまでが完了

    一旦お疲れさまでした

  23. 次に進むため、通常のWindowsシャットダウンをしてください

VMGPU-Pを割り当てる

やっとメインが来た...

  1. 私のGitHubリポジトリからGPU-Pを有効化するためのPowerShellスクリプトをダウンロードする

    github.com

  2. ダウンロードしたGPU-P_enable.ps1をメモ帳等のテキストエディタで開く
    変更が必要な個所があります
    1. vm (仮想マシン名) 
      VMの名前に書き換え
    2. gpu_name (GPU名)
      →使用ているGPUベンダーに変更
       AMD RADEONなら「AMD RADEON*」
       NVIDIA GeForceなら「NVIDIA GeForce*」
      (最後に*を忘れずに 前方一致で探します)

  3. PC上で管理者としてPowerShellを起動
  4. PowerShellにてGPU-P_enable.ps1を実行する
    (GPU-P_enable.ps1をダウンロードしたディレクトリで行ってください)
    VMへのGPU-P割り当てが成功すれば「Success」と表示されます

    成功した場合の例

    失敗したときには「ERROR」もしくは赤字が表示されるので切り分け調査してください

  5. 成功したら再度VMを起動し、デバイスマネージャーを開きましょう
    ディスプレイ アダプターにGPUが見えていれば正常です

    警告付だが、ここではAMD Radeonが生えた
    ここまで来たらもう少しです
  6. VMGPU-Pに対応したドライバを入れる
    通常ならGPUベンダーのサイトに行ってドライバインストーラーをダウンロードするのですが、GPU-PではVMをホストしてるPCのドライバを丸ごとコピーして持ってくる必要があります

    その下準備をVM上でします

    エクスプローラーを開きます

    「C:\Windows\Sytem32」 のフォルダを開きます

    新規作成で「フォルダー」を選択

    警告が出るが続行!

    はい

    この新しいフォルダーの名前を「HostDriverStore」に変更

    また警告出るが はい

    上手にできました

    さらに「HostDriverStore」の配下に「FileRepository」フォルダーも作ろう
    (途中の警告画面は「はい」で進める)

    「FileRepository」も作った
  7. VMは通常のWindowsシャットダウンを実施
  8. PC上で ディスクの管理を開く

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

    VHDの接続を選択

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

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

    こんな感じ

    正常に接続されればドライブが増える
    今回はEドライブとして進める

    ディスク2 が増え、Eドライブが認識された
  12. PC上でEドライブを開き
    Windows\System32\HostDriverStore\FileRepository」の空フォルダに移動する

    Windows\System32\HostDriverStore\FileRepository」まで移動


  13. このフォルダ内にGPU-Pに必要なドライバファイルをPCでコピーして
    入れる必要があるが、PC内には大量のドライバが存在しており探すのに苦労する
    よってPowerShellスクリプトで場所を特定することにした

    github.com

  14. PC上で管理者としてPowerShellを起動
  15. PowerShellにてGPU_Driver_list.ps1を実行する
    (GPU_Driver_list.ps1をダウンロードしたディレクトリで行ってください)
    検索結果が「InstalledDisplayDrivers」として表示されます
    (私の場合、AMDNVIDIAの2台GPUがあるので2行でてます)

    表示されるフォルダ名は環境によって変わります

    ここではAMD Radeonドライバーが1行目に入ってることが分かったので、
    該当のフォルダをEドライブのFileRepositoryにフォルダごとコピーします

    「u0398229.inf_amd64_d2c627a9878b9758」フォルダごとをコピーした
  16. ディスクの管理から「VHDの切断」を実施

    忘れるとVMが起動できないので忘れずに切断しよう

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

      github.com

    2. VM起動
    3. VMシャットダウン
    4. GPU-Pの割り当て実施
  18. 問題なく起動するとWindows画面になります

    分かる人にはわかる 下のタスクバーが透けてることをッ...!


  19. バイス マネージャーを開いて「ディスプレイ アダプター」に警告がないことを確認します

     

    ヨシッ!

仮想オーディオドライバ(VB-CABLE)の導入

  1. オーディオデバイスが無いと動かない一部のゲームがあるため
    有名どころのVB-CABLEを入れます
    なお、あくまでゲーム起動させる為だけに入れており音は出ません

    vb-audio.com

  2. Edge開いて「VBCABLE_Driver_Pack43.zip」をダウンロード

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

    管理者として実行を忘れずに

    はい

    Install Driver

    インストール

     

    完了したらOK
    ブラウザが開くが速攻閉じる(宣伝)
  4. これにて完了です

全体を通して

  • 手順を作りながらだったので、2時間ほど掛かりましたが
    慣れてネット環境も問題なければ1時間も掛からずセットアップが終わります
  • 性能的にフル3Dゲームは厳しいですが、ROくらいなら余裕で動きます
  • 私は試したことないですが、VMの数を増やしてもCPU/メモリ/GPUリソースに空きがあれば増やせるかと
  • 質問があればコメントよろしく
    ゲーム運営サポートには聞かないよう注意(サポート対象外と言われます)