問題 1 WslRegisterDistribution failed with Error: 0x8007019e
從 Microsoft Store 安裝 WSL后,提示
原因
Windows 功能中未啟用【適用于Linux的Windows子系統(tǒng)】
解決步驟
1、 查看 Microsoft-Windows-Subsystem-Linux (WSL) 狀態(tài)
管理員運(yùn)行 PowerShell
PS C:\WINDOWS\system32> Get-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux
FeatureName : Microsoft-Windows-Subsystem-Linux
DisplayName : 適用于 Linux 的 Windows 子系統(tǒng)
Description : 提供服務(wù)和環(huán)境以在 Windows 上運(yùn)行本機(jī)用戶模式 Linux shell 和工具。
RestartRequired : Possible
State : Enabled
或管理員運(yùn)行 cmd
C:\WINDOWS\system32>dism.exe /online /get-featureinfo /featurename:Microsoft-Windows-Subsystem-Linux
FeatureName : Microsoft-Windows-Subsystem-Linux
DisplayName : 適用于 Linux 的 Windows 子系統(tǒng)
Description : 提供服務(wù)和環(huán)境以在 Windows 上運(yùn)行本機(jī)用戶模式 Linux shell 和工具。
RestartRequired : Possible
State : Enabled
上述命令任選其一
如果顯示 Disabled,啟用 Microsoft-Windows-Subsystem-Linux (WSL)
Windows 10(≥2004)上啟用,管理員運(yùn)行 PowerShell
PS C:\WINDOWS\system32> dism /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart
Windows 10(≤1909)上啟用,管理員運(yùn)行 PowerShell
PS C:\WINDOWS\system32> Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux
或在 程序功能 圖形界面選擇,確定
2、 查看 VirtualMachinePlatform 狀態(tài)
管理員運(yùn)行 PowerShell
PS C:\WINDOWS\system32> Get-WindowsOptionalFeature -Online -FeatureName VirtualMachinePlatform
FeatureName : VirtualMachinePlatform
DisplayName : 虛擬機(jī)平臺(tái)
Description : 為虛擬機(jī)啟用平臺(tái)支持
RestartRequired : Possible
State : Enabled
或管理員運(yùn)行 cmd
C:\WINDOWS\system32>Dism /Online /Get-FeatureInfo /FeatureName:VirtualMachinePlatform
功能名稱 : VirtualMachinePlatform
顯示名稱 : 虛擬機(jī)平臺(tái)
描述 : 為虛擬機(jī)啟用平臺(tái)支持
需要重新啟動(dòng) : Possible
狀態(tài) : 已啟用
操作成功完成。
如果顯示 Disabled / 已禁用,啟用 VirtualMachinePlatform
Windows 10(≥2004) 上啟用,管理員運(yùn)行 PowerShell:
PS C:\WINDOWS\system32>dism /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart
Windows 10(≤1909) 上啟用,管理員運(yùn)行 PowerShell:
PS C:\WINDOWS\system32>Enable-WindowsOptionalFeature -Online -FeatureName VirtualMachinePlatform -NoRestart
如果經(jīng)過上述處理,重啟后安裝,仍然提示錯(cuò)誤,或已經(jīng)嘗試過使用 wslconfig /l, wslconfig /u 卸載,重新從 Windows Store 安裝問題依舊,可以從 powershell 卸載重啟后重裝。
PowerShell 卸載 WSL 步驟
查看已安裝 WSL 在系統(tǒng)的中的名字:
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
確認(rèn)注銷分發(fā)并刪除根文件系統(tǒng)
PS C:\WINDOWS\system32> wsl --unregister Legacy
正在注銷。
不存在具有所提供名稱的分發(fā)。
Error code: Wsl/Service/WSL_E_DISTRO_NOT_FOUND
確認(rèn)注銷分發(fā)并刪除指定版本根文件系統(tǒng)
wsl --unregister <DistributionName>
執(zhí)行此命令后,該Linux發(fā)行版中包含的所有數(shù)據(jù)都將被刪除且不可恢復(fù)。
使用命令行安裝( cmd 或 powershell )
列出可用版本
wsl --list --online
安裝最新版
wsl --install Ubuntu
安裝指定版本 -d
wsl --install -d Ubuntu-22.04
列出可安裝的有效分發(fā)列表
C:\WINDOWS\system32>wsl --list --online
問題 2 wsl --list --online 無法解析服務(wù)器
運(yùn)行 wsl --list --online 可能遇到的提示
C:\WINDOWS\system32>wsl --list --online
無法與服務(wù)器建立連接
或
C:\WINDOWS\system32>wsl --list --online
無法解析服務(wù)器的名稱或地址
可在 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、若上述地址失效,訪問以下鏈接查看網(wǎng)頁(yè) 【DNS Resource Records】欄的當(dāng)前可用地址
raw.githubusercontent.com - GitHub: Let’s build from here · GitHub
2、Hosts 文件編輯修改工具
在 Windows 上如何管理 Hosts?這里有 3 款小工具推薦給你 - 知乎
確認(rèn)保存有效后,刷新 DNS 解析緩存
C:\WINDOWS\system32>ipconfig /flushdns
Windows IP 配置
已成功刷新 DNS 解析緩存。
再次重復(fù)命令
C:\WINDOWS\system32>wsl --list --online
操作超時(shí)
如果提示 “ 操作超時(shí) ”,可以多運(yùn)行幾遍,或換個(gè)時(shí)間再運(yùn)行。
如果使用 “ 維皮恩 ”,則不需要修改 hosts 文件。
安裝完成,重啟,運(yùn)行正常
其他常用命令
列出已安裝版本
wsl -l -v
查看運(yùn)行狀態(tài)
wsl --status
升級(jí) WSL Linux kernel
wsl --update
回滾到以前的 WSL Linux kernel
wsl --update rollback
版本升級(jí)
如果已經(jīng)安裝了 20.04 升級(jí) 22.04
# 獲取 Ubuntu 軟件更新列表
sudo apt update
# 應(yīng)用更新和補(bǔ)丁
sudo apt upgrade
# 更新 Ubuntu
sudo do-release-upgrade
設(shè)置默認(rèn)版本為 WSL 1 或 WSL 2,將 <Version#> 替換為 1 或 2。
wsl --set-default-version <Version#>
設(shè)置 WSL 默認(rèn) Linux 發(fā)行版
wsl -s <DistributionName>
或
wsl --setdefault <DistributionName>
例如,wsl -s Debian,將 Debian 設(shè)置為默認(rèn)發(fā)行版
運(yùn)行特定發(fā)行版而不更改默認(rèn) WSL
wsl -d <DistributionName>
將版本從 WSL 1 升級(jí)到 WSL 2(安裝新的 Linux 發(fā)行版將默認(rèn)設(shè)置為 WSL 2)
wsl --install <NewDistributionName>
為發(fā)行版更改 WSL
wsl --set-version <distro name> 2
例如,wsl --set-version Ubuntu-22.04 2 ,將 Ubuntu 22.04 發(fā)行版設(shè)置為使用 WSL 2
WSL Linux 內(nèi)核更新包獲取(將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 內(nèi)核更新包安裝
msiexec.exe /i wsl_update_x64.msi /qn /norestart
總結(jié)
WSL 安裝通常有三種方式,兩種在線,一種離線。
1、從 Windows Store 在線安裝
先決條件是啟用【適用于Linux的Windows子系統(tǒng)】功能,再安裝 WSL
2、用 cmd / powershell 命令行在線安裝
命令執(zhí)行過程中會(huì)自動(dòng)檢查并直接啟用【適用于Linux的Windows子系統(tǒng)】功能后繼續(xù)安裝
3、離線安裝
如果 Microsoft Store 應(yīng)用不可用,可下載到本地離線安裝:
22.04文章來源:http://www.zghlxwxcb.cn/news/detail-501856.html
https://aka.ms/wslubuntu2204
20.04文章來源地址http://www.zghlxwxcb.cn/news/detail-501856.html
https://aka.ms/wslubuntu2004
安裝本地包
Add-AppxPackage .\app_name.appx
~ < End > ~
到了這里,關(guān)于Windows 安裝 WSL 提示:WslRegisterDistribution failed with Error: 0x8007019e的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!