Windows 10 Device Guardがかかっている環境でVirtualBox VMを起動出来ないのを回避した件。

Windows 10 Enterpriseの強力なセキュリティ機能の一つであるDevice Guardがオンになっている環境だと、VirtualBoxで仮想マシンを作成後起動するときに以下のようなメッセージを吐いて起動しなくなりました。

Call to WHvSetupPartition failed: ERROR_SUCCESS (Last=0xc000000d/87) (VERR_NEM_VM_CREATE_FAILED).
終了コード : E_FAIL (0x80004005)
コンポーネント: ConsoleWrap
インターフェース: IConsole {872da645-4a9b-1727-bee2-5585105b9eed}

巷のブログを見ていると、基本的にはHyper-Vを止めれば良いよ、という情報が多いですが某環境だとグループポリシーでガチガチに固まっている模様。

で、解決策ですが、ゲストOSが32bitでも良ければ以下のやり方。

仮想マシンのアクセラレーションから、「仮想化支援機能」の”ネステッドページングを有効化”をオフにする。

これで、Device Guardが行うIntegrity Checkが禁止しているNested Virtualizationの動作をしなくなるので、VirtualBoxの仮想マシン起動が邪魔されずに済むというわけ。

もちろんハードウェアによる仮想化支援が働かなくなるので、特にメモリ周りのアクセスが遅くなるけども諦めるべし。