在 Windows 上運行 Linux 程序


安裝適用於 Linux 的 Windows 子系統 (WSL) 時有兩個選項:

  • 簡化安裝 (預覽版) :wsl --install

    要使用 wsl --install 簡化安裝命令,你需要加入 Windows 預覽體驗計划 並安裝 Windows 10 的預覽版(OS 版本 20262 或更高版本),但不需要執行手動安裝步驟。 只需使用管理員權限打開命令窗口並運行 wsl --install,重啟后即可使用 WSL。

  • 手動安裝 :按照下列 6 個步驟進行操作。

    下面列出了 WSL 的手動安裝步驟,可按這些步驟在任意版本的 Windows 10 上安裝 Linux。

Windows 預覽體驗計划的簡化安裝

在 Windows 10 的最新 Windows 預覽體驗預覽版中,顯著改進了適用於 Linux 的 Windows 子系統的安裝過程,將以下手動步驟替換為單個命令。

要使用 wsl --install 簡化安裝命令,必須先完成以下操作:

  • 加入 Windows 預覽體驗計划
  • 安裝 Windows 10 的預覽版(OS 版本 20262 或更高版本)。
  • 使用管理員特權打開命令行窗口

滿足這些要求后,可通過以下方式安裝 WSL:

  • 在管理員模式下打開命令行,並輸入以下命令:wsl.exe --install
  • 重啟計算機

首次啟動新安裝的 Linux 分發版時,將打開一個控制台窗口,要求你等待將文件解壓縮並存儲到電腦上。 未來的所有啟動時間應不到一秒。

然后,需要為新的 Linux 分發版創建用戶帳戶和密碼

祝賀你!現已成功安裝並設置了與 Windows 操作系統完全集成的 Linux 分發!

--install 命令執行以下操作:

  • 啟用可選的 WSL 和虛擬機平台組件
  • 下載並安裝最新 Linux 內核
  • 將 WSL 2 設置為默認值
  • 下載並安裝 Linux 分發版(可能需要重啟)

默認情況下,安裝的 Linux 分發版為 Ubuntu。 可以使用 wsl --install -d <Distribution Name> 進行更改。 (將 <Distribution Name> 替換為所需分發版的名稱。)初始安裝后,可以使用 wsl --install -d <Distribution Name> 命令將其他 Linux 分發版添加到計算機。

若要查看可用 Linux 分發版的列表,請輸入 wsl --list --online

手動安裝步驟

如果你沒有使用 Windows 預覽體驗版本,則需要按照以下步驟手動啟用 WSL 所需的功能。

步驟 1 - 啟用適用於 Linux 的 Windows 子系統

需要先啟用“適用於 Linux 的 Windows 子系統”可選功能,然后才能在 Windows 上安裝 Linux 分發。

以管理員身份打開 PowerShell 並運行:

PowerShell
dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart 

建議現在轉到步驟 #2,更新到 WSL 2,但如果只想安裝 WSL 1,現在可以重新啟動計算機,然后繼續執行步驟 6 - 安裝所選的 Linux 發行版。 若要更新到 WSL 2,請等待重新啟動計算機,然后繼續執行下一步。

步驟 2 - 更新到 WSL 2

若要更新到 WSL 2,需要運行 Windows 10。

要求

  • 對於 x64 系統:版本 1903 或更高版本,采用 內部版本 18362 或更高版本。
  • 對於 ARM64 系統:版本 2004 或更高版本,采用 內部版本 19041 或更高版本。
  • 低於 18362 的版本不支持 WSL 2。 使用 Windows Update 助手更新 Windows 版本。

若要檢查 Windows 版本及內部版本號,選擇 Windows 徽標鍵 + R,然后鍵入“winver”,選擇“確定”。 (或者在 Windows 命令提示符下輸入 ver 命令)。 更新到“設置”菜單中的最新 Windows 版本

 備注

如果運行的是 Windows 10 版本1903 或 1909,請在 Windows 菜單中打開“設置”,導航到“更新和安全性”,然后選擇“檢查更新”。 內部版本號必須是 18362.1049+ 或 18363.1049+,次要內部版本號需要高於 .1049。 閱讀詳細信息:WSL 2 即將支持 Windows 10 版本 1903 和 1909。 請參閱疑難解答說明

步驟 3 - 啟用虛擬機功能

安裝 WSL 2 之前,必須啟用“虛擬機平台”可選功能。

以管理員身份打開 PowerShell 並運行:

PowerShell
dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart 

重新啟動 計算機,以完成 WSL 安裝並更新到 WSL 2。

步驟 4 - 下載 Linux 內核更新包

  1. 下載最新包:

     備注

    如果使用的是 ARM64 計算機,請下載 ARM64 包。 如果不確定自己計算機的類型,請打開命令提示符或 PowerShell,並輸入:systeminfo | find "System Type"

  2. 運行上一步中下載的更新包。 (雙擊以運行 - 系統將提示你提供提升的權限,選擇“是”以批准此安裝。)

安裝完成后,請繼續執行下一步 - 在安裝新的 Linux 分發時,將 WSL 2 設置為默認版本。 (如果希望將新的 Linux 安裝設置為 WSL 1,請跳過此步驟。)

 備注

有關詳細信息,請參閱 Windows 命令行博客上的文章對更新 WSL2 Linux 內核的更改

步驟 5 - 將 WSL 2 設置為默認版本

打開 PowerShell,然后在安裝新的 Linux 發行版時運行以下命令,將 WSL 2 設置為默認版本:

PowerShell
wsl --set-default-version 2 

 備注

從 WSL 1 更新到 WSL 2 可能需要幾分鍾才能完成,具體取決於目標分發版的大小。 如果從 Windows 10 周年更新或創意者更新運行 WSL 1 的舊(歷史)安裝,可能會遇到更新錯誤。 按照這些說明卸載並刪除任何舊分發

如果 wsl --set-default-version 結果為無效命令,請輸入 wsl --help。 如果 --set-default-version 未列出,則表示你的 OS 不支持它,你需要更新到版本 1903(內部版本 18362)或更高版本。

運行命令后如果看到此消息:WSL 2 requires an update to its kernel component. For information please visit https://aka.ms/wsl2kernel。 仍需要安裝 MSI Linux 內核更新包。

步驟 6 - 安裝所選的 Linux 分發

  1. 打開 Microsoft Store,並選擇你偏好的 Linux 分發版。

    Microsoft Store 中的 Linux 分發版的視圖

    單擊以下鏈接會打開每個分發版的 Microsoft Store 頁面:

  2. 在分發版的頁面中,選擇“獲取”。

    Microsoft Store 中的 Linux 分發版

首次啟動新安裝的 Linux 分發版時,將打開一個控制台窗口,系統會要求你等待一分鍾或兩分鍾,以便文件解壓縮並存儲到電腦上。未來的所有啟動時間應不到一秒。

然后,需要為新的 Linux 分發版創建用戶帳戶和密碼

Windows 控制台中的 Ubuntu 解包

祝賀你!現已成功安裝並設置了與 Windows 操作系統完全集成的 Linux 分發!

安裝 Windows 終端(可選)

Windows 終端可啟用多個選項卡(在多個 Linux 命令行、Windows 命令提示符、PowerShell 和 Azure CLI 等之間快速切換)、創建鍵綁定(用於打開或關閉選項卡、復制粘貼等的快捷方式鍵)、使用搜索功能,以及使用自定義主題(配色方案、字體樣式和大小、背景圖像/模糊/透明度)。 了解詳細信息。

安裝 Windows 終端

Windows 終端

將分發版版本設置為 WSL 1 或 WSL 2

可打開 PowerShell 命令行並輸入以下命令(僅在 Windows 內部版本 18362 或更高版本中可用),檢查分配給每個已安裝的 Linux 分發版的 WSL 版本:wsl -l -v

PowerShell
wsl --list --verbose 

若要將分發版設置為受某一 WSL 版本支持,請運行:

PowerShell
wsl --set-version <distribution name> <versionNumber> 

請確保將 <distribution name> 替換為你的分發版的實際名稱,並將 <versionNumber> 替換為數字“1”或“2”。 可以隨時更改回 WSL 1,方法是運行與上面相同的命令,但將“2”替換為“1”。

此外,如果要使 WSL 2 成為你的默認體系結構,可以通過此命令執行該操作:

PowerShell
wsl --set-default-version 2 

這會將安裝的任何新分發版的版本設置為 WSL 2。

排查安裝問題

下面是相關的錯誤和建議的修復措施。 有關其他常見錯誤及其解決方法,請參閱 WSL 故障排除頁

  • 安裝失敗並出現錯誤 0x80070003

    • 適用於 Linux 的 Windows 子系統只能在系統驅動器(通常是 C: 驅動器)中運行。 請確保分發版存儲在系統驅動器上:
    • 打開“設置”->“系統”-->“存儲”-> “更多存儲設置”: 更改新內容的保存位置” 用於在 C: 驅動器中安裝應用的系統設置屏幕截圖
  • WslRegisterDistribution 失敗並出現錯誤 0x8007019e

    • 未啟用“適用於 Linux 的 Windows 子系統”可選組件:
    • 打開“控制面板” -> “程序和功能” -> “打開或關閉 Windows 功能”-> 選中“適用於 Linux 的 Windows 子系統”,或使用本文開頭所述的 PowerShell cmdlet。
  • 安裝失敗,出現錯誤 0x80070003 或錯誤 0x80370102

    • 請確保在計算機的 BIOS 內已啟用虛擬化。 有關如何執行此操作的說明因計算機而異,並且很可能在 CPU 相關選項下。
  • 嘗試升級時出錯:Invalid command line option: wsl --set-version Ubuntu 2

    • 請確保已啟用適用於 Linux 的 Windows 子系統,並且你使用的是 Windows 內部版本 18362 或更高版本。 若要啟用 WSL,請在 PowerShell 提示符下以具有管理員權限的身份運行此命令:Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux
  • 由於虛擬磁盤系統的某個限制,無法完成所請求的操作。虛擬硬盤文件必須是解壓縮的且未加密的,並且不能是稀疏的。

    • 取消選中“壓縮內容”(如果已選中“加密內容”,請一並取消選中),方法是打開 Linux 發行版的配置文件文件夾。 它應位於 Windows 文件系統上的一個文件夾中,類似於:USERPROFILE%\AppData\Local\Packages\CanonicalGroupLimited...
    • 在此 Linux 發行版配置文件中,應存在一個 LocalState 文件夾。 右鍵單擊此文件夾可顯示選項的菜單。 選擇“屬性”>“高級”,然后確保未選擇(未勾選)“壓縮內容以節省磁盤空間”和“加密內容以保護數據”復選框。 如果系統詢問是要將此應用到當前文件夾還是應用到所有子文件夾和文件,請選擇“僅此文件夾”,因為你只是要清除壓縮標志。 完成此操作后,wsl --set-version 命令應正常工作。

WSL 發行版屬性設置的屏幕截圖

 備注

在我的示例中,我的 Ubuntu 18.04 發行版的 LocalState 文件夾位於 C:\Users<my-user-name>\AppData\Local\Packages\CanonicalGroupLimited.Ubuntu18.04onWindows_79rhkp1fndgsc

請檢查 WSL Docs GitHub 主題 #4103,其中跟蹤了此問題以提供更新的信息。

  • 無法將詞語“wsl”識別為 cmdlet、函數、腳本文件或可運行程序的名稱。

  • 錯誤:此更新僅適用於裝有適用於 Linux 的 Windows 子系統的計算機。

    • 若要安裝 Linux 內核更新 MSI 包,需要 WSL,應先啟用它。 如果失敗,將看到以下消息:This update only applies to machines with the Windows Subsystem for Linux
    • 出現此消息有三個可能的原因:
    1. 你仍使用舊版 Windows,不支持 WSL 2。 有關版本要求和要更新的鏈接,請參閱步驟 #2。

    2. 未啟用 WSL。 需要返回到步驟 #1,並確保在計算機上啟用了可選的 WSL 功能。

    3. 啟用 WSL 后,需要重新啟動才能使其生效,請重新啟動計算機,然后重試。

  • 錯誤:WSL 2 要求對其內核組件進行更新。若需了解相關信息,請訪問 https://aka.ms/wsl2kernel 。

    • 如果 %SystemRoot%\system32\lxss\tools 文件夾中缺少 Linux 內核包,會遇到此錯誤。 若要解決此問題,請在安裝說明的步驟 #4 中安裝 Linux 內核更新 MSI 包。 可能會需要從“添加或刪除程序”卸載 MSI,然后重新安裝。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM