![完全重新安裝 WSL](https://rvso.com/image/1641927/%E5%AE%8C%E5%85%A8%E9%87%8D%E6%96%B0%E5%AE%89%E8%A3%9D%20WSL.png)
我安裝了WSL 1,喜歡在我的 PC 上安裝 Linux,然後發現兩個作業系統之間檔案互通性稀缺的限制。
所以我安裝了WSL 2遵循規範(在 BIOS 設定和所有內容中啟用虛擬化),但安裝未完全正常工作,我無法將其設為預設值,並且並非所有 shell 命令都按預期回應。
我用谷歌搜索,有人遇到了類似的問題,但沒有提出那麼多直接的解決方案(我想這仍然是一個相對較新的案例)。
所以我想盡可能深入刪除 WSL 並從頭開始重新安裝 WSL 2。
- 徹底刪除 WSL 的最安全、最明智的流程是什麼?
- 是否可以在不安裝 WSL 1 的情況下從頭開始安裝 WSL 2?
答案1
更新:目前這個答案有點過時了。如果您使用的是 Windows 10 或 11 22H2 之前安裝的舊版 WSL,那麼這可能是有關如何卸載的正確答案。但是,如果正在執行 WSL 的 Store 版本(或 UWP 版本),那麼請參閱我的較新的答案(和/或其他使用者的答案,如果存在)。
是否可以在不安裝 WSL 1 的情況下從頭開始安裝 WSL 2?
否。
徹底刪除 WSL 的最安全、最明智的流程是什麼?
這是我所掌握的有關刪除的最佳信息一切與 WSL 相關。
聽起來您認為現有實例是一個失敗的原因,但如果您想為後代備份它,您可以從以下開始:
wsl --export <distroname> archivename.tar
然後刪除現有的發行版安裝:
- 您從應用程式商店安裝的任何發行版,應先透過 Windows 中的「應用程式和功能」(又稱「新增或移除程式」)刪除。這也適用於透過下載的 Appx 套件手動安裝的發行版。
然後檢查以確保沒有留下任何東西。從 PowerShell 或 CMD:
wsl -l
wsl --unregister <distroname>
您可能只想從商店安裝一個新的發行版。其他組件的任何額外重新安裝都不太可能產生影響。但如果你確實想刪除它們:
從 Windows 中的「應用程式和功能」(也稱為「新增或刪除程式」)中,刪除「適用於 Linux 更新的 Windows 子系統」。我相當確定這是 Linux 核心更新。如果您想在下一步之前確保它完全消失,可能需要重新啟動。
從「開啟或關閉 Windows 功能」中,停用「Linux 的 Windows 子系統」。
從 Windows 中的「開啟或關閉 Windows 功能」中,停用「虛擬機器平台」。這就是 WSL2 Hyper-V 支援。
重啟。
當您從那裡重新安裝時,如果您能確認“Windows Subsystem for Linux Update”在安裝核心更新套件後返回到“應用程式和功能”(步驟 4),我將不勝感激。安裝文件)。我將根據該資訊更新此答案。
答案2
此答案指的是較新的 Store/UWP 版本的 WSL。若要確認您正在使用此較新版本,請從 PowerShell 執行下列命令:
Get-AppxPackage |? { $_.Name -like "*WindowsSubsystemforLinux*" }
如果您看到結果,請繼續閱讀此答案。如果您沒有得到結果,那麼您可能正在執行舊版的 WSL。看我的舊答案關於如何完全卸載該版本。
對於 Store/UWP 版本,答案已更改:
是否可以在不安裝 WSL 1 的情況下從頭開始安裝 WSL 2?
是的,在 Windows 11 22H2 下,wsl --install
預設會僅有的安裝 WSL2。要安裝 WSL1,您必須新增wsl --install --enable-wsl1
.
請注意,該--enable-wsl1
選項在 Windows 10 上不可用,即使在與較新的 WSP 版本相容的完全更新的系統上也是如此。在 Window 10 (19045.2311) 上,WSL1 仍會自動安裝並透過wsl --install
.
徹底刪除 WSL 的最安全、最明智的流程是什麼?
這是我所掌握的有關刪除的最佳信息一切與 WSL 相關。這應可確保 (a) 刪除所有功能,以及 (b) 回收所有磁碟空間。
(可選)備份現有發行版:
聽起來您認為現有實例是一個失敗的原因,但如果您想為後代備份它,您可以從以下開始:
wsl --export <distroname> archivename.tar
透過 確認要備份的所有發行版名稱
wsl -l -v
。或者,僅將對您重要的文件從發行版複製到發行版以外的安全位置。通常,這將包括您的主目錄中的所有內容,但也會查看
/var
您/etc
可能想要保留的任何檔案。(可選)確認備份分發的有效性:
當然,如果備份對您很重要,請確認它可以使用
wsl --import
新名稱。取消註冊現有發行版:
對於使用 找到的每個發行版
wsl -l -v
,透過以下方式將其刪除:wsl --unregister <distroname>
警告:這是一個破壞性且不可逆的操作,除非您有上述有效的備份。
解除安裝任何發行版包包從商店安裝的(應用程式):
去設定->新增或刪除程序並尋找您可能從商店安裝的任何發行版(Ubuntu、Debian、Alpine、openSUSE 或其他)。這實際上與您上面未註冊的發行版是分開的。這些軟體包包括最初創建您的發行版的 Distro Launcher 和 rootfs(例如
ubuntu2004.exe
)。卸載每個發行版。
在較舊的 Windows 版本下,卸載這些軟體包也卸載了相應的發行版,導致一些意外的資料遺失。看來大多數最新的系統都要求透過兩個單獨的步驟來刪除它們,這是一件好事。
也在設定->新增或刪除程序,尋找並刪除任何「適用於 Linux 的 Windows 子系統」應用程式。這可能包括:
- 適用於 Linux 的 Windows 子系統:主要 WSL 套件本身
- 適用於 Linux 的 Windows 子系統更新:更新舊版本(內置,作為 Windows 功能)WSL 版本的核心包。
- Windows Subsystem for Linux WSLg Preview:Windows 11 隨附的 WSLg 功能。
此時最好重新啟動以釋放任何其他正在使用的檔案。
接下來,前往設定->開啟或關閉 Windows 功能。
如果已啟用,請停用:
- 虛擬機器平台
- Linux 的 Windows 子系統
Windows 可能會提示重新啟動。
重新啟動後,確認以上項目已成功刪除。此時,任何
wsl
命令應該只需返回預設的“安裝”幫助文字即可。
從此處重新安裝的建議方法是:
開啟提升的 PowerShell。最好以普通使用者身分在管理員提升的會話中執行此操作,而不是以分離管理員用戶。
wsl --install
預設情況下,這將:
- 重新啟用虛擬機器平台
- 從 Microsoft Store 安裝最新的 WSL 版本。此版本現在直接包含內核,而不是像以前那樣需要單獨的安裝步驟。
- 從 Microsoft Store 安裝預設的 Ubuntu 發行版
另請參閱
wsl --help
其他安裝選項。例如,您可以在此階段跳過發行版的安裝或選擇不同的發行版。