Windows 10: cannot run WSL (Ubuntu, Alpine, Docker)

1

On my laptop (Dell Latitude 5590, Intel(R) Core(TM) i7-8650U CPU @ 1.90GHz[Cores 4] [Logical processors 8], BIOS v 1.16.0), running Windows 10 (10.0.19042), I cannot start Ubuntu any more, nor start Docker (Docker Desktop 3.2.2).

WSL version is 5.4.72.

Launching Ubuntu, I get:

Installing, this may take a few minutes...
WslRegisterDistribution failed with error: 0x8000000d
Error: 0x8000000d An illegal state change was requested.

Press any key to continue...

wslconfig says:

> wslconfig.exe /list /all
Windows Subsystem for Linux Distributions:
docker-desktop
Ubuntu-20.04

If I try to Clean/purge all data of Docker (from Docker Desktop's dashboard), or to reset to factory settings, I get the following error:

System.InvalidOperationException:
Failed to terminate distro: exit code: -1
 stdout: There is no distribution with the supplied name.


 stderr: 
   at Docker.ApiServices.WSL2.WslShortLivedCommandResult.LogAndThrowIfUnexpectedExitCode(String prefix, ILogger log, Int32 expectedExitCode) in C:\workspaces\PR-15387\src\github.com\docker\pinata\win\src\Docker.ApiServices\WSL2\WslCommand.cs:line 146
   at Docker.Engines.WSL2.WSL2Provisioning.<TerminateDistroAsync>d__15.MoveNext() in C:\workspaces\PR-15387\src\github.com\docker\pinata\win\src\Docker.Desktop\Engines\WSL2\WSL2Provisioning.cs:line 153
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at Docker.Engines.WSL2.WSL2Provisioning.<TerminateDistrosAsync>d__11.MoveNext() in C:\workspaces\PR-15387\src\github.com\docker\pinata\win\src\Docker.Desktop\Engines\WSL2\WSL2Provisioning.cs:line 118
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at Docker.Engines.WSL2.WSL2Provisioning.<UnprovisionAsync>d__9.MoveNext() in C:\workspaces\PR-15387\src\github.com\docker\pinata\win\src\Docker.Desktop\Engines\WSL2\WSL2Provisioning.cs:line 91
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at Docker.Engines.WSL2.LinuxWSL2Engine.<DoDestroyAsync>d__32.MoveNext() in C:\workspaces\PR-15387\src\github.com\docker\pinata\win\src\Docker.Desktop\Engines\WSL2\LinuxWSL2Engine.cs:line 316
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at Docker.ApiServices.StateMachines.DestroyTransition.<DoRunAsync>d__6.MoveNext() in C:\workspaces\PR-15387\src\github.com\docker\pinata\win\src\Docker.ApiServices\StateMachines\DestroyTransition.cs:line 39
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at Docker.ApiServices.StateMachines.EngineStateMachine.<DestroyAsync>d__16.MoveNext() in C:\workspaces\PR-15387\src\github.com\docker\pinata\win\src\Docker.ApiServices\StateMachines\EngineStateMachine.cs:line 90
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at Docker.Engines.Engines.<RemoveDataAsync>d__24.MoveNext() in C:\workspaces\PR-15387\src\github.com\docker\pinata\win\src\Docker.Desktop\Engines\Engines.cs:line 190

The system used to work until few days ago. I don't know what happened (maybe a firmware/OS/software update?).

I already tried the following, but none worked for me:

  • uninstall and reinstall Ubuntu (20.04) -> When launching Ubuntu, the error switched to:

     Installing, this may take a few minutes...
     WslRegisterDistribution failed with error: 0x800706be
     Error: 0x800706be The remote procedure call failed.
    
     Press any key to continue...
    
  • Attempted to install Alpine WSL: got the same error:

     Installing, this may take a few minutes...
     WslRegisterDistribution failed with error: 0x800706be
     WslRegisterDistribution failed
     Error: 0x800706be The remote procedure call failed.
    
     Press any key to continue...
    
  • uninstall and reinstall Docker Desktop

  • perform the procedure described at: https://docs.microsoft.com/en-us/windows/wsl/install-win10

  • reboot my machine

  • verify that WSL and Hd virtualization was enabled in the BIOS settings

  • Search for "Turn Windows features on or off" from start menu; verify that "Virtual Machine Platform" was enabled

  • run one or more or all of the following in an elevated powershell:

     Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux
     Dism /Online /Cleanup-Image /RestoreHealth
     wsl --unregister docker-desktop
     wsl --unregister docker-desktop-data
    
  • Launched this batch:

     net stop wuauserv
     net stop Cryptsvc
     ren %windir%\SoftwareDistribution sdold.old
     ren %windir%\system32\catroot2 crt2old.old
     net start wuauserv
     net start Cryptsvc
    
  • Uninstalled Ubuntu, Docker, WSL, as described at https://pureinfotech.com/uninstall-wsl2-windows-10/ , reinstalled everything from scratch

  • Switched to Windows containers -> got request to run

     Enable-WindowsOptionalFeature -Online -FeatureName $("Microsoft-Hyper-V", "Containers") -All
    

    Run the required command within an elevated PowerShell -> successfully switched to windows containers; attempt to switch to Linux container again -> no way: Docker keeps running windows containers.

  • In powerShell, launched the following:

    Start-Service "Hyper-V Virtual Machine Management"
    Start-Service "Hyper-V Host Compute Service"
    
  • updated Docker Desktop to rev 3.3.3

  • run the following within an elevated command prompt:

     DISM.exe /Online /Cleanup-image /Restorehealth
     sfc /scannow
    
  • Launched:

     BCDedit /set hypervisorlaunchtype Off
    

    (also tried:

     bcdedit /set hypervisorlaunchtype auto
    

    )

  • Launched:

     dism.exe /Online /Enable-Feature:Microsoft-Hyper-V /All
    
  • attempt to restart Windows in safe mode and launch Ubuntu -> no luck

  • changed Docker Desktop's setting from the dashboard, disabling "Use the WSL 2 based engine" -> docker works with Linux containers! (this doesn't solve the problem, though)

  • searched for other solutions on Internet -> none solved my problem

Any suggestions?

windows
ubuntu
docker
windows-subsystem-for-linux
asked on Super User Apr 13, 2021 by Starnuto di topo • edited Apr 15, 2021 by Starnuto di topo

0 Answers

Nobody has answered this question yet.


User contributions licensed under CC BY-SA 3.0