なかなか消えない亀アイコン
さまざまなOSで開発やテストを行うため、仕事では仮想マシンを活用しています。
私のシステム開発環境では、Windows11をホストOSとして、Windows7やLinuxなどをゲストOSとしてVirtualBox上で動作させています。
仮想マシンの利点は、物理マシンを増やさずに複数の検証環境を構築できること、そして新しいPCへの移行も容易な点です。
通常であれば、新しいPCへ仮想化ソフトウェアをインストールし、仮想マシンのイメージファイルをコピーするだけで引っ越しできます。
ところが今回、PCの引っ越し後にVirtualBoxの仮想化支援機能(VT-x/AMD-V)が無効化されるという問題に遭遇しました。
同様の事例はネット上でも多く報告されているようなので、今回はその原因と解決方法をまとめました。
■発生環境
ホストOS:Windows 11 24H2
仮想化ソフトウェア:Oracle VirtualBox
■問題の症状
仮想マシンを起動すると、仮想化支援(ネステッド VT-x/AMD-V)がグレーアウトして有効化できない状態になりました。
その結果、仮想マシンがCPUのソフトウェアエミュレーションで動作し、パフォーマンスが著しく低下していました。
※ VirtualBoxでは、ステータスバーに「亀のアイコン(低速モード)」が表示されるのが特徴です。
■ 一般的に紹介されている対処法(未解決だった手順)
同様の問題に対して、多くのWebサイトでは次の1~3の手順が紹介されています。
1.BIOS設定の確認
仮想化機能(Intel VT-x / AMD-V)が有効になっていることを確認します。
2.Windowsの仮想化関連機能を無効化
VirtualBoxとWindowsの仮想化機能は競合するため、以下の機能を「Windows の機能の有効化または無効化」からオフにします。
・Hyper-V
・Linux 用 Windows サブシステム
・Virtual Machine Platform
・Windows ハイパーバイザープラットフォーム
3.Windowsセキュリティの設定変更
[設定] → [プライバシーとセキュリティ] → [Windows セキュリティ] → [デバイス セキュリティ] → [コア分離の詳細] に進み、「メモリ整合性」をオフに設定します。
■ 実際に問題を解決した手順
上記1~3をすべて確認しても改善せず、最終的に原因はWindows Helloによるものでした。
4.Windows Helloの無効化
Windows Helloは、生体認証やPINによるサインインを提供する機能ですが、
この機能が内部的に「仮想化ベースのセキュリティ(VBS)」を有効化しており、VirtualBoxのVT-xと競合していました。
レジストリで明示的にWindows Helloを無効化することで、仮想化支援機能が正常に有効化され、問題は解消しました。
レジストリエディタを起動し、以下のキーに移動します。
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\DeviceGuard\Scenarios\WindowsHello
「Enable」という DWORD 値を新規作成または編集し、値を 0 に設定します。
※ 生体認証やPINでログインしている場合、この設定変更によってサインインできなくなる可能性があります。事前に生体認証等によるログインを削除してから実施してください。
※ レジストリの変更はシステムに影響を及ぼすため、自身の責任において変更してください。
VirtualBoxで仮想化支援機能が無効になる場合、一般的にはHyper-V周りの設定を見直すのが定石ですが、Windows Helloの影響は意外と盲点です。
