问题 1 WslRegisterDistribution failed with Error: 0x8007019e
从 Microsoft Store 安装 WSL后,提示
原因
Windows 功能中未启用【适用于Linux的Windows子系统】
解决步骤
1、 查看 Microsoft-Windows-Subsystem-Linux (WSL) 状态
管理员运行 PowerShell
PS C:\WINDOWS\system32> Get-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux
FeatureName : Microsoft-Windows-Subsystem-Linux
DisplayName : 适用于 Linux 的 Windows 子系统
Description : 提供服务和环境以在 Windows 上运行本机用户模式 Linux shell 和工具。
RestartRequired : Possible
State : Enabled
或管理员运行 cmd
C:\WINDOWS\system32>dism.exe /online /get-featureinfo /featurename:Microsoft-Windows-Subsystem-Linux
FeatureName : Microsoft-Windows-Subsystem-Linux
DisplayName : 适用于 Linux 的 Windows 子系统
Description : 提供服务和环境以在 Windows 上运行本机用户模式 Linux shell 和工具。
RestartRequired : Possible
State : Enabled
上述命令任选其一
如果显示 Disabled,启用 Microsoft-Windows-Subsystem-Linux (WSL)
Windows 10(≥2004)上启用,管理员运行 PowerShell
PS C:\WINDOWS\system32> dism /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart
Windows 10(≤1909)上启用,管理员运行 PowerShell
PS C:\WINDOWS\system32> Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux
或在 程序功能 图形界面选择,确定
2、 查看 VirtualMachinePlatform 状态
管理员运行 PowerShell
PS C:\WINDOWS\system32> Get-WindowsOptionalFeature -Online -FeatureName VirtualMachinePlatform
FeatureName : VirtualMachinePlatform
DisplayName : 虚拟机平台
Description : 为虚拟机启用平台支持
RestartRequired : Possible
State : Enabled
或管理员运行 cmd
C:\WINDOWS\system32>Dism /Online /Get-FeatureInfo /FeatureName:VirtualMachinePlatform
功能名称 : VirtualMachinePlatform
显示名称 : 虚拟机平台
描述 : 为虚拟机启用平台支持
需要重新启动 : Possible
状态 : 已启用
操作成功完成。
如果显示 Disabled / 已禁用,启用 VirtualMachinePlatform
Windows 10(≥2004) 上启用,管理员运行 PowerShell:
PS C:\WINDOWS\system32>dism /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart
Windows 10(≤1909) 上启用,管理员运行 PowerShell:
PS C:\WINDOWS\system32>Enable-WindowsOptionalFeature -Online -FeatureName VirtualMachinePlatform -NoRestart
如果经过上述处理,重启后安装,仍然提示错误,或已经尝试过使用 wslconfig /l, wslconfig /u 卸载,重新从 Windows Store 安装问题依旧,可以从 powershell 卸载重启后重装。
PowerShell 卸载 WSL 步骤
查看已安装 WSL 在系统的中的名字:
PS C:\WINDOWS\system32> Get-AppxPackage -AllUsers | Where-Object { $_.Name -like "*ubuntu*" }
Name : CanonicalGroupLimited.Ubuntu22.04LTS
Publisher : CN=23596F84-C3EA-4CD8-A7DF-550DCE37BCD0
Architecture : X64
ResourceId :
Version : 2204.2.45.0
PackageFullName : CanonicalGroupLimited.Ubuntu22.04LTS_2204.2.45.0_x64__79rhkp1fndgsc
InstallLocation : C:\Program Files\WindowsApps\CanonicalGroupLimited.Ubuntu22.04LTS_2204.2.45.0_x64__79rhkp1fndg
……
卸载 WSL
PS C:\WINDOWS\system32>get-appxpackage CanonicalGroupLimited.Ubuntu22.04LTSonWindows | remove-Appxpackage
或
PS C:\WINDOWS\system32>get-appxpackage CanonicalGroupLimited.Ubuntu22.04LTS | remove-Appxpackage
确认注销分发并删除根文件系统
PS C:\WINDOWS\system32> wsl --unregister Legacy
正在注销。
不存在具有所提供名称的分发。
Error code: Wsl/Service/WSL_E_DISTRO_NOT_FOUND
确认注销分发并删除指定版本根文件系统
wsl --unregister <DistributionName>
执行此命令后,该Linux发行版中包含的所有数据都将被删除且不可恢复。
使用命令行安装( cmd 或 powershell )
列出可用版本
wsl --list --online
安装最新版
wsl --install Ubuntu
安装指定版本 -d
wsl --install -d Ubuntu-22.04
列出可安装的有效分发列表
C:\WINDOWS\system32>wsl --list --online
问题 2 wsl --list --online 无法解析服务器
运行 wsl --list --online 可能遇到的提示
C:\WINDOWS\system32>wsl --list --online
无法与服务器建立连接
或
C:\WINDOWS\system32>wsl --list --online
无法解析服务器的名称或地址
可在 C:\Windows\System32\drivers\etc\ 目录下的 hosts 文件中添加如下解析地址
# raw.githubusercontent.com
185.199.108.133 raw.githubusercontent.com
185.199.109.133 raw.githubusercontent.com
185.199.110.133 raw.githubusercontent.com
185.199.111.133 raw.githubusercontent.com
注:
1、若上述地址失效,访问以下链接查看网页 【DNS Resource Records】栏的当前可用地址
raw.githubusercontent.com - GitHub: Let’s build from here · GitHub
2、Hosts 文件编辑修改工具
在 Windows 上如何管理 Hosts?这里有 3 款小工具推荐给你 - 知乎
确认保存有效后,刷新 DNS 解析缓存
C:\WINDOWS\system32>ipconfig /flushdns
Windows IP 配置
已成功刷新 DNS 解析缓存。
再次重复命令
C:\WINDOWS\system32>wsl --list --online
操作超时
如果提示 “ 操作超时 ”,可以多运行几遍,或换个时间再运行。
如果使用 “ 维皮恩 ”,则不需要修改 hosts 文件。
安装完成,重启,运行正常
其他常用命令
列出已安装版本
wsl -l -v
查看运行状态
wsl --status
升级 WSL Linux kernel
wsl --update
回滚到以前的 WSL Linux kernel
wsl --update rollback
版本升级
如果已经安装了 20.04 升级 22.04
# 获取 Ubuntu 软件更新列表
sudo apt update
# 应用更新和补丁
sudo apt upgrade
# 更新 Ubuntu
sudo do-release-upgrade
设置默认版本为 WSL 1 或 WSL 2,将 <Version#> 替换为 1 或 2。
wsl --set-default-version <Version#>
设置 WSL 默认 Linux 发行版
wsl -s <DistributionName>
或
wsl --setdefault <DistributionName>
例如,wsl -s Debian,将 Debian 设置为默认发行版
运行特定发行版而不更改默认 WSL
wsl -d <DistributionName>
将版本从 WSL 1 升级到 WSL 2(安装新的 Linux 发行版将默认设置为 WSL 2)
wsl --install <NewDistributionName>
为发行版更改 WSL
wsl --set-version <distro name> 2
例如,wsl --set-version Ubuntu-22.04 2 ,将 Ubuntu 22.04 发行版设置为使用 WSL 2
WSL Linux 内核更新包获取(将WSL 1 更新到 WSL 2 )
Powershell
Invoke-WebRequest -Uri https://wslstorestorage.blob.core.windows.net/wslblob/wsl_update_x64.msi -OutFile C:\wsl_update_x64.msi
或直接浏览器地址打开下载
https://wslstorestorage.blob.core.windows.net/wslblob/wsl_update_x64.msi
WSL 2 Linux 内核更新包安装
msiexec.exe /i wsl_update_x64.msi /qn /norestart
总结
WSL 安装通常有三种方式,两种在线,一种离线。
1、从 Windows Store 在线安装
先决条件是启用【适用于Linux的Windows子系统】功能,再安装 WSL
2、用 cmd / powershell 命令行在线安装
命令执行过程中会自动检查并直接启用【适用于Linux的Windows子系统】功能后继续安装
3、离线安装
如果 Microsoft Store 应用不可用,可下载到本地离线安装:
22.04文章来源:https://www.toymoban.com/news/detail-774842.html
https://aka.ms/wslubuntu2204
20.04文章来源地址https://www.toymoban.com/news/detail-774842.html
https://aka.ms/wslubuntu2004
安装本地包
Add-AppxPackage .\app_name.appx
~ < End > ~
到了这里,关于Windows 安装 WSL 提示:WslRegisterDistribution failed with Error: 0x8007019e wsl --list --online 无法解析服务器的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!