はじめに
仮想マシンの中でさらに仮想化したホストを ネストされた仮想環境(nested virtualization) と言うらしいです
(わからなくて検索苦労した…)
前提条件
環境
- ホストOS: Windows10
- ゲストOS: ubuntu 24.04
- 仮想化ソフトウェア:Oracle Virtual Box
作業
仮想環境(ubuntu)の初期設定が完了していること
イメージ図
仮想化可能かチェック
- ubuntu上で実行
仮想化できるかのチェックするツールインストール
$ sudo apt install cpu-checker
これならOK
$ kvm-ok
INFO: /dev/kvm exists
KVM acceleration can be used
これだと仮想化できない
INFO: Your CPU does not support KVM extensions
KVM acceleration can NOT be used
これでもチェック可能。0だと仮想化不可
$ egrep -c '(vmx|svm)' /proc/cpuinfo
仮想化できるようにする
- ubuntuの電源を落とす
- VMマネージャーからubuntuの設定を開く
- システム > プロセッサーから以下をチェックする
- PAE/NXを有効化
- ネステッドVT-x/AMD-Vを有効化
- チェックできない場合は下に記載
ネステッドVT-x/AMD-Vを有効化がチェックできない場合
- powershellで実行
以下を実行する。仮想環境名は自分が付けた名前
VBoxManage.exeの場所はデフォルトでインストールした場所なので違う場所にインストールした場合は変更する
$ & 'C:\Program Files\Oracle\VirtualBox\VBoxManage.exe' modifyvm '仮想環境名' --nested-hw-virt on
仮想可能かもう一度チェック
- ubuntuで実行
$ kvm-ok
まだ仮想化が不可の場合
- windowsの hyper-vを無効にして再起動
Hyper-Vの有効化方法
WinsowsでWSL/WSL2のUbuntuを使ってる場合は必ず有効になってます。
hyper-vを無効にするとwslを使えなくなるので注意
参考