WSL2 在 Ubuntu 18.04.5 LTS 上的 VirtualBox 中的 Windows 10 VM 中不起作用

eag*_*t3d 5 virtualbox windows-10 18.04

WSL2 不适合我。在笔记本电脑 BIOS 和 VirtualBox VM 设置中启用了虚拟化。这是我的配置。

  • 主机:Alienware17r3,Intel i7,32GB RAM
  • BIOS:启用虚拟化
  • 操作系统:Ubuntu 18.04.5 LTS
  • 管理程序:Oracle VirtualBox 6.12r139181(Qt5.9.5)
  • 虚拟机:Windows 10 Home 20H2 (19042.450)
  • 启用 VM 设置:System->Processor->Enable PAE/NX Enable Nested 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...
Run Code Online (Sandbox Code Playgroud)

我已经多次尝试在每次 Windows 更新后尝试在 Windows 上的 WSL2 中运行 docker。在 bios 和 OracleBox Windows10 VM 中启用了虚拟化。但是,某些事情仍然阻止我在许可的 Windows 操作系统中使用 WSL2,该操作系统在 Linux 上的 VirtualBox VM 中运行。

小智 6

经过 3 个工作日的处理,我找到了唯一的解决方案: 使用 VMWare Workstation 16。我从 Microsoft 下载了 Windows 10 VMware VM,验证 Ubuntu 发行版是否使用带有“wsl -l -v”的 WSL2,然后在第一次尝试时成功启动了 Ubuntu 发行版。

我复制了发布的确切 Virtualbox 错误,内容如下:

主机: P53;
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 中启用虚拟化。显然这些已启用。

我多次尝试卸载并重新安装。我得出的结论是,HyperV 虚拟化在 VM 中工作所需的虚拟化功能(由 WSL2 利用)在 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)。测试安装脚本时,在虚拟机上的测试运行之间进行捕捉和恢复比在裸机上要容易得多。