WSL2 对我来说不起作用。虚拟化已在笔记本电脑 BIOS 和 VirtualBox VM 设置中启用。这是我的配置。
- 主机:Alienware17r3,Intel i7,32GB RAM
- BIOS:虚拟化已启用
- 操作系统:Ubuntu 18.04.5 LTS
- 虚拟机管理程序:Oracle VirtualBox 6.12r139181(Qt5.9.5)
- 虚拟机:Windows 10 家庭版 20H2 (19042.450)
- VM 设置已启用:系统->处理器->启用 PAE/NX 启用嵌套 VT-x/AMD-V
- Windows 设置 -> 可选功能 -> 更多
- Windows 功能:已选中
- 虚拟机平台
- Windows 虚拟机管理程序平台
- 适用于 Linux 的 Windows 子系统
最后尝试在 wsl2 中启动 Ubuntu 20.04 LTS:
WslRegisterDistribution failed with error: 0x80370102
Error: 0x80370102 The virtual machine could not be
started because a required feature is not installed.
Press any key to continue...
每次 Windows 更新后,我都尝试过多次在 Windows 上的 WSL2 中运行 docker。BIOS 和 OracleBox Windows10 VM 中启用了虚拟化。但是,仍然有一些东西阻止我在 Linux 上的 VirtualBox VM 中运行的许可 Windows 操作系统中使用 WSL2。
答案1
经过 3 个工作日的努力,我找到了唯一的解决方案: 使用 VMWare Workstation 16。我从 Microsoft 下载了 Windows 10 VMware VM,通过“wsl -l -v”验证了 Ubuntu 发行版正在使用 WSL2,然后在第一次尝试时成功启动了 Ubuntu 发行版。
我复制了与 Virtualbox 错误完全相同的错误信息,如下所示:
主持人:第53页;
BIOS:虚拟化已启用;
操作系统:Ubuntu 20.04 LTS;
虚拟机管理程序:Oracle VirtualBox 6.1.16_Ubuntu r140961(Qt5 12.8);
虚拟机:Windows 10,版本 2004(10.0.19041.0);
虚拟机设置已启用:系统->处理器->启用嵌套的 VT-x/AMD-V(如果您还启用 PAE/NX,则结果相同);
Windows 设置-> 可选功能 -> 更多;
已检查 Windows 功能:
虚拟机平台;
适用于 Linux 的 Windows 子系统
我在使用 VM 时也遇到了类似的问题:在此处下载的 VirtualBox VM:https://developer.microsoft.com/en-us/windows/downloads/virtual-machines/
我保留了 Microsoft 为运行其 WSL2 Ubunutu dist 而默认的所有 VM 设置。当我打开 Ubuntu dist 时,我收到一条错误消息,提示我需要启用“虚拟机平台”和/或在 bios 中启用虚拟化。显然这些都已启用。
我尝试卸载并重新安装多次。我得出的结论是,WSL2 利用的 HyperV 虚拟化在 VM 中运行所需的虚拟化功能在 Ubuntu 20.04 上的 Virtualbox 版本 6.1 上不起作用,尽管 VirtualBox 对版本 6.1 上列出的功能做出了任何声明。
请参阅此处:https://forums.virtualbox.org/viewtopic.php?f=6&t=98448 “微软现在将其操作系统变成了一个移动目标,因此开发人员必须迎头赶上。” 如果 Virtualbox 6.1 虚拟化功能在 Ubuntu 上安装时曾经起作用,那么现在它已经不起作用了。
最后要说的是,我需要这个解决方案,原因与发帖者相同。我正在测试我编写的 powershell 脚本,它将安装运行我们本地开发环境所需的所有软件。本地环境包括使用默认 docker 驱动程序的 minikube 安装,该驱动程序在 Windows 上是实验性的,但可以与 minikube 文档中发布的解决方法一起使用(我希望我的队友能像我一样使用 Ubuntu)。在测试安装脚本时,在虚拟机上进行测试运行之间的快照和恢复要比在裸机上容易得多。
答案2
尝试使用 KVM/QEMU 和嵌套虚拟化时同样失败。WSL2 不想启动,安装 W10 Guest 后,重新启动时卡住并显示“正在准备修复...”我猜 Hyper-V 不喜欢在另一个虚拟机管理程序中运行!