【劇的改善】VirtualBoxが重い・遅い原因は「Hyper-V」だった!完全無効化する手順【Windows 11 25H2】

Windows

皆さん、VirtualBoxで仮想環境を整えようとした際に、こんな絶望的な状況に陥っていませんか?

  • 「OSのインストールに8時間以上かかった」
  • 「ディスクアクセスがやけに遅い」
  • 「Windows XPなどの古いOSがあまりにも動きが遅くて使い物にならない」

「マシンスペックは十分なはずなのに、なぜ?」と首を傾げたくなりますよね。 実はこれらを引き起こしている真犯人が、Windowsの機能である「Hyper-V」と「仮想化ベースセキュリティ(VBS)」なのです。

今回は、Windows 11 25H2環境において、この問題を解決しVirtualBox本来の速度を取り戻すための設定方法をご紹介します。


なぜHyper-Vが邪魔をするのか?

結論から言うと、「仮想化機能の取り合い」が起きているからです。

VirtualBoxは本来、CPUの仮想化支援機能(VT-x/AMD-V)を直接使って高速に動作するように設計されています。しかし、Windowsの「Hyper-V」や「VBS(仮想化ベースセキュリティ)」が有効になっていると、Windows自身がすでにその仮想化機能を占有してしまいます。

その結果、VirtualBoxは「NEM (Native Execution Module)」というモードへのフォールバックを余儀なくされます。ログに以下のような記述があれば、まさにその状態です。

source HMR3Init: Attempting fall back to NEM (Hyper-V is active)

これは言わば、「VirtualBoxが、Hyper-Vという別の仮想マシンの上で動いている」ような状態(入れ子構造)になるため、オーバーヘッドが非常に大きく、劇的な速度低下(特に古いOSやディスクI/O)を招くのです。

これを解消するには、VBSとHyper-Vを徹底的に無効化する必要があります。


Hyper-Vを無効化してVirtualBoxを高速化する

以下の4つのステップで設定を行います。 ※レジストリ操作を含みますので、自己責任で慎重に行ってください。

グループポリシーでVBSを無効化

まず、OSのポリシー設定でVBSを止めます。

  1. Win + R キーを押し、gpedit.msc と入力して実行します。
  2. 以下のパスへ進みます。 コンピューターの構成 > 管理用テンプレート > システム > Device Guard
  3. 「仮想化ベースのセキュリティを有効にする」をダブルクリックします。
  4. 「無効」に設定し、OKをクリックします。

コマンドプロンプトで設定変更

管理者権限でコマンドプロンプトを開き、ハイパーバイザーの起動設定と機能の無効化を行います。以下のコマンドを1行ずつ実行してください。

bcdedit /set hypervisorlaunchtype off
bcdedit /set vsmlaunchtype Off
DISM /Online /Disable-Feature /FeatureName:Microsoft-Hyper-V

レジストリでCredential Guardを無効化

セキュリティ機能の一部であるCredential Guardも無効化します。

  1. Win + R キーを押し、regedit と入力して実行します。
  2. 以下のアドレスへ移動します。 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\DeviceGuard\Scenarios\CredentialGuard
    ※存在しない場合は作成してください。
  3. Enabled というDWORD値を探し、値を 0 に設定します。

PCの再起動

すべての設定が完了したら、Windowsを再起動してください。 これでVirtualBoxを起動し、仮想マシンの動作を確認してみましょう。これまでとは比べ物にならないほど軽快に動作するはずです(VirtualBoxのウィンドウ下部に表示される亀のアイコンが消え、青いVアイコンなどに変わっていれば成功です)。

もしすべてを試して駄目だったら?

ブートローダーがあるパーティションをX:にマウントして、一行ずつ管理者権限のコマンドプロンプトで実行してください。

copy %WINDIR%\System32\SecConfig.efi X:\EFI\Microsoft\Boot\SecConfig.efi /Y
bcdedit /create {0cb3b571-2f2e-4343-a879-486aa66e1aa5} /d "DebugTool" /application osloader
bcdedit /set {0cb3b571-2f2e-4343-a879-486aa66e1aa5} path "\EFI\Microsoft\Boot\SecConfig.efi"
bcdedit /set {bootmgr} bootsequence {0cb3b571-2f2e-4343-a879-486aa66e1aa5}
bcdedit /set {0cb3b571-2f2e-4343-a879-486aa66e1aa5} loadoptions DISABLE-LSA-ISO,DISABLE-VBS
bcdedit /set {0cb3b571-2f2e-4343-a879-486aa66e1aa5} device partition=X:

再起動直後に黒い画面(またはメーカーロゴ画面)で、「Credential Guard / VBS を無効にしますか?」という英語のメッセージ(「Press F3 to disable…」や「Win key to confirm…」など)が出ます。Winキーを押して無効化しましょう。

私はこの方法で無効化出来ました。


参考:VBSを再度有効に戻す方法

セキュリティ上の理由などで、設定を元に戻したい(Hyper-V環境に戻したい)場合は、以下の手順を行ってください。

手順 1:グループポリシーを戻す

  1. gpedit.msc を開きます。
  2. コンピューターの構成 > 管理用テンプレート > システム > Device Guard > 「仮想化ベースのセキュリティを有効にする」 を開きます。
  3. 設定を 「未構成」 に戻します。

手順 2:レジストリキーの削除

以下のレジストリエントリが存在する場合は削除します。

  1. HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\DeviceGuard\Scenarios\KernelShadowStacks
  2. HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\DeviceGuard\Scenarios\HypervisorEnforcedCodeIntegrity
  3. HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\DeviceGuard 内の以下の値:
    • REG_DWORD EnableVirtualizationBasedSecurity
    • REG_DWORD Locked

手順 3:Credential Guardの有効化

  1. HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\DeviceGuard\Scenarios\CredentialGuard を開きます。
  2. Enabled の値を 1 に設定します。
    • "Enabled"=dword:00000001

コマンドプロンプトで機能を有効化

管理者権限のコマンドプロンプトで以下を実行します。

bcdedit /set hypervisorlaunchtype On
bcdedit /set vsmlaunchtype Auto
DISM /Online /Enable-Feature /All /FeatureName:Microsoft-Hyper-V

※最後のコマンドでHyper-V機能がインストール・有効化されます。

PCの再起動

再起動後、WindowsのVBSおよびHyper-V機能が再び有効になります。


まとめ

VirtualBoxでの検証環境作成において、Windows 11の強力なセキュリティ機能が逆に足かせになってしまうことがあります。

開発や検証でパフォーマンスが出ない時は、この「Hyper-Vの無効化」をぜひ試してみてください。

参照元:https://forums.virtualbox.org/viewtopic.php?p=546063#p546063

コメント

タイトルとURLをコピーしました