我昨天使用的是 Windows 10 版本 1909。我启用了 WSL 并安装了 Ubuntu 18.04。
现在我已经更新到 Windows 10 版本 2004。如何以最干净的方式更新到 WSL 2,并且不保留旧版本的残留?
我正在看这个指南https://docs.microsoft.com/en-us/windows/wsl/install-win10#update-to-wsl-2它似乎不适用于我的情况,因为我已经有 WSL 和现有的 Linux 发行版(Ubuntu 18.04)。
更新之前我需要卸载 Ubuntu 18.04 或 WSL 还是两者都卸载?
我的最终目标是在我的 Windows 中安装带有最新 Ubuntu 的 WSL2,并且最好没有旧版本的残留。
答案1
现在我已经更新到 Windows 10 版本 2004。如何以最干净的方式更新到 WSL 2,并且不保留旧版本的残留?
您运行单个命令即可将 WSL 1 Ubuntu 实例升级到 WSL 2 Ubuntu 实例。
更新之前我需要卸载 Ubuntu 18.04 或 WSL 还是两者都卸载?
无需卸载当前的 Ubuntu WSL 实例。只需运行以下命令即可将 Ubuntu 18.04 实例升级到 WSL 2。
wsl --set-version Ubuntu 2
我的最终目标是在我的 Windows 中安装带有最新 Ubuntu 的 WSL2,并且最好没有旧版本的残留。
如何将 Ubuntu 18.04 升级到 Ubuntu 20.04 已有详细记录,但与将 WSL 实例升级到 WSL 2 的过程是分开的。
运行以下两个命令就足够了,以便将 18.04 升级到 20.04。
如果遇到问题,您可以简单地卸载当前的 Ubuntu 18.04 实例并从 Microsoft Store 安装 Ubuntu 20.04。
sudo apt-get upgrade
sudo do-release-upgrade
答案2
嗯,你不必卸载任何东西,你可以使用参数--set version
来更改你的 Linux 发行版的版本,因此对于你的情况它将是:
wsl --set-version Ubuntu-18.04
运行完成后,可以使用以下命令检查是否已更新
wsl -l -v
检查 WSL 版本的版本列
答案3
您可以使用以下 PowerShell 脚本
# Uninstall Linux distributions installed on asset
$packages = Get-AppxPackage -AllUsers | Where-Object {($_.Name -like '*Ubuntu*' -or $_.Name -like '*Debian*' -or $_.Name -like '*Fedora*' -or $_.Name -like '*Kali*' -or $_.Name -like '*Suse*' -or $_.Name -like '*Arch*' -or $_.Name -like '*Alpine*' -or $_.Name -like '*openSUSE*') -and $_.Name -notlike '*Microsoft.Windows.Search*'}
if ($packages.Count -gt 0) {
Write-Host "Linux distributions found:"
$packages | Select-Object -Property Name, Publisher, Version | Write-Host
foreach ($package in $packages){
Remove-AppPackage $package
}
Write-Host "Linux distributions removed completely with their files"
} else {
Write-Host "No Linux distributions found."
}