Windows 安装 WSL 提示:WslRegisterDistribution failed with Error: 0x80 ...

打印 上一主题 下一主题

主题 1026|帖子 1026|积分 3082

题目 1、WslRegisterDistribution failed with Error: 0x8007019e

从 Microsoft Store 安装 WSL后,提示

原因

Windows 功能中未启用【适用于 Linux 的Windows子体系】
解决步调

1、 查看 Microsoft-Windows-Subsystem-Linux (WSL) 状态
管理员运行 PowerShell
  1. PS C:\WINDOWS\system32> Get-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux
  2. FeatureName      : Microsoft-Windows-Subsystem-Linux
  3. DisplayName      : 适用于 Linux 的 Windows 子系统
  4. Description      : 提供服务和环境以在 Windows 上运行本机用户模式 Linux shell 和工具。
  5. RestartRequired  : Possible
  6. State            : Enabled
复制代码
或管理员运行 cmd
  1. C:\WINDOWS\system32>dism /online /get-featureinfo /featurename:Microsoft-Windows-Subsystem-Linux
  2. FeatureName      : Microsoft-Windows-Subsystem-Linux
  3. DisplayName      : 适用于 Linux 的 Windows 子系统
  4. Description      : 提供服务和环境以在 Windows 上运行本机用户模式 Linux shell 和工具。
  5. RestartRequired  : Possible
  6. State            : Enabled
复制代码
上述命令任选其一
如果表现 Disabled,启用 Microsoft-Windows-Subsystem-Linux (WSL)
Windows 10(≥2004)上启用,管理员运行 PowerShell
  1. PS C:\WINDOWS\system32> dism /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart
复制代码
Windows 10(≤1909)上启用,管理员运行 PowerShell
  1. PS C:\WINDOWS\system32> Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux
复制代码
或在 程序功能 图形界面选择,确定

2、 查看 VirtualMachinePlatform 状态
管理员运行 PowerShell
  1. PS C:\WINDOWS\system32> Get-WindowsOptionalFeature -Online -FeatureName VirtualMachinePlatform
  2. FeatureName      : VirtualMachinePlatform
  3. DisplayName      : 虚拟机平台
  4. Description      : 为虚拟机启用平台支持
  5. RestartRequired  : Possible
  6. State            : Enabled
复制代码
或管理员运行 cmd
  1. C:\WINDOWS\system32>dism /online /get-featureinfo /featurename:virtualmachineplatform
  2. 功能名称 : VirtualMachinePlatform
  3. 显示名称 : 虚拟机平台
  4. 描述 : 为虚拟机启用平台支持
  5. 需要重新启动 : Possible
  6. 状态 : 已启用
复制代码
如果表现 Disabled / 已禁用,启用 VirtualMachinePlatform
Windows 10(≥2004) 上启用,管理员运行 PowerShell:
  1. PS C:\WINDOWS\system32>dism /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart
复制代码
Windows 10(≤1909) 上启用,管理员运行 PowerShell:
  1. PS C:\WINDOWS\system32>Enable-WindowsOptionalFeature -Online -FeatureName VirtualMachinePlatform -NoRestart
复制代码
如果经过上述处理,重启后安装,仍然提示错误,或已经实验过利用 wslconfig /l, wslconfig /u 卸载,重新从 Windows Store 安装题目依旧,可以从 powershell 卸载重启后重装。
PowerShell 卸载 WSL 步调

查看已安装 WSL 在体系的中的名字:

  1. PS C:\WINDOWS\system32> Get-AppxPackage -AllUsers | Where-Object { $_.Name -like "*ubuntu*" }
  2. Name                   : CanonicalGroupLimited.Ubuntu22.04LTS
  3. Publisher              : CN=23596F84-C3EA-4CD8-A7DF-550DCE37BCD0
  4. Architecture           : X64
  5. ResourceId             :
  6. Version                : 2204.2.45.0
  7. PackageFullName        : CanonicalGroupLimited.Ubuntu22.04LTS_2204.2.45.0_x64__79rhkp1fndgsc
  8. InstallLocation        : C:\Program Files\WindowsApps\CanonicalGroupLimited.Ubuntu22.04LTS_2204.2.45.0_x64__79rhkp1fndg
  9. ……
复制代码
卸载 WSL

  1. PS C:\WINDOWS\system32>get-appxpackage CanonicalGroupLimited.Ubuntu22.04LTS | remove-Appxpackage
复制代码
确认注销分发并删除根文件体系

  1. PS C:\WINDOWS\system32> wsl --unregister Legacy
  2. 正在注销。
  3. 不存在具有所提供名称的分发。
  4. Error code: Wsl/Service/WSL_E_DISTRO_NOT_FOUND
复制代码
确认注销分发并删除指定版本根文件体系
  1. wsl --unregister <DistributionName>
复制代码
执行此命令后,该 Linux 发行版中包含的所有数据都将被删除且不可恢复。
利用命令行安装( 管理员运行 cmd 或 powershell )

1、wsl 命令安装

列出可用版本

  1. wsl --list --online
复制代码

安装 Windows Store 中可用的最新版本

  1. wsl --install Ubuntu
复制代码
安装指定版本 -d

  1. wsl --install -d <DistributionName>
复制代码
例如,wsl --install -d Ubuntu-22.04
2、winget 命令安装

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

按体系提示,担当源协议,继续
  1. PS C:\WINDOWS\system32> winget show --name Ubuntu --source msstore
复制代码

安装 Windows Store 中可用的最新版本

  1. PS C:\WINDOWS\system32> winget install --id "9PDXGNCFSCZV" --source msstore
复制代码
安装指定版本 --id(示例 Ubuntu 22.04 LTS)

  1. PS C:\WINDOWS\system32> winget install --id "9PN20MSR04DW" --source msstore
复制代码
题目 2、wsl --list --online
无法分析服务器


运行 wsl --list --online
可能碰到的提示


  1. C:\WINDOWS\system32>wsl --list --online
  2. 无法与服务器创建毗连
复制代码

  1. C:\WINDOWS\system32>wsl --list --online
  2. 无法分析服务器的名称或地址
复制代码
可在 C:\Windows\System32\drivers\etc\ 目录下的 hosts 文件中添加如下分析地址
  1. # raw.githubusercontent.com
  2. 185.199.108.133 raw.githubusercontent.com
  3. 185.199.109.133 raw.githubusercontent.com
  4. 185.199.110.133 raw.githubusercontent.com
  5. 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 分析缓存
管理员运行 cmd
  1. C:\WINDOWS\system32>ipconfig /flushdns
  2. Windows IP 配置
  3. 已成功刷新 DNS 解析缓存。
复制代码
再次重复命令
  1. C:\WINDOWS\system32>wsl --list --online
  2. 操纵超时
复制代码
如果提示 “ 操纵超时 ”,可多运行几次,或重启计算机再运行,都不可再换个时间再试。
如果利用 “ 维皮恩 ”,则不需要修改 hosts 文件。
安装完成,重启,运行正常

其他常用命令

列出已安装版本

  1. wsl -l -v
复制代码
查看运行状态

  1. wsl --status
复制代码
升级 WSL Linux kernel

  1. wsl --update
复制代码
回滚到以前的 WSL Linux kernel

  1. wsl --update
  2. rollback
复制代码
版本升级

如果已经安装了 20.04 升级 22.04
  1. # 获取 Ubuntu 软件更新列表
  2. sudo apt update
  3. # 应用更新和补丁
  4. sudo apt upgrade
  5. # 更新 Ubuntu
  6. sudo do-release-upgrade
复制代码
设置默认版本为 WSL 1 或 WSL 2,将 <Version#> 替换为 1 或 2。

  1. wsl --set-default-version <Version#>
复制代码
设置 WSL 默认 Linux 发行版

  1. wsl -s <DistributionName>
复制代码

  1. wsl --set-default <DistributionName>
复制代码
例如,wsl -s Debian,将 Debian 设置为默认发行版
运行特定发行版而不更改默认 WSL

  1. wsl -d <DistributionName>
复制代码
将版本从 WSL 1 升级到 WSL 2(安装新的 Linux 发行版将默认设置为 WSL 2)
  1. wsl --install <NewDistributionName>
复制代码
为发行版更改 WSL

  1. 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
  1. Invoke-WebRequest -Uri https://wslstorestorage.blob.core.windows.net/wslblob/wsl_update_x64.msi
  2. -OutFile C:\wsl_update_x64.msi
复制代码
或直接欣赏器地址打开下载
  1. https://wslstorestorage.blob.core.windows.net/wslblob/wsl_update_x64.msi
复制代码
WSL 2 Linux 内核更新包安装

  1. 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
  1. https://aka.ms/wslubuntu2204
复制代码
20.04
  1. https://aka.ms/wslubuntu2004
复制代码
安装当地包

  1. Add-AppxPackage .\app_name.appx
复制代码

WSL 迁移



  • 查看当前体系盘中的 WSL
  1. wsl -l --all  -v
复制代码
  1. Windows Subsystem for Linux Distributions:
  2. Ubuntu-22.04 (Default)
复制代码


  • 关闭运行中的 WSL
  1. wsl --shutdown
复制代码


  • 导出 WSL 到 tar 文件
  1. wsl --export Ubuntu-22.04 D:\WSL\ubuntu2204.tar
复制代码


  • 注销当前体系盘中的 WSL
  1. wsl --unregister ubuntu-22.04
复制代码
  wslconfig /u Ubuntu-22.04
将指定的 WSL 发行版设置为默认不启动。不会删除 Ubuntu-22.04 的文件体系或数据,只是将其状态更改为未启动。仍然可以通过其他方式访问它。
 
wsl --unregister Ubuntu-22.04
完全注销(删除)指定的 WSL 发行版。删除 Ubuntu-22.04 的所有数据,包罗文件体系和用户设置,无法恢复。
  导入 tar 文件到指定目录
  1. wsl --import Ubuntu-24.04 D:\WSL\ubuntu2204\ D:\WSL\ubuntu2204.tar --version 2
复制代码


  • 修改默认登岸用户为 Username(原用户) // 此时启动 ubuntu 默认用户为 root ,修改为原用户
  1. ubuntu2204.exe config --default-user Username
复制代码
~ < end > ~


免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

王國慶

论坛元老
这个人很懒什么都没写!
快速回复 返回顶部 返回列表