Windows 安装 WSL 提示:WslRegisterDistribution failed with Error: 0x8007019e /wsl --list --online 无法解析服务器

问题 1、WslRegisterDistribution failed with Error: 0x8007019e

从 Microsoft Store 安装 WSL后,提示

01

原因

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 /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

或在 程序功能 图形界面选择,确定

02

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.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 )

1、wsl 命令安装

列出可用版本
wsl --list --online

在这里插入图片描述

安装 Windows Store 中可用的最新版本
wsl --install Ubuntu
安装指定版本 -d
wsl --install -d <DistributionName>

例如,wsl --install -d Ubuntu-22.04

2、winget 命令安装

列出可用发行版列表及其 ID

按系统提示,接受源协议,继续

PS C:\WINDOWS\system32> winget show --name Ubuntu --source msstore

在这里插入图片描述

安装指定版本 --id(示例 Ubuntu 22.04 LTS)
PS C:\WINDOWS\system32> winget install --id "9PN20MSR04DW" --source msstore

问题 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

注:

确认保存有效后,刷新 DNS 解析缓存

管理员运行 cmd

C:\WINDOWS\system32>ipconfig /flushdns
Windows IP 配置
已成功刷新 DNS 解析缓存。

再次重复命令

C:\WINDOWS\system32>wsl --list --online
操作超时

如果提示 “ 操作超时 ”,可多运行几次,或重启计算机再运行,都不行再换个时间再试。
如果使用 “ 维皮恩 ”,则不需要修改 hosts 文件。

安装完成,重启,运行正常

04

其他常用命令

列出已安装版本

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,将 替换为 1 或 2。

wsl --set-default-version <Version>

设置 WSL 默认 Linux 发行版

wsl -s <DistributionName> 

wsl --set-default <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://aka.ms/wslubuntu2204

20.04

https://aka.ms/wslubuntu2004

安装本地包

Add-AppxPackage .\app_name.appx

WSL 迁移

  • 查看当前系统盘中的 WSL
 wsl -l --all  -v
Windows Subsystem for Linux Distributions:
Ubuntu-22.04 (Default)
  • 关闭运行中的 WSL
wsl --shutdown
  • 导出 WSL 到 tar 文件
wsl --export Ubuntu-22.04 D:\WSL\ubuntu2204.tar
  • 注销当前系统盘中的 WSL
wsl --unregister ubuntu-22.04

完全注销(删除)指定的 WSL 发行版的所有数据,包括文件系统和用户配置,无法恢复。

导入 tar 文件到指定目录

wsl --import Ubuntu-24.04 D:\WSL\ubuntu2204\ D:\WSL\ubuntu2204.tar --version 2
  • 修改默认登陆用户为 Username(原用户) // 此时启动 ubuntu 默认用户为 root ,修改为原用户
ubuntu2204.exe config --default-user Username

~ < end > ~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值