Windows11:Hyper-VでHyper-V?
仮想化は色々便利!それなら...
色々なOSやソフトのお試し環境として、仮想化環境はとても便利なものです。
当Webでも、お試し記事は、仮想化環境で試してアップしております。
ここで、ふと思ったのが、仮想化環境内で仮想化環境のお試し記事を書く時は、、、
はて、仮想化環境内で仮想化環境は作れるのか???
仮想化の仮想化(入れ子・ネスト)なんだか、頭が混乱しそうですが。。。
そこで、Google先生に。。。
仮想化の入れ子(ネスト)って出来るの?
Hyper-V環境でも出来る事がわかりました!
詳細は、以下のURLをご確認くださいませ。
『入れ子になった仮想化による仮想マシンでの Hyper-V の実行』
https://docs.microsoft.com/ja-jp/virtualization/hyper-v-on-windows/user-guide/nested-virtualization
という事で。。。
Windows11 Hyper-V で、仮想化の入れ子(ネスト [nested virtualization])をやってみる!
ここからは、Windows11 Proの物理マシン上に、既にHyper-V環境を構築し、Windows11 Proの仮想マシンが作られているところからのお話になります。
Windows11 Proの仮想マシンの名称は、TESTPC01 とします。
この、TESTPC01に、Hyper-V環境が作れるのか?のお話です。
※Hyper-V環境の構築につきましては、当Webの、『仮想化コトハジメ』の一連の記事をご確認ください。
まず、仮想マシン(ここではTESTPC01)では、通常、Hyper-Vの設定は不可となっております。
「Windowsの機能の有効化または無効化」ウィンドウ(ダイアログ)の、『Hyper-V Hypervisor』項目に、✔ が入れられない(灰色)状態となっております。
前出の『入れ子になった仮想化による仮想マシンでの Hyper-V の実行』に書かれている、おまじない?(コマンド)を実行します。
① Set-VMProcessor -VMName [vmname] -ExposeVirtualizationExtensions $true
② Get-VMNetworkAdapter -VMName [vmname] | Set-VMNetworkAdapter -MacAddressSpoofing On
※ [vmname] は、対象の仮想マシン名を設定します。
物理マシンのHyper-V環境で構築された、仮想マシン(この中でHyper-Vを動かす)。
例では、TESTPC01 とします。
つまり、
① Set-VMProcessor -VMName TESTPC01 -ExposeVirtualizationExtensions $true
② Get-VMNetworkAdapter -VMName TESTPC01 | Set-VMNetworkAdapter -MacAddressSpoofing On
コマンド実行は、PowerShell となりますが、
ここでは、「Windowsターミナル」を使用しますので、以下の手順となります。
スタートボタンをマウス右クリック(右です!)
Windows ターミナル(管理者)をマウス左クリック(管理者です!)
※ 通常(管理者なし)のWindows ターミナル では、権限なしでエラーとなります。
ここで前出の、①のコマンドを入力(コピペ)し、「Enter」。
Set-VMProcessor -VMName TESTPC01 -ExposeVirtualizationExtensions $true
何もエラーが出なければ、OK。
※仮想マシン名:TESTPC01 は、適宜変更ください。
続けて、
ここで前出の、②のコマンドを入力(コピペ)し、「Enter」。
Get-VMNetworkAdapter -VMName TESTPC01 | Set-VMNetworkAdapter -MacAddressSpoofing On
何もエラーが出なければ、OK。
※仮想マシン名:TESTPC01 は、適宜変更ください。
コマンド実行後の、「Windowsの機能の有効化または無効化」ウィンドウ(ダイアログ)を確認しますと、『Hyper-V Hypervisor』項目に、✔ が可能となり、Hyper-Vの設定が出来る様になりました。
ここから先、Hyper-V環境の構築につきましては、当Webの、『仮想化コトハジメ』の一連の記事をご確認ください。
この流れで、問題無く出来ました。
ここで、ザックリとしたコマンドの意味ですが、
①の、 Set-VMProcessor -VMName [vmname] -ExposeVirtualizationExtensions $true
②の、 Get-VMNetworkAdapter -VMName [vmname] | Set-VMNetworkAdapter -MacAddressSpoofing On
は、入れ子で作成する仮想マシンのネットワーク通信を可能とするコマンド
(MACアドレスが上手く自動設定される)
です。
前出『入れ子になった仮想化による仮想マシンでの Hyper-V の実行』の
「ネットワーク アドレス変換 (NAT) 」については、今回の様なパソコン環境では考慮しなくても良いと思います。
難しいので。。。
なお、余談ですが、
当サイトの「仮想化コトハジメ」の一連の記事は、上記設定の仮想化の入れ子環境で試しております。
その為、物理マシン上の仮想マシンと、見た目や説明などが、微妙に異なる所があるかもしれませんが、アシカラズ。。。
仮想化の入れ子環境が問題無く動いている事の証明にはなっているかと。。。
現環境 : OS Windows 11 Pro バージョン 21H2