我在安装了 Ubuntu 20.04 的 Windows 10 机器上安装了 WSL 1。我的 CPU 支持硬件虚拟化。我按照此处的说明尝试安装 KVM,但是当我运行“virsh list --all”时,我得到了
error: failed to connect to the hypervisor
error: Failed to connect socket to '/var/run/libvirt/libvirt-sock': No such file or directory
的输出kvm-ok
是
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
那么,是不是因为 WSL 1 无法安装 KVM?kvm 只在 WSL 2 上可以吗?
不,KVM 是 Linux 内核特性,而 WSL1 没有 Linux 内核;它模仿Linux 内核,有点像 Wine 模仿 Windows 环境。您实际上无法将 Linux
.ko
模块加载到其中。这在 WSL2 中是可能的——理论上——因为 WSL2 运行真正的 Linux 内核并通过 Hyper-V 来实现,如果 CPU 也兼容,Hyper-V 支持“嵌套虚拟化”,这意味着 WSL2 VM 本身可以在内部运行更多 VM。然而,我不知道微软提供的标准 Linux 内核(你从未想过你会听到的词)是否在 KVM 支持下编译,但至少他们有编译自定义内核的说明。
也有可能以某种方式说服您的 libvirtd在 Windows 上运行 Qemu,因为 Qemu 实际上支持通过 Windows Hypervisor 平台(相当于 Windows 的 KVM)运行 VM,因此您可以在
qemu.exe -accel whpx
没有它们的情况下并行运行 WSL2矛盾的。(当然,Windows 上的 Qemu 也可以将英特尔 HAXM 管理程序与
-accel hax
.) 一起使用。)(也许 WSL1 可以在 Windows Hypervisor 平台方面实现 /dev/kvm API,但它没有这样做,而且鉴于 WSL2 的重点,我认为它不会获得任何新功能。)