Windows 的「WSL2」怎麼用:與 VirtualBox 的效能與相容性對比
啟動速度
極快(秒開)
快(1~3 秒,首次較久)
系統呼叫相容性
僅支援部分,許多工具會壞
接近 100% 完整 Linux 行為
跨檔案系統 I/O
快(因為共用同一檔案系統)
較慢(9P 協定跨 VM 邊界)
Docker / 資料庫
幾乎不可用
完整支援
記憶體佔用
極低
較高(動態配置,會膨脹)
是否需要虛擬化
是(需啟用虛擬機平台 / Hyper-V)
WSL2 的架構拆解:為什麼它比 VirtualBox 輕
WSL2 的架構可以拆成三層來看。最底層是 Windows 內建的 Hyper-V hypervisor(嚴格說是「虛擬機平台」這個精簡功能集),它負責提供硬體虛擬化能力;中間層是微軟維護的 Linux 核心,開機後只載入極少量的使用者空間;最上層才是你安裝的發行版(Ubuntu、Debian、Alpine 等),以獨立容器化的根檔案系統掛載在 ext4.vhdx 虛擬磁碟裡。
關鍵在於「按需啟動」。WSL2 的虛擬機不是常駐的,你第一次開終端機時它才被叫醒,全部發行版關閉後一段時間又會自動休眠。而且多個發行版共用同一台底層 VM,只是掛載不同的根檔案系統。這種設計讓它的資源佔用遠低於「開一台完整 VirtualBox 虛擬機」——後者從 BIOS 模擬、虛擬顯示卡、虛擬網卡到整套作業系統服務全部都要跑起來,光是開機就得吃你幾 GB 記憶體。
二、WSL2 安裝與日常操作完整教學
了解原理之後,實際動手其實比想像中簡單。微軟這幾年把安裝流程大幅簡化,現在只要一行指令就能搞定,前提是你的 Windows 版本夠新。
步驟一:確認系統版本與啟用必要功能
WSL2 需要 Windows 10 版本 2004(Build 19041)以上,或任意版本的 Windows 11。你可以按 Win + R 輸入 winver 確認版本。若版本較舊,請先透過 Windows Update 更新,否則後面的指令會找不到。
接著需要啟用兩個選用功能:「適用於 Linux 的 Windows 子系統」與「虛擬機平台」。在較新的系統上,執行安裝指令時會自動幫你啟用;若你想手動確認,可以用系統管理員身分開啟 PowerShell 輸入以下指令:
dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart
dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart
執行完後建議重新開機,確保功能生效。
步驟二:一行指令安裝發行版
系統管理員權限的 PowerShell 或終端機中,直接輸入:
wsl --install
這行指令會自動幫你下載並安裝 Ubuntu 最新 LTS 版本、設定 WSL2 為預設版本,並在完成後要求你設定 UNIX 使用者名稱與密碼。如果你想要其他發行版,可以先查詢清單:
wsl --list --online
wsl --install -d Debian
wsl --set-default-version 2
安裝完成後,隨時可以用 wsl 進入預設發行版,或用 wsl -d Debian 指定。想知道目前有哪些發行版、各自是 WSL1 還是 WSL2,輸入:
wsl --list --verbose
若某個發行版不小心裝成 WSL1,可以用 wsl --set-version Ubuntu 2 轉換,轉換過程需要幾分鐘,因為要把整個檔案系統重新打包成虛擬磁碟。
步驟三:檔案互通、終端機與編輯器整合
WSL2 最方便的地方,是它與 Windows 的檔案系統雙向互通。在 WSL 內,你的 C 槽掛載在 /mnt/c,D 槽是 /mnt/d,依此類推。反過來,在 Windows 檔案總管的網址列輸入 \\wsl.localhost\Ubuntu\home\你的帳號(舊版為 \\wsl$\Ubuntu),就能直接瀏覽 Linux 根目錄,甚至用 Windows 的檔案總管拖拉檔案。
Windows 11 內建「Windows 終端機」,可以同時開 PowerShell、CMD 與多個 WSL 分頁,並支援自訂配色與字型。搭配 VS Code 的 WSL 擴充套件,你可以在 Windows 上編輯程式碼,但執行、除錯、套件安裝全部發生在 Linux 環境裡,這是目前 Windows 上開發 Linux 專案最順手的組合。
另外,如果你是 Windows 11 使用者,WSLg 已經內建,可以直接在 WSL 裡執行 GUI 程式(例如 gedit、gnome-calculator),視窗會像原生 Windows 應用一樣彈出來,不需要額外設定 X Server。Windows 10 使用者則需要 19044 以上並改用 Microsoft Store 版本的 WSL 才能享用。
進階調校:.wslconfig 與 wsl.conf
WSL2 預設會吃掉最多 50% 的實體記憶體,而且虛擬機的記憶體「只增不減」,這常讓使用者看到工作管理員裡的 Vmmem 行程佔用飆高而緊張。你可以在使用者目錄(C:\Users\你的名稱\)建立 .wslconfig 檔案來限制資源:
[wsl2]
memory=8GB
processors=4
swap=2GB
localhostForwarding=true
修改後執行 wsl --shutdown 重新啟動才會生效。至於 Linux 內部的設定(例如啟用 systemd、調整掛載參數),則要編輯 /etc/wsl.conf:
[boot]
systemd=true
[automount]
options = "metadata,umask=22,fmask=11"
啟用 systemd 後,systemctl 才能真正管理服務,這是執行 Docker、MySQL 等常駐程式的重要前提。要注意的是,systemd 支援需要較新版本的 WSL(0.67.6 以上),若你的系統較舊,記得先執行 wsl --update。
三、VirtualBox 的定位:完整作業系統的隔離沙盒
講完 WSL2,我們也得公平地看待 VirtualBox。它不是「過時的產物」,而是解決完全不同問題的工具。WSL2 的目標是「讓你在 Windows 上順暢使用 Linux 命令列工具鏈」,VirtualBox 的目標則是「讓你在同一台電腦上跑一整套完整的作業系統」。
VirtualBox 的運作原理與優勢
VirtualBox 是 Oracle 維護的開源虛擬化軟體,屬於 Type-2 hypervisor(安裝在宿主作業系統之上的虛擬化層)。它會模擬完整的 x86 硬體,包括 BIOS/UEFI、主機板晶片組、顯示卡、網路卡、音效卡、USB 控制器,因此來賓作業系統幾乎「以為自己跑在真機上」。這帶來幾個 WSL2 完全比不上的能力:
VirtualBox 的效能代價
這些能力的代價就是效能與資源。VirtualBox 必須模擬硬體、攔截特權指令、維護虛擬裝置狀態,即使是「硬體輔助虛擬化」也還是有相當的額外開銷。開一台 Ubuntu 桌面虛擬機,從按下啟動到桌面可用,通常要 30 秒到 1 分鐘以上(視硬體與設定而定),而且開機後就固定佔用 2~4 GB 記憶體,關機才會釋放。相比之下,WSL2 開一個終端機只要 1~3 秒,關掉全部視窗後 VM 會自動休眠。
四、效能對比:WSL2 與 VirtualBox 的真實差距
接下來的數據是基於一般中階筆電(i5 / Ryzen 5、16 GB 記憶體、NVMe SSD)的實測經驗值,實際數字會因硬體與設定而異,但趨勢是一致的。
啟動速度與常駐資源佔用
WSL2 的冷啟動通常在 1~3 秒內完成(首次或更新後較久),而且只在你有指令執行時才活躍。VirtualBox 啟動一台 Ubuntu Server 至少 15~30 秒,若是有桌面環境的版本,一分鐘上下很常見。記憶體方面,WSL2 初始約佔 300~700 MB,跑起服務後才逐步增加;VirtualBox 則是一開機就配置固定記憶體,哪怕裡面什麼都沒跑,那塊記憶體也被鎖住了。
磁碟 I/O:跨檔案系統是最大陷阱
這是 WSL2 最常被抱怨、也最容易被誤解的一點。很多人把專案放在 /mnt/c/Users/... 底下,然後執行 npm install 或 git status,結果慢到懷疑人生——這不是 WSL2 爛,而是你放錯位置了。
WSL2 存取 Linux 原生檔案系統(/home/使用者/ 底下的 ext4.vhdx)時,效能幾乎等同原生;但存取 /mnt/c 時,資料必須經過 9P 協定跨越虛擬機邊界,每個檔案操作都有額外開銷。對「大量小檔案」的操作(套件安裝、Git、編譯),速度落差可以到 5~10 倍。
結論很簡單:程式碼放 Linux 檔案系統,用 Windows 端的編輯器去連它(VS Code 的 WSL Remote 就是為此設計)。VirtualBox 則沒有這個問題,因為共用資料夾雖然也慢,但至少整台虛擬機是同一套檔案系統,你不會遇到「同一份專案在兩個檔案系統要跑兩次」的困擾。
網路、GPU 與其他效能面向
網路方面,WSL2 預設使用 NAT 模式,虛擬機有獨立 IP,Windows 端可透過 localhost 直接連線(localhostForwarding),但從區網其他裝置要連進 WSL2 的服務,就得設定連接埠轉發。VirtualBox 同樣預設 NAT,但提供橋接模式、僅主機模式、內部網路等多種選擇,網路拓撲的彈性較高。Windows 11 搭配 WSL 2.0 以上已支援 mirrored 網路模式,這點差距正在縮小。
GPU 加速是 WSL2 明顯勝出的項目。只要你的 Windows 端裝好 NVIDIA 驅動,WSL2 內的 CUDA 就能直接使用顯卡,跑 PyTorch 訓練、TensorFlow 推論完全沒問題(記得 WSL 內不要再裝一次驅動程式)。VirtualBox 的 3D 加速則相當有限,OpenGL 支援不完整,DirectX 靠轉換層,實務上不適合任何 GPU 密集工作。
效能項目
WSL2
VirtualBox
冷啟動時間
1~3 秒
15 秒~1 分鐘以上
閒置記憶體佔用
低(300~700 MB 起)
高(開機即鎖定配置)
Linux 原生檔案 I/O
接近原生
受虛擬磁碟層影響,略慢
跨系統檔案 I/O
明顯較慢(9P)
共用資料夾同樣較慢
CPU 密集運算
接近原生(約 95% 以上)
約 80~95%,視設定而定
GPU / CUDA
支援(NVIDIA 直通)
極有限,不建議
桌面/圖形介面
WSLg 支援單一視窗應用
完整桌面環境,支援音效
五、相容性對比:Hyper-V 衝突、巢狀虛擬化與實務地雷
如果說效能是「誰快誰慢」的問題,相容性就是「誰跟誰打架」的問題。這一段是所有同時想用 WSL2 與 VirtualBox 的人最頭痛的區域,也是論壇上重複率最高的提問。
WSL2 與 VirtualBox 到底能不能共存?
先講結論:可以共存,但有代價。
問題的根源在於硬體虛擬化指令集(Intel VT-x / AMD-V)的獨佔性。傳統上,Type-1 hypervisor(如 Hyper-V)一旦接管,其他虛擬化軟體就無法直接使用這些指令。WSL2 因為依賴「虛擬機平台」,等於在你的系統上啟用了 Hyper-V 層,VirtualBox 偵測到之後,就無法使用原生的 VT-x 加速。
不過從 VirtualBox 6.0 開始,Oracle 加入了對 Windows Hypervisor Platform(WHP)的支援。只要你在 Windows 的「開啟或關閉 Windows 功能」中勾選「Windows Hypervisor Platform」,VirtualBox 就能以 WHP 作為後端執行,也就是「架構在 Hyper-V 之上的虛擬機」。這樣 WSL2 和 VirtualBox 就能同時運作。
但請注意代價:這種模式下 VirtualBox 的效能會明顯下降,尤其是 CPU 密集與磁碟 I/O 的工作,可能只剩原本的 60~80%,而且某些進階功能(如巢狀虛擬化、部分 3D 加速)可能無法使用。如果你的 VirtualBox 是拿來跑效能量測或需要精確硬體行為的測試,這不是理想的組合。
三種常見的配置選擇
根據你的使用重心,可以選以下三種配置之一:
bcdedit /set hypervisorlaunchtype off 並重開機,反之設為 auto。麻煩,但能同時取得兩邊的最佳效能。至於怎麼確認 VirtualBox 是不是走 WHP 後端,可以在虛擬機的「設定 → 系統 → 加速」頁籤查看,若顯示「Hyper-V 執行API」即代表走的是 WHP。若顯示「VT-x/AMD-V」則是原生模式,代表 Hyper-V 沒有啟用。
常見錯誤訊息與排解方式
以下是實際使用時最常遇到的幾個狀況:
wsl --update 通常能解決。.wslconfig 中限制 memory 上限,並在不用時執行 wsl --shutdown 釋放。wsl --manage Ubuntu --set-sparse true(需較新版本),或用 diskpart 手動壓縮。六、怎麼選?依使用情境的決策指南
講了這麼多,最後還是要回到「你拿它做什麼」。以下是依常見情境整理的建議。
應該選 WSL2 的情況
你需要 GPU 加速的機器學習環境,想在 Windows 上跑 CUDA 但不想切換作業系統。
你重視開機速度與記憶體使用效率,不希望一台虛擬機常駐吃掉資源。
你的工作以命令列為主,不需要 Linux 桌面環境或音效裝置。
應該選 VirtualBox 的情況
你需要 Linux 桌面環境(GNOME、KDE)做圖形化操作,或需要音效、USB 裝置直通。
你需要快照、複製、OVA 匯出等「可回滾、可攜帶」的環境管理能力。
你要測試可能有風險的軟體,需要完整隔離。
你需要多台虛擬機組成小型網路做 Lab 實驗(例如架設 AD 網域、模擬多節點叢集)。
使用情境
建議工具
理由
網頁/後端開發
WSL2
啟動快、工具鏈完整、與 VS Code 整合良好
Docker 容器開發
WSL2(+ Docker Desktop)
原生核心支援,效能遠勝虛擬機內跑 Docker
CUDA / 機器學習
WSL2
GPU 直通支援,VirtualBox 幾乎不可用
Linux 桌面體驗
VirtualBox
完整桌面、音效、USB 支援
測試 Windows Server
VirtualBox
WSL2 不支援 Windows 來賓
多節點網路 Lab
VirtualBox
網路模式彈性、可建立內部網路
需要快照與環境回滾
VirtualBox
WSL2 無原生快照機制
資源有限的舊筆電
WSL2
記憶體與 CPU 佔用明顯較低
七、常見問題 FAQ
Q1:裝了 WSL2 之後,VirtualBox 的虛擬機變得超級慢,怎麼辦?
先確認「Windows Hypervisor Platform」是否已啟用,讓 VirtualBox 能使用 WHP 後端。若已啟用仍覺得慢,那就是共存架構的先天限制,建議改用「雙環境切換」策略,需要跑 VirtualBox 時暫時關閉 Hyper-V。
Q2:WSL2 可以跑完整的 Linux 桌面嗎?
技術上可以透過安裝 XFCE 等桌面環境並用 XRDP 連線,但體驗不如 VirtualBox 順暢,且會失去 WSL2「輕量快速」的優勢。若真的需要桌面環境,建議老老實實用 VirtualBox。
Q3:WSL2 的資料會不會不見?
WSL2 的資料存在 ext4.vhdx 虛擬磁碟中,正常使用不會消失。但請注意:wsl --unregister 會直接刪除整個發行版的資料,執行前務必備份重要檔案到 Windows 端或雲端。
Q4:我可以在 WSL2 裡面再開 VirtualBox 嗎?
理論上可以透過巢狀虛擬化做到,但設定複雜、效能極差,實務上不建議。真有需求請直接在 Windows 端開 VirtualBox。
Q5:WSL2 需要防毒軟體嗎?
WSL2 的檔案系統可以透過 \\wsl.localhost 被 Windows 端存取,因此 Windows Defender 的即時防護多少會掃到。但 Linux 端的執行檔不會在 Windows 上執行,風險相對較低。若覺得掃描拖慢 I/O,可考慮將 WSL 目錄加入排除清單。
八、結語:不是取代,而是分工
回顧這幾年的變化,WSL2 確實大幅降低了 Windows 使用者進入 Linux 開發環境的門檻。它把「開一台虛擬機」這件麻煩事,簡化成「開一個終端機」這麼自然。對八成以上的開發者來說,WSL2 已經足夠應付日常工作,效能甚至比在虛擬機裡跑同樣的工具鏈好上一截。
但 VirtualBox 並沒有因此失去價值。當你需要一台「完整、隔離、可快照、可攜帶」的電腦時,VirtualBox 仍然是免費方案中最成熟的選擇。真正聰明的做法不是二選一,而是理解兩者的定位:WSL2 當你的日常開發工作台,VirtualBox 當你的測試沙盒。配置上記得把「Windows Hypervisor Platform」勾起來,讓兩者和平共存,偶爾遇到效能瓶頸時,再依需求切換。
希望這篇由雅寶社區 · 頂客論壇 3C 科技教學專欄整理的整理,能幫你少走一些冤枉路。如果你在安裝或設定過程中遇到本文沒涵蓋的狀況,歡迎到論壇的技術討論區發文,把錯誤訊息與系統版本貼出來,社群裡有不少實際踩過坑的朋友可以一起幫忙排查。
```
💬 想說點什麼?
歡迎到留言板分享你的想法、心得或疑問。
💬 前往留言板 →