一、什麼是 WSL2
WSL 是適用於 Linux 的 Windows 子系統(Windows Subsystem for Linux),可以讓開發人員原生執行 GNU/Linux 環境—— 包括大多數命令列工具、實用工具和應用程式。也就是說,對於使用 Windows10 系統的開發人員,要開發 Linux 環境下的程式——尤其是Linux環境下的 WEB 程式以及處理開源專案,以前只能使用虛擬機器安裝 Linux,但是虛擬機器在使用中相當於一臺獨立的計算機,有許多不足,比如效能低、啟動慢、管理不便、和宿主機 Win10 系統互操作不方便。WSL 就是為使用 Windows10 系統的軟體開發人員準備的 Linux 開發環境。WSL2 是第二代 WSL,包含在2020年5月正式釋出 Windows 10 v2004 版中。相比第一代,新的 WSL2 重新設計了架構,使用真正的 Linux 核心,幾乎具有 Linux 的所有完整功能。啟用WSL2的 Linux 系統啟動時間非常快,記憶體佔用很少,並且,WSL 2 還可以直接原生執行 Docker,VS Code 編輯器還有 Remote-WSL 外掛,相對於完整的 linux 虛擬機器只是不支援 systemctl、systemd,不能直接執行圖形桌面。Windows 也越來越向虛擬平臺靠攏,Windows NT 核心和 Linux 核心都是執行在虛擬平臺之上的,是平級的。
二、更新 Windows 版本。開啟微軟官方文件,檢視WSL2安裝說明。
https://docs.microsoft.com/zh-cn/windows/wsl/wsl2-installdocs.microsoft.com
Windows 10 版本要求已更新到版本 2004 的內部版本 19041 或更高版本,通過按 Windows 徽標鍵 + R,檢查你的 Windows 版本,然後鍵入 winver,選擇“確定”。或者開啟 Windows 設定、系統、關於,檢視系統版本。
關於win10 1909版接收不到 2004版更新的問題:
開啟 Windows 設定、更新和安全、Windows 更新,高階設定,將延遲天數設定為 1 天。再重啟系統後就能收到 V2004版的更新了。
三、安裝元件1、安裝『適用於 Linux 的 Windows 子系統』和『虛擬機器平臺』可選元件,可以用兩種方式安裝。
(1)用命令列安裝。以管理員身份開啟 PowerShell 並執行命令:
dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestartdism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart
(2)開啟 『控制面板』『Windows功能』對話方塊安裝或檢視。
2、WSL 2 需要更新其核心元件。有關資訊,請訪問
https://aka.ms/wsl2kernel
按照此文件說明,下載並安裝 wsl_update_x64.msi (這個升級包下載可能比較慢,可以用迅雷下載有加速效果。)
3、預設啟用第二代 WSL2
預設安裝 Linux 時是第一代 WSL,要在以後安裝 Linux 的時候預設啟用 WSL2,在Windows PowerShell中執行命令:wsl --set-default-version 2
四、安裝 Ubuntu1、如果已經安裝了 Linux 系統並且是第一代,可以升級到 WSL2。同樣,WSL2也可以降級到WSL1。
wsl -l -v #檢視已安裝Linux版本和名稱,完整命令格式:wsl --list --verbosewsl --set-version Ubuntu 2 #升級到WSL2,其中 Ubuntu 是已經安裝的Linux名稱,命令格式:wsl --set-version <Distro> <Version>
2、開啟 store ,搜尋 ubuntu20.04 ,點選獲取,大約443MB,下載速度視網路情況,下載完成後會自動啟動安裝,安裝時要求輸入一個新的使用者名稱和密碼。
五、安裝 Windows TerminalWindows Terminal 對 PowerShell、SSH、WSL 都提供的支援,是新的命令列應用程式,具有多標籤、分割視窗、快捷鍵、完整的Unicode字元支援等功能,可以更加方便的配合 WSL2 在 Linux 的命令列下操作。開啟 Microsoft Store ,搜尋 Windows Terminal 並安裝。
六、基本使用1、啟動與關閉
開啟 Windows 開始選單,選擇 ubuntu 啟動,或者在 Windows Terminal 中輸入 wsl 啟動,輸入 exit 退出。
2、啟動 WSL2 之後,會在工作管理員中發現多了一個 虛擬機器工作執行緒。
3、在目錄
%LOCALAPPDATA%\\Packages\\<PackageFamilyName>\\LocalState\\下會出現一個 ext4.vhdx 檔案。WSL2 將所有 Linux 檔案儲存在使用 ext4 檔案系統的 VHD 中。此 VHD 自動調整大小以滿足儲存需求。這個VHD的初始最大儲存量是256GB,當然大小是可以調整的。而在 WSL 1 中檔案是放在 C 盤的。
4、當從 Linux 應用程式訪問 Windows 檔案或從 Windows 應用程式訪問 Linux 檔案時,與 WSL1 相比檔案傳輸速度較慢, 這是 WSL2 體系結構變化使用了 VHDX 虛擬硬碟導致的結果。
5、wsl2 中預設有一個具有自己 IP 地址的虛擬化乙太網介面卡,在 ubuntu 中查詢 eth0 介面的 IP 地址命令:ip addr | grep eth0
從 windows 訪問 Linux 應用程式可以直接使用 localhost 訪問,也可以使用 WSL2 的IP地址。
6、在 WSL2 中用可以直接開啟 Windows 應用程式。比如開啟 bashshell 並執行 explorer.exe ,就可以開啟 Windows 檔案資源管理器。
https://docs.microsoft.com/zh-cn/windows/wsl/wsl2-install待續:Win10 + WSL2 + VS Code + Terminal 配置開發環境