隨著 ASP.NET Core 跨平台、服務容器化,這年頭就算寫 .NET 也加減需要懂一些 Linux 才好在江湖走跳。Windows 10 新增了 Linux 子系統(Windows Subsystem for Linux,WSL),以 Hyper-V VM 方式在 Windows 執行一套 Linux 系統,方便使用者開發或測試。2020 年 9 月 Windows 10 1903 & 1909 版本開始支援 WSL2,與 WSL 相比有革命性的進化,包含完整的 Linux 核心、支援完整的系統 API、檔案效能大幅提升(tgz 解壓比 WSL 快 20 倍)、以 Managed VM 取代傳統 Hyper-V VM,跟 Windows 做到無縫整合(後面會試玩一下),讓人耳目一新。

之前在 ThinkPad T470p 沒什麼玩 WSL 或 VM,主要是 16G 記憶體吃緊,SSD 也不夠快也不夠大 (256G x 2),跑起有點遲滯感。新工作機有 64G RAM 跟 7GB/s 2TB SSD 撐腰,封印解決,馬上裝起來玩玩。在 Windows 11 wsl --install 會預設安裝 WSL2 Ubuntu,但要執行時冒出以下錯誤:

Installing, this may take a few minutes...
WslRegisterDistribution failed with error: 0x800701bc
Error: 0x800701bc WSL 2 ???????????????????? visit https://aka.ms/wsl2kernel

Press any key to continue...

錯誤訊息有一部分變成亂碼,但依所附連結文侔是缺了 WSL2 Linux 核心更新套件。感覺 WSL2 已屬 Windows 11 標準功能,應該要自動更新才對。研究了一下,發現是要開啟「接收其他 Microsoft 產品的更新」選項:

之後再檢查更新就會自動下載安裝 Windows Subsystem for Linux Update:

WSL2 安裝完成,迫不及待試了一下所謂的無縫整合。照著 Run Linux GUI apps on the Windows Subsystem for Linux 跑 apt install 安裝了幾個 GUI 程式,有些程式會在 Windows 開始加入捷徑(有企鵝圖示者):

執行起來就像一般的 Windows 視窗,可以拖拉、縮放,下圖是 Windows 檔案總管跟 Linux 檔案管理員同台演出的畫面:

另外有些程式可透過 Shell 指令啟動:

Windows Terminal 也會新增 Ubuntu 設定檔,隨時隨地切換到 Linux 環境測試,比開 Hyper=V VM 跑 Linux 快 N 倍。

以後不能用電腦裝 Windows 沒有環境可以學 Linux 當藉口了,哈!


Comments

# by Lyle

感謝分享~ 遇到相同的錯誤 😄

Post a comment