🐥

Hyper-Vの仮想マシンでも仮想化を利用する

2023/01/06に公開

はじめに

Hyper-V上の仮想マシンでDocker Desktopを使いたかったので、WSL2インストールしたらエラーになりました。ちなみに仮想マシンにHyper-Vを追加することもできません。

  • WSL2のインストールでエラーになる

    Installing, this may take a few minutes...
    WslRegisterDistribution failed with error: 0x80370102
    Error: 0x80370102 ??????????????????????????????????????
    
    Press any key to continue...
    
  • 仮想マシンにHyper-Vは追加できない

仮想化機能を仮想マシンでも利用できるように入れ子の設定が必要でしたので、その手順をまとめました。

仮想化機能を有効にする

  1. Hyper-Vのサーバ(ホスト側)でPowerShellを管理者モードで起動し、次のコマンドを実行します。"<VM名>"は仮想化機能を有効にしたい仮想マシン名を入力してください。
    > Set-VMProcessor -VMName <VM名> -ExposeVirtualizationExtensions $true
    
  2. 次のコマンドで仮想化機能が有効になったことを確認できます。
    > Get-VMProcessor -VMName * |ft VMName,ExposeVirtualizationExtensions
    
    VMName     ExposeVirtualizationExtensions
    ------     ------------------------------
    VM名                                 True
    
  3. WSL2のインストールもHyper-Vの追加もできるようになります。
    • WSL2のインストールが成功する

      Installing, this may take a few minutes...
      Please create a default UNIX user account. The username does not need to match your Windows username.
      For more information visit: https://aka.ms/wslusers
      Enter new UNIX username:
      
    • Hyper-Vを追加できる

仮想化機能を無効にする

  1. 次のコマンドを実行することにより、仮想化機能が無効になります。
    > Set-VMProcessor -VMName <VM名> -ExposeVirtualizationExtensions $false
    

Discussion