Skip to content

建立 2026-09-14 更新 2026-09-14

WSL 1 與 WSL 2

新安裝預設是 WSL 2。除非有明確理由,否則不要改回 WSL 1。

架構差在哪

WSL 1 把 Linux 系統呼叫翻譯成 Windows NT 核心能懂的呼叫。沒有完整 Linux kernel,相容性有缺口(當時 Docker 就不能在裡面跑)。

WSL 2 在輕量、由系統代管的虛擬機器裡跑 Microsoft 維護的 Linux kernel。開機仍然很快、記憶體佔用比傳統 VM 小,但系統呼叫相容性是完整的。發行版在這台代管 VM 裡以隔離容器的方式執行。

對使用者來說,進 Ubuntu、打指令的畫面幾乎一樣;差在效能、相容性,以及跨 Windows/Linux 檔案系統時的速度。

功能對照

項目 WSL 1 WSL 2
Windows 與 Linux 整合
開機快、資源比傳統 VM 小
真實 Linux kernel、完整系統呼叫
systemd 有(需較新的 Store 版 WSL)
Docker、完整相容的 Linux 工具 受限 可以
存取 /mnt/c 等 Windows 檔案 較快 較慢
與舊版 VirtualBox 並存 較容易 可能衝突

官方實測:解壓縮 tar 有機會快到約 20 倍;git clonenpm installcmake 常見約 2~5 倍。前提是檔案放在 Linux 檔案系統

什麼時候才考慮 WSL 1

  • 專案必須放在 Windows 磁碟(C:\),且 Linux 工具會大量讀寫那些檔案
  • 同一批檔案要同時給 Windows 與 Linux 工具編譯
  • 需要序列埠等 WSL 2 仍不完整的硬體路徑

專案能放在 Linux 家目錄、再用 VS Code WSL 擴充功能編輯時,WSL 2 幾乎都比較好。USB 裝置可用 usbipd-win 接到 WSL 2,不再是改回 WSL 1 的理由。

查版本與切換

wsl -l -v
wsl --set-version Ubuntu 2
wsl --set-default-version 2

wsl -l -v 會列出每個發行版目前是 1 還是 2。切換架構要轉換磁碟映像,大發行版請先 匯出備份

官方示範

Craig Loewen 在 Tabs vs Spaces 示範 WSL 2 的 I/O 速度、系統呼叫相容性、VS Code 與 Docker。片長約 14 分鐘。

更完整的對照表見 Comparing WSL versions。接著看 快速安裝