-
Notifications
You must be signed in to change notification settings - Fork 832
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Cannot install WSL on latest Windows Insider dev build #11327
Comments
Hi I'm an AI powered bot that finds similar issues based off the issue title. Please view the issues below to see if they solve your problem, and if the issue describes your problem please consider closing this one and thumbs upping the other issue to help us prioritize it. Thank you! Closed similar issues:
|
This seems more similar to #11319 |
Are you able to get more logs using the instructions from here? https://learn.microsoft.com/en-us/windows/win32/appxpkg/troubleshooting?redirectedfrom=MSDN |
I agree, I think they're probably the same. |
Here's the result of Get-AppxLog after trying the update again: appxlog.txt Similarly to the other issue, it looks like the installer is trying to install the appx into my D: drive, which is failing. Here's a screenshot of searching my PC for "windowssubsystemforlinux". It looks like I have a few older versions hanging around, and it does seem like version 2.1.5.0 is trying to be installed into D:. The |
Yes, my settings look exactly the same. I should add that my D: drive is an internal SSD, so I can't easily remove it to test if that fixes it. |
Sorry for the hangup. I'm testing a fix that I think will avoid us getting in this state, but I'm not sure about getting out of it. If you still have this environment can you collect logs via the below script that github won't let me add as an attachment? #
# GetDeploymentLogs-Desktop.ps1 is a PowerShell script designed to collect
# various logs and system information to diagnose App deployment problems.
# To run this script from Explorer, right-click on its icon and choose "Run with PowerShell".
#
# All command line parameters are reserved for use internally by the script.
# Users should launch this script from Explorer.
#
param(
[switch]$Force = $false,
[switch]$EnableTracing = $false
)
function PrintMessageAndExit($ErrorMessage, $ReturnCode)
{
Write-Host $ErrorMessage
if (!$Force)
{
Pause
}
exit $ReturnCode
}
$ScriptPath = $null
try
{
$ScriptPath = (Get-Variable MyInvocation).Value.MyCommand.Path
$ScriptDir = Split-Path -Parent $ScriptPath
}
catch {}
# Get the ID and security principal of the current user account
$myWindowsID=[System.Security.Principal.WindowsIdentity]::GetCurrent()
$myWindowsPrincipal=new-object System.Security.Principal.WindowsPrincipal($myWindowsID)
# Get the security principal for the Administrator role
$adminRole=[System.Security.Principal.WindowsBuiltInRole]::Administrator
# Check to see if we are currently running "as Administrator"
if ($myWindowsPrincipal.IsInRole($adminRole))
{
# We are running "as Administrator" - so change the title and background color to indicate this
$Host.UI.RawUI.WindowTitle = $myInvocation.MyCommand.Definition + "(Elevated)"
clear-host
}
else
{
# We are not running "as Administrator" - so relaunch as administrator
# Create a new process object that starts PowerShell
$newProcess = new-object System.Diagnostics.ProcessStartInfo "PowerShell";
# Specify the current script path and name as a parameter
$newProcess.Arguments = $myInvocation.MyCommand.Definition + ' -ExecutionPolicy Unrestricted'
# Indicate that the process should be elevated
$newProcess.Verb = "runas";
# Start the new process
[System.Diagnostics.Process]::Start($newProcess) > $null;
# Exit from the current, unelevated, process
exit
}
$LogsFolderName = 'AppxLogs' + (get-date -uformat %s)
$LogsDestinationPath = $env:TEMP + '\' + $LogsFolderName
$CabPath = $LogsDestinationPath + '.zip'
$SystemEventLogsPath = $env:windir + '\System32\winevt\Logs\'
$WULogsPath = $env:windir + '\Logs\windowsupdate\'
$UpgradeLogs = $env:windir + '\Panther\'
$SystemEventLogFileList =
@(
"Microsoft-Windows-AppXDeployment%4Operational.evtx",
"Microsoft-Windows-AppXDeploymentServer%4Operational.evtx",
"Microsoft-Windows-AppxPackaging%4Operational.evtx",
"Microsoft-Windows-StateRepository%4Operational.evtx",
"Microsoft-Windows-AppReadiness%4Admin.evtx",
"Microsoft-Windows-AppReadiness%4Operational.evtx",
"Microsoft-Windows-TWinUI%4Operational.evtx",
"Microsoft-Windows-AppModel-Runtime%4Admin.evtx",
"Microsoft-Windows-AppHost%4Admin.evtx",
"Microsoft-Windows-ApplicationResourceManagementSystem%4Operational.evtx",
"Microsoft-Windows-CoreApplication%4Operational.evtx",
"Microsoft-Windows-AppID%4Operational.evtx",
"Microsoft-Windows-AppLocker%4EXE and DLL.evtx",
"Microsoft-Windows-AppLocker%4Packaged app-Execution.evtx",
"Microsoft-Windows-AppLocker%4Packaged app-Deployment.evtx",
"Microsoft-Windows-AppLocker%4MSI and Script.evtx",
"Microsoft-Windows-CodeIntegrity%4Operational.evtx",
"Microsoft-Windows-Kernel-StoreMgr%4Operational.evtx",
"Microsoft-Windows-Store%4Operational.evtx",
"Microsoft-Client-Licensing-Platform%4Admin.evtx",
"Microsoft-WS-Licensing%4Admin.evtx",
"Microsoft-Windows-PackageStateRoaming%4Operational.evtx",
"Microsoft-Windows-DeviceSync%4Operational.evtx",
"Microsoft-Windows-SettingSync%4Debug.evtx",
"Microsoft-Windows-SettingSync%4Operational.evtx",
"Microsoft-Windows-SettingSync-Azure%4Debug.evtx",
"Microsoft-Windows-SettingSync-Azure%4Operational.evtx",
"System.evtx",
"Application.evtx",
"Microsoft-Windows-WER-Diag%4Operational.evtx",
"Microsoft-Windows-AppID%4Operational.evtx",
"Microsoft-Windows-ApplicabilityEngine%4Operational.evtx",
"Microsoft-Windows-WindowsUpdateClient%4Operational.evtx",
"Microsoft-Windows-Winlogon%4Operational.evtx",
"Microsoft-Windows-Shell-Core%4ActionCenter.evtx",
"Microsoft-Windows-Shell-Core%4Operational.evtx",
"Microsoft-Windows-User Profile Service%4Operational.evtx"
)
$SourceDestinationPairs =
(
(($UpgradeLogs + 'setup*.log'), ($LogsDestinationPath + '\Panther\')),
(($WULogsPath + '*.etl'), ($LogsDestinationPath + '\WindowsUpdate\')),
(($env:windir + '\Logs\CBS\CBS.log'), ($LogsDestinationPath + '\CBS\')),
(($env:windir + '\Logs\DISM\DISM.log'), ($LogsDestinationPath + '\DISM\')),
(($env:ProgramData + '\Microsoft\Windows\AppxProvisioning.xml'), ($LogsDestinationPath + '\')),
(($env:ProgramData + '\Microsoft\Windows\AppRepository\StateRepository*'), ($LogsDestinationPath + '\StateRepository\')),
(($env:ProgramData + '\Microsoft\Windows\WER\*'), ($LogsDestinationPath + '\WER\'))
)
$RegExportsDestinationPath = $LogsDestinationPath + '\RegistryExports\'
New-Item -ItemType Directory -Force -Path $RegExportsDestinationPath > $null
$RegistrySourceDestinationPairs =
(
(("HKEY_LOCAL_MACHINE\System\SetUp\Upgrade\AppX"), ($RegExportsDestinationPath + '\UpgradeAppx.reg')),
(("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\AppModel\StateRepository"), ($RegExportsDestinationPath + '\StateRepository.reg')),
(("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Setup\OOBE"), ($RegExportsDestinationPath + '\OOBE.reg')),
(("HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\MUI\UILanguages"), ($RegExportsDestinationPath + '\UILanguages.reg')),
(("HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\FastCache"), ($RegExportsDestinationPath + '\Fastcache.reg')),
(("HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\Appx"), ($RegExportsDestinationPath + '\AppxPolicies.reg')),
(("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Appx"), ($RegExportsDestinationPath + '\Appx.reg')),
(("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\AppReadiness"), ($RegExportsDestinationPath + '\AppReadiness.reg')),
(("HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Local Settings\Software\Microsoft\Windows\CurrentVersion\AppModel"), ($RegExportsDestinationPath + '\AppModelSettings.reg')),
(("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\AppModel"), ($RegExportsDestinationPath + '\AppModel.reg'))
)
Write-Host 'Creating Destination Folder and Gathering Logs ' $LogsDestinationPath
New-Item -ItemType Directory -Force -Path $LogsDestinationPath > $null
Write-Progress -Activity 'Collecting Logs' -Id 10041
$EventLogsFolderPath = ($LogsDestinationPath + '\EventLogs\')
New-Item -ItemType Directory -Force -Path $EventLogsFolderPath > $null
# Copy Event Logs
foreach ($EventLogFile in $SystemEventLogFileList)
{
$EventLogFilePath = ($SystemEventLogsPath + $EventLogFile)
Copy-Item -Path $EventLogFilePath -Destination $EventLogsFolderPath -Force
}
foreach ($SDPair in $SourceDestinationPairs)
{
New-Item -ItemType Directory -Force -Path $SDPair[1] > $null
Copy-Item -Path $SDPair[0] -Destination $SDPair[1] -Recurse -Force > $null
}
foreach ($RegistrySDPair in $RegistrySourceDestinationPairs)
{
reg export $RegistrySDPair[0] $RegistrySDPair[1] /y > $null
}
$AppDataPath = $env:LOCALAPPDATA + '\Packages'
$WindowsAppPath = $env:ProgramFiles + '\WindowsApps'
$AppRepositoryPath = $env:ProgramData + '\Microsoft\Windows\AppRepository'
Get-AppxPackage -AllUsers > ($LogsDestinationPath + '\GetAppxPackageAllUsersOutput.txt')
dir -Path $AppDataPath -Recurse -Force -ErrorAction SilentlyContinue > ($LogsDestinationPath + '\AppDataFolderList.txt')
dir -Path $WindowsAppPath -Force -ErrorAction SilentlyContinue > ($LogsDestinationPath + '\WindowsAppFolderList.txt')
dir -Path $AppRepositoryPath -Force -ErrorAction SilentlyContinue > ($LogsDestinationPath + '\AppRepositoryFileList.txt')
Write-Progress -Activity 'Creating Zip Archive' -Id 10041
Add-Type -Assembly "System.IO.Compression.FileSystem";
[System.IO.Compression.ZipFile]::CreateFromDirectory($LogsDestinationPath, $CabPath);
Write-Progress -Activity 'Done' -Completed -Id 10041
Write-Warning "Note: Below Zip file contains system, app and user information useful for diagnosing Application Installation Issues."
Write-Host 'Please upload zip and share a link : '
Write-Host $CabPath
Pause |
Here are the files generated by that script after reproducing the issue again. I split it into multiple parts due to GitHub's file upload size limit, just remove the second .zip extension to extract them. |
After some messing around, I found a workaround for this issue. I installed the old v1.2.5 version using the MSIX bundle, and then I updated through several in-between releases (using the MSIX bundles only, I don't remember the exact order) until I got to the latest v2.1.5. Everything seems to be working fine now. Attempting to reinstall v2.1.5 through the MSI instead of the MSIX bundle still breaks everything for me, though, so it does not look like the core issue here is resolved.
|
Thanks for the clue on msi vs msix installation. Fwiw, no changes have been released yet. |
Just curious, will there be any differences in my WSL installation from using the MSIX instead of the MSI? Also, why does |
Unfortunately yes, they take different code paths under the hood. Even if I explained it, it wouldn't make sense to a rational human. |
Some additional notes:
All of these possible broken states are really confusing me, but I hope this helps. |
That lines up with what I've observed, though I'd be reluctant to delete those directories without using the inbox commands such as Untill we ship a fix I think you'll want to stick to using this as a workaround: Remove-AppxPackage MicrosoftCorporationII.WindowsSubsystemForLinux_2.2.0.0_x64__8wekyb3d8bbwe -AllUsers
Remove-AppxPackage MicrosoftCorporationII.WindowsSubsystemForLinux_2.2.0.0_x64__8wekyb3d8bbwe
add-appxpackage NAMEHERE |
I absolutely agree. The problem was that these directories were created in step 2, but the msix was not fully installed so it didn't show up in get-appxpackage. |
I'm getting the same error code 0x80073CFB for updates for WSL via the store (I'm on the latest stable 11 update). I think it started occurring after I manually updated via |
This is not an official build, if you still see issues when trying this build, please get back to me with more logs from this post, in addition to our logs. #11319 (comment) |
That build causes a new error. However, it does seem to fix something because, after attempting to install that build, |
Diagnostic information
|
@MatthewL246, thank-you for the logs and sorry for the slow response. I missed your message. I'm having a look |
I had the same issue, and nothing worked. However, running the following command fixed it:
|
It also applies if wsl does not work properly after the "wsl --update "update to 2.2.4 |
To whom it may concern: I tried all steps available on Microsoft's WSL troubleshooting site, which did not fix the issue. Finally, downloading the latest MSI from the releases here and thus re-installing WSL did work. |
@MatthewL246 - Thank you for the tip of installing an older version of WSL first. I was also getting the "catastrophic failure" error and took about 2 hours of trial and error with many of the suggestions on the Internet, until I found your workaround. It worked for me. Thanks! Scott |
I've been getting same issue after the update and was able to install wsl with the help of your workaround. thank you !! |
Windows Version
Microsoft Windows [Version 10.0.26080.1400]
WSL Version
2.1.5
Are you using WSL 1 or WSL 2?
Kernel Version
N/A
Distro Version
N/A
Other Software
Docker Desktop (Docker version 25.0.3, build 4debf41)
Repro Steps
I recently updated to the latest Windows Insider dev build, which is Windows 11 Insider Preview 10.0.26080.1201 (ge_release_upr). After updating Windows, I ran
wsl --update
, which caused the "Catastrophic failure" error and completely broke my WSL setup. It seems like the failed update uninstalled WSL and I can't reinstall it.Expected Behavior
I expected WSL to install successfully.
Actual Behavior
Running any WSL command produces the following output.
Running
wsl --update
orwsl --install
produces the following output.Manually downloading the MSI from the GitHub releases shows these error messages.
Diagnostic Logs
Logs from running
wsl --install
: WslLogs-2024-03-19_19-06-02.zipWSL install logs from temp folder: wsl-install-logs.txt and MSI65cb2.LOG
The text was updated successfully, but these errors were encountered: