提前感谢,我已经进行了详尽的研究,5天后无法解决此问题。
我正在尝试将Ubuntu作为一个Windows发行版安装在WSL-2内核之上。以下是我采取的步骤:
- 我从这个URL下载Linux内核更新包->https://learn.microsoft.com/en-us/windows/wsl/install-manual#step-4--下载linux内核更新包
- 我打开Windows功能";用于Linux的Windows子系统"虚拟机平台">
- 我重新启动机器,并确保在BIOS中启用虚拟化
- 我从微软商店安装Ubuntu。(我试过三个不同版本的Ubuntu)
- 我以管理员身份运行Ubuntu
当我以管理员身份运行Ubuntu时,我总是会收到以下错误:
"ubuntu wslregisterdistribution失败,错误为:0x80041002";
我已经在网上搜索了修复程序,但这个错误几乎没有与Windows更新无关的地方。解决这一问题的唯一操作是将wsl-set默认版本设置为";1〃;因为默认值是2。当我降级到wsl-1时,Ubuntu启动良好。
然而,根据我的研究和经验,我无法使用wsl-1运行Docker Desktop,因为它需要版本2。
当我用wsl-1运行Ubuntu,然后键入命令";wsl-l-v";,它确实说了以下几点:
NAME STATE VERSION
* Ubuntu Running 1
我认为Docker部分应该与Ubuntu/wsl的上述问题分开,然而,由于我的目标是简单地在DD中运行Docker引擎,我将包括以下关于Docker Desktop的信息:
我正在尝试在Windows 11 Enterprise上运行Docker Desktop。Docker引擎总是无法启动,我相信问题在于WSL/Ubuntu,如上所述,因为我无法使用WSL-2运行Ubuntu。有时,Docker Desktop根本不会启动,而是显示以下错误消息,提示我重置为出厂默认值;但我知道我的问题是WSL:
System.InvalidOperationException:
Failed to deploy distro docker-desktop to C:Usersv-kesculAppDataLocalDockerwsldistro: exit code: -1
stdout: Error: 0x80041002
如果有任何帮助,我们将不胜感激,因为我们确实需要在新的Windows 11机器上运行Docker,这样我们就可以将我们的Spring Cloud环境停靠到基于Linux的AWS EC2实例中。。非常感谢。
我想我可能有适合你的解决方案。我研究了错误0x80041002,发现它不是来自WSL2,而是来自hyper-v。这个错误意味着,由于WSL2使用hyper-v来运行,hyper-v试图创建一个虚拟以太网适配器,但有些东西阻止了它
所有虚拟机软件都会使用您的物理控制器作为链接来创建虚拟网络适配器,因此,如果您安装了许多vm软件,并在控制面板中检查网络连接,您会发现您的电脑有很多虚拟以太网适配器。如果您遇到问题0x80041002,这意味着您的一个虚拟适配器正在阻止hyper-v为其创建新网络。
在我的情况下,我在第二个硬盘上安装了vmware,并从我的电脑上删除了我的硬盘。因此,vmware虚拟适配器试图与源程序对话,但它无法,而且由于它与我的物理控制器相连,它阻止了hyper-v正常工作。
因此,请检查是否有任何虚拟机软件导致此问题或VPN,如果您有Oracle vm、vmware或VPN,请尝试卸载它,然后重试。也许可以试着重新安装你的物理网络驱动程序。
警告:一些用户报告说,这个过程完全破坏了他们的网络。在尝试此解决方案之前,请仔细阅读下面链接中的文档。在我的情况下,它确实起到了预期的作用,但可能不是每个人都是这样。
这确实与虚拟网络适配器的问题有关。
在我的案例中,WSL2 Ubuntu 18.04从工作状态到错误0x80041002
,没有任何警告。在这种情况发生前几天,我一直在摆弄网络适配器,试图在同一台电脑上使用WiFi加密狗创建一个无线热点,但失败了。FWIW,我在这里遵循指南,试图解决我的另一个问题。我相信其中一条命令可能是造成这种情况的根本原因。
我注意到,每次bash.exe试图启动(在抛出错误之前),一个故障设备都会立即出现在网络适配器下的Windows 10设备管理器中;CCD_ 2。
在搜索适配器和错误代码时,我发现了以下内容:https://learn.microsoft.com/en-us/troubleshoot/windows-client/virtualization/cannot-create-hyper-v-virtual-switch
This article solves an error message when you try to re-create a Hyper-V virtual switch (vSwitch) for the same physical adapter.
Applies to: Windows 10 - all editions
Original KB number: 3101106
他们提供了一个轻松修复向导(easyfix20159),似乎可以正确重置所有网络适配器(警告:它将删除所有虚拟网络适配器和主适配器的配置)。
Before you run the Easy fix, note the following points:
You will lose network connectivity after the wizard finishes.
You must restart your computer manually after the wizard finishes.
You will have to connect manually to all known Wi-Fi networks after your computer restarts.
You must re-create the vSwitch by using the Hyper-V Virtual Switch Manager after your computer restarts.
我的Windows Linux子系统在应用此修复程序并重新启动Windows后重新开始工作。
在我的案例中,我启用了Hyper-v,然后重新启动,它就工作了。
使用wsl版本作为1,而不是带有命令的版本2
wsl --set-default-version 1
并尝试重新安装您想要使用的linuxdist。安装或修复wsl后,您可以再次切换wsl版本2。
wsl --set-version <Dist> 2
正如你提到的,如果你使用docker,而上面的方法是无用的,你应该尝试注销当前的发行版并首先卸载,然后重复上面的步骤。用于注销当前版本:
wsl --unregister <Distro>