Windows 10 可以有 WSL1 和 WSL2 嗎?

Windows 10 可以有 WSL1 和 WSL2 嗎?

運行 Windows 10(版本 21H1 19043.1415)。

我前段時間啟用了所需的 Windows WSL 功能。從那時起,我多次使用 Linux 軟體套件在 WSL1 和 WSL2 之間來回切換。

我使用 Docker 一段時間了。 Docker 最近的更新似乎將 Windows 上的 Docker 從 WSL1 轉換為 WSL2。

Ubuntu 剛從 PC 上卸載。檢查 WSL 的狀態:

wsl --list --verbose

傳回的狀態顯示:

姓名 狀態 版本
docker-桌面-數據 已停止 2
docker-桌面 已停止 2

問題: Linux 的 Windows 子系統版本 Ubuntu 20.04 是否可以安裝為 WSL1?這意味著 PC 的 WSL1 和 WSL2 都處於活動狀態?

答案1

是的。 Windows 10 可以同時啟動 WSL1 和 WSL2。

在探索 Microsoft 的 WSL 基本命令後,我了解到 Linux 的 Windows 子系統版本可以輕鬆地從 WSL1 轉換為 WSL2,反之亦然。

https://docs.microsoft.com/en-us/windows/wsl/basic-commands

下面演示了 Ubuntu(或其他發行版)如何從 WSL1-WSL2 來回轉換。所有命令都是在 Windows 終端機(新的 PowerShell)中給予的命令。要轉換的 PowerShell 指令是:

wsl --set-version ubuntu 1
wsl --set-version ubuntu 2

Ubuntu(剛剛)從 Microsoft Store(再次)重新安裝。使用者名稱和密碼已建立。尚未完成 sudo 更新/升級。檢查 WSL 狀態並顯示新安裝(正在執行)的 Ubuntu 已安裝為 WSL2。

PS C:\Users\prior> wsl --list --verbose
姓名 狀態 版本
docker-桌面-數據 已停止 2
docker-桌面 已停止 2
烏班圖 跑步 2

然後Ubuntu從WSL2轉換為WSL1。再次檢查了狀態。這表明 Ubuntu 轉換為 WSL1 並停止了。

  PS C:\Users\prior> wsl --set-version ubuntu 1

轉換正在進行中,這可能需要幾分鐘...轉換完成。

  PS C:\Users\prior> wsl --list --verbose
姓名 狀態 版本
docker-桌面-數據 已停止 2
docker-桌面 已停止 2
烏班圖 已停止 1

Ubuntu 已從 Windows 啟動應用程式清單中重新啟動。再次檢查 WSL 狀態。傳回的狀態顯示 Ubuntu 正在作為 WSL1 運行。 Docker 應用程式仍然是 WSL2。

PS C:\Users\prior> wsl --list --verbose
姓名 狀態 版本
docker-桌面-數據 已停止 2
docker-桌面 已停止 2
烏班圖 跑步 1

Docker 已啟動並檢查了 WSL 狀態。很明顯,WSL1 和 WSL2 檔案都可以在 Windows 10 中處於活動狀態並運行。

PS C:\Users\prior> wsl --list --verbose
姓名 狀態 版本
docker-桌面-數據 跑步 2
docker-桌面 跑步 2
烏班圖 跑步 1

然後出於好奇,將Ubuntu轉換回WSL2然後啟動。檢查狀態並顯示到 WSL2 的轉換有效。 Ubuntu 和 Docker 是 WSL2 並且正在運行。

PS C:\Users\prior> wsl --set-version ubuntu 2

正在進行轉換,這可能需要幾分鐘...有關與 WSL 2 的主要差異的信息,請訪問https://aka.ms/wsl2 轉換完成。

PS C:\Users\prior> wsl --list --verbose
姓名 狀態 版本
docker-桌面-數據 跑步 2
docker-桌面 跑步 2
烏班圖 跑步 2

顯然,每當切換 WSL1 或 WSL2 子系統時,都無需卸載並重新安裝 Linux。

相關內容