結論
現時点(2019/10/11)、Zen系(AMD)のCPUだと、Hyper-Vを有効にするとVirtualBoxでVMが起動しない。
環境
VirtualBox 6.0.12
OS: Windows10 Pro 18362
CPU: Ryzen 9 3900X
MB: PRIME X570-PRO
BIOS: 1201(AGESA 1.0.0.3ABBA)
メモリやグラボなどは影響がないので割愛。
2019/10/11時点で最新の状態です。
具体的に何がどうだったのか
Hyper-Vを有効にする前に、BIOS画面でSVM ModeがEnableになってることを確認しています。
タスクマネージャーのパフォーマンスのCPUのところで、「仮想化: 有効」となってるのも確認しています。
また、HWiNFOでAMD-Vが有効化(緑色)ことも確認しています。
この状態で、VirutalBox上でVM(CentOS8 64bit)が起動することは確認しています。
Hyper-Vを有効後、念のためにVirtualBoxを再インストール(リペア)を行ってます。
もちろんBIOSは変更していないので、SVM ModeがEnableのままの状態です。
タスクマネージャーでも、「仮想化: 有効」のままです。
ただし、HWiNFOではAMD-Vが非サポート状態(灰色、ただし無効化なら赤色)になっていました。
これはおそらく、Hyper-Vになってると、AMD-Vではアプリ側から仮想化関連のAPIが触れなくなってるからかなと思います。
で、VirutalBoxでVMを起動しようとすると、すぐに「AMD-V is not available」とエラーになります。
これはHWiNFOと同じ状態なのかなと思います。
VirutalBoxのVMの設定の「アクセラレーション」に準仮想化インターフェースを選べたり、「VT-x/AMD-V有効化」のチェックボックスがあるので、設定を変えてみてみましたが有効ではなかったです。
ひょっとすると、32bit OSなら「VT-x/AMD-V有効化」をオフにするのは有効だったかもしれませんが、それで動作したとしてもさすがに使い物にはならないので、試していないです。
なので、VirutalBox側なのか、Windows側かどっちなのかわかりませんが、現状のままではZen系のCPUだと起動しないです。
試したのはZen2ですが、Zen(1000番台)のCPUでも同様の症状の人がいるので、エラーメッセージを鑑みても、Zen系全般だと思います。
https://forums.virtualbox.org/viewtopic.php?f=6&t=90853&start=90
一方、Intel CPUで動いたという報告があるそうですが、全部が動くわけでもないっぽいので、まだまだこなれてない感じがします。
ちょっとした補足
このあとHyper-Vを無効化しても、VirtualBoxは「AMD-V is not available」のままでVMが起動してくれないです。
これは、HWiNFOで確認すればわかるのですが、なぜかAMD-Vが非サポート状態のままになってしまってるからです。
いったん再起動してBIOSからSVM ModeをDisableにしてOSを起動、そのあと再起動してBIOSでSVM ModeをEnableにすれば、先ほどのエラーは解消します。
なにかしらOS内の状態(レジストリ?)がHyper-Vを無効化しただけだと更新されないってのが原因なのかなと思いますが、Hyper-Vを頻繁に有効/無効にする人はあんまりいないので、ほとんど問題にならないってことなんでしょうね。
あと、BIOSからSVM ModeをDisableにした状態では、HWiNFOではAMD-Vが無効化(赤字)の状態になってるのを確認しています。
タスクマネージャーでも、「仮想化: 無効」「Hyper-vサポート: はい」が確認できます。
一方、今回触れなかったCPU-Zだと、このあたりが思った通りの情報が取れてなかったです。
おそらく、HWiNFOで色がつく(緑赤)かつかないか(灰)の違い、言い換えるとCPUがAMD-Vをサポートしてるかしていないか、が取れているっぽいです。
なので、CPU-ZでAMD-Vの表示があった場合でも、AMD-V自体は無効化の場合があるので、AMD-Vの確認にはちょっと向いていないなと思いました。