Как запустить 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

вdmesgHyper-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>)

Другие вопросы по тегам