Как запустить KVM, вложенный в WSL2 (или vmware)?
Я пытаюсь следовать этому руководству, чтобы запустить KVM, вложенный в WSL 2 , но после выполнения инструкций по компиляции ядра и его загрузке тестkvm-ok
сообщает, что KVM не поддерживается.
Я пробовал несколько вариантов: включение Hyper-V, его отключение, проверка поддержки BIOS/ЦП, включение/отключение Device Guard, другие шаги в некоторых документах vmware (bcdedit/set Hypervisorlaunchtype, подпараметры в разделе gpedit/DeviceGuard).
Когда я отключаю Hyper-V, отключаю тип запуска гипервизора и отключаю Device Guard, в информации о системе я получаю следующие параметры, но затем wsl2 вообще не запускается, говоря: «Пожалуйста, включите функцию Windows платформы виртуальных машин и убедитесь, что виртуализация включена». включено в BIOS».
В любой другой конфигурации, которую я пытаюсь использовать, информация о системе сообщает, что гипервизор работает, и не отображает значения Hyper-V, но в конечном итоге я сталкиваюсь с первоначальной проблемой: KVM не поддерживается в WSL2. Кроме того, если я попытаюсь включить «Виртуализацию Intel VT-x/EPT» в VMWare Player, он также не запустится.
Отступим назад: в конечном итоге я пытаюсь запустить демо-версию фейерверка на своем ноутбуке с Windows. Так что, если есть более простой способ сделать это, то lmk.
Обновлять
Я заметил, что это работает в VMWare Player с образом Ubuntu. Или, по крайней мере, kvm-ok сообщает, что он включен, /dev/kvm существует. Я все равно предпочитаю использовать WSL2. Но он отказывается загружаться.
2 ответа
Я предпринял те же шаги, что и вы, и получил
[ 0.330695] kvm: no hardware support
[ 0.330696] kvm: no hardware support
вdmesg
Hyper-V включен, а в BIOS включены технология виртуализации и функции VT-d.
После того, как я включил платформу гипервизора Windows, я наконец получил
[ 0.193019] KVM: vmx: using Hyper-V Enlightened VMCS
[ 0.195115] kvm: already loaded the other module
Во многих руководствах, которые я читал, WSL требует платформы виртуальных машин. Но одного этого мне было недостаточно. По какой-то причине это сработало только тогда, когда я отметил Hyper-V, платформу виртуальных машин и платформу гипервизора Windows.
Вы можете попробовать следующее руководство, чтобы включить вложенную виртуализацию WSL2 в win10 pro/enterprise (обратите внимание на отказ от ответственности, возможно, вам следует сделать резервную копию своих дистрибутивов с помощью wsl --export):
https://gist.github.com/xtrnc/496da9243bab29629bc0461562bff458
На моей Win10 (сборка 19043.1348) все работало. Вам, вероятно, не понадобится компилировать ядро, если вы обновили Windows (именно так сейчас обновляется ядро Linux).
Если вы можете обновить свою ОС, вы также можете попробовать это. Он должен быть включен по умолчанию в Win11 (вместе с WSLg).
Примечание: если вы будете следовать инструкциям, скрипт будет необходимо запускать при каждом перезапуске; также необходимо добавить вашего пользователя в группу KVM для получения разрешений (в Ubuntuusermod -a -G kvm <USER>
)