
Ich habe WSL 1 auf meinem Windows 10-Rechner installiert, auf dem Ubuntu 20.04 installiert ist. Meine CPU unterstützt Hardwarevirtualisierung. Ich habe die Anweisungen befolgtHierum zu versuchen, KVM zu installieren, aber wenn ich "virsh list --all" ausführe, bekomme ich
error: failed to connect to the hypervisor
error: Failed to connect socket to '/var/run/libvirt/libvirt-sock': No such file or directory
Die Ausgabe von kvm-ok
ist
INFO: /dev/kvm does not exist
HINT: sudo modprobe kvm_intel
modprobe: FATAL: Module msr not found in directory /lib/modules/4.4.0-17134-Microsoft
Liegt es also daran, dass WSL 1 KVM nicht installieren kann? KVM ist nur auf WSL 2 in Ordnung?
Antwort1
Nein. KVM ist eine Funktion des Linux-Kernels und WSL1 hat keinen Linux-Kernel. Esimitiertein Linux-Kernel, der ähnlich wie Wine die Windows-Umgebung imitiert. Sie können keine Linux- .ko
Module darin laden.
DasMaiin WSL2 möglich sein – theoretisch – da WSL2 einen echten Linux-Kernel ausführt und dies über Hyper-V tut, das „verschachtelte Virtualisierung", wenn die CPU auch kompatibel ist, was bedeutet, dass die WSL2-VM selbst weitere VMs ausführen könnte. Ich weiß jedoch nicht, ob der von Microsoft bereitgestellte Standard-Linux-Kernel (Worte, von denen Sie nie gedacht hätten, dass Sie sie hören würden) mit KVM-Unterstützung kompiliert ist, aber es gibt zumindest Anweisungen zum Kompilieren eines benutzerdefinierten Kernels.
Es könnteAuches möglich sein, Ihre libvirtd irgendwie davon zu überzeugen, Qemu auszuführenunter Windows,da Qemu tatsächlich das Ausführen von VMs über die Windows Hypervisor Platform (das Windows-Äquivalent von KVM) unterstützt, können Sie WSL2 und qemu.exe -accel whpx
nebeneinander ausführen, ohne dass es zu Konflikten kommt.
(Natürlich kann Qemu unter Windows auch den Intel HAXM-Hypervisor mit verwenden -accel hax
.)
(Vielleicht könnte WSL1 die /dev/kvm-API im Hinblick auf die Windows Hypervisor Platform implementieren, aber das tut es nicht, und ich glaube nicht, dass es angesichts des Schwerpunkts auf WSL2 neue Funktionen erhalten wird.)