針對適用於 Linux 的 Windows 子系統進行疑難排解

我們涵蓋了一些與下面 WSL 相關的常見疑難排解案例,但請考慮在GitHub 上搜尋 WSL 產品存放庫中所記載的問題。

提出問題、bug 報告、功能要求

WSL 產品存放庫問題可讓您:

  • 搜尋現有的問題 ,以查看是否有任何與您遇到的問題相關聯的問題。 請注意,在搜尋列中,您可以移除「是:開啟」以包含已在搜尋中解決的問題。 請考慮對您想要表達的任何未解決問題進行批註,或提供最新的問題。
  • 提出 新的問題。 如果您發現 WSL 有問題,而且似乎沒有現有的問題,您可以選取 [綠色 新問題 ] 按鈕,然後選擇 [ WSL-Bug 報告]。 您將需要包含問題的標題、您的 Windows 組建編號 (執行 cmd.exe /c ver 以查看目前的組建 # ) 、您執行的是 WSL 1 或2、目前的 Linux 核心版本 # (執行 wsl.exe --statuscat /proc/version) 、您散發套件的版本號碼 (執行 lsb_release -r) 、任何其他相關軟體版本、所需的行為, 實際的行為,以及診斷記錄(如果有的話)。 如需詳細資訊,請參閱 參與 WSL
  • 選取 [綠色 新問題] 按鈕,然後選取 [功能要求],以提出功能要求。 您將需要解決一些描述要求的問題。

您也可以:

安裝問題

  • 安裝失敗,發生錯誤 0x80070003

    • 適用於 Linux 的 Windows 子系統只會在您的系統磁碟機上執行 (通常是您的 C: 磁碟機)。 請確定發行版本儲存在您的系統磁碟機上:
    • 開啟 設定 -> 系統 --> 儲存體 -> 其他儲存體設定:變更新內容的儲存位置 以將應用程式安裝在 C:磁片磁碟機上的系統設定圖片
  • WslRegisterDistribution 失敗,發生錯誤 0x8007019e

    • 未啟用適用於 Linux 的 Windows 子系統選用元件:
    • 開啟 [控制台] -> [程式和功能] -> [開啟或關閉 Windows 功能] -> 勾選 [Windows 子系統 Linux 版] ,或使用本文開頭所述的 PowerShell Cmdlet。
  • 安裝失敗,發生錯誤 0x80070003 或錯誤0x80370102

    • 請確定已在電腦的 BIOS 內啟用虛擬化。 有關如何執行此操作的指示會因電腦而異,並且很可能與 CPU 相關。
    • WSL2 需要您的 CPU 支援第二層位址轉譯 (SLAT) 功能,這是在 Intel Nehalem 處理器 (Intel Core 第1代) 和 AMD 皓龍所引進。 舊版 Cpu (例如 Intel Core 2 的) 將無法執行 WSL2,即使已成功安裝虛擬機器平臺也是如此。
  • 嘗試升級時發生錯誤Invalid command line option: wsl --set-version Ubuntu 2

    • 請確定您已啟用 Windows 子系統 Linux 版,且您使用 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、函式、指令檔或可執行程式的名稱。

  • 錯誤: Windows 子系統 Linux 版沒有已安裝的發行版本。

    • 如果您在已安裝 WSL 發行版本之後收到此錯誤:
    1. 從命令列叫用前至少執行一次散發。
    2. 檢查您是否可以執行個別的使用者帳戶。 以更高的許可權在管理模式下執行您的主要使用者帳戶 () 應該不會導致此錯誤,但您應該確定不會不慎執行 Windows 隨附的內建系統管理員帳戶。 這是個別的使用者帳戶,不會依設計顯示任何已安裝的 WSL 發行版本。 如需詳細資訊,請參閱 啟用和停用內建的系統管理員帳戶
    3. WSL 可執行檔只會安裝到原生系統目錄。 當您在64位 Windows (或在 ARM64 上執行32位程式時,任何非原生的組合) ,裝載的非原生進程實際上會看到不同的 System32 資料夾。 (在 x64 Windows 上看到的32位進程會儲存在磁片 at \ Windows \SysWOW64. ) 您可以藉由查看虛擬資料夾,從裝載的進程存取「原生」 system32: \Windows\sysnative 。 它實際上不會出現在磁片上,但請記住您,但是 filesystem 路徑解析程式會發現它。
  • 錯誤:此更新僅適用於具有 Windows 子系統 Linux 版的機器。

    • 若要安裝 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,然後重新安裝。

常見問題

我已使用 Windows 10 1903 版,但還是沒有看到 WSL 2 的選項。

這很可能是因為您的電腦尚未取得 WSL 2 的反向修補。 若要解決此問題,最簡單的方式是前往 [Windows 設定],然後按一下 [檢查更新] 以在您的系統上安裝最新的更新。 請參閱取得反向修補的完整指示

如果您按 [檢查更新] 但仍未收到更新,則可以手動安裝 KB KB4566116

錯誤:0x1bc 發生於 wsl --set-default-version 2

當 [顯示語言] 或 [系統地區設定] 設定不是英文時,就可能發生這種情況。

wsl --set-default-version 2
Error: 0x1bc
For information on key differences with WSL 2 please visit https://aka.ms/wsl2

的實際錯誤 0x1bc 為:

WSL 2 requires an update to its kernel component. For information please visit https://aka.ms/wsl2kernel

如需詳細資訊,請參閱問題 5749

無法從 Windows 存取 WSL 檔

9p 通訊協定檔案伺服器在 Linux 端提供服務,以允許 Windows 存取 Linux 檔案系統。 如果您無法使用 Windows 上的 \\wsl$ 存取 WSL,可能是因為 9P 未正確啟動。

若要加以檢查,您可以使用:dmesg |grep 9p 來檢查開機記錄,若會顯示任何錯誤。 成功的輸出看起來如下所示:

[    0.363323] 9p: Installing v9fs 9p2000 file system support
[    0.363336] FS-Cache: Netfs '9p' registered for caching
[    0.398989] 9pnet: Installing 9P2000 support

如需此問題的進一步討論,請參閱此 Github 執行緒

無法啟動 WSL 2 發行版本,而且只會在輸出中看到 'WSL 2'

如果您的顯示語言不是英文,則可能會看到錯誤文字的截斷版本。

C:\Users\me>wsl
WSL 2

若要解決此問題,請造訪 https://aka.ms/wsl2kernel,並遵循該文件頁面上的指示手動安裝核心。

在 linux 中執行 windows .exe 時 command not found

使用者可以直接從 Linux 執行 Windows 可執行檔,例如 notepad.exe。 有時候,您可能會遇到「找不到命令」,如下所示:

$ notepad.exe
-bash: notepad.exe: command not found

如果您的 $PATH 中沒有 win32 路徑,interop 就不會找到 .exe。 您可藉由在 Linux 中執行 echo $PATH 來進行驗證。 您應該會在輸出中看到 win32 路徑 (例如,/mnt/c/Windows)。 如果看不到任何 Windows 路徑,最有可能是您的路徑遭到您的 Linux shell 覆寫。

以下是 Debian 上的 /etc/profile 對問題貢獻的範例:

if [ "`id -u`" -eq 0 ]; then
  PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
else
  PATH="/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games"
fi

Debian 上的正確方式是移除上述幾行。 您也可以在如下所示的指派期間附加 $PATH,但這會導致一些其他 WSL 和 VSCode 的問題。

if [ "`id -u`" -eq 0 ]; then
  PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:$PATH"
else
  PATH="/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games:$PATH"
fi

如需詳細資訊,請參閱問題 5296 和問題 5779

"Error:0x80370102 無法啟動虛擬機器,因為未安裝必要的功能。」

請啟用虛擬機器平台 Windows 功能,並確定已在 BIOS 中啟用虛擬化。

  1. 檢查 Hyper-V 系統需求

  2. 如果您的電腦是 VM,請手動啟用巢狀虛擬化。 以系統管理員身分啟動 powershell,並執行:

    Set-VMProcessor -VMName <VMName> -ExposeVirtualizationExtensions $true
    
  3. 請遵循電腦製造商的指導方針,了解如何啟用虛擬化。 一般而言,這可能會牽涉到使用系統 BIOS 來確保您的 CPU 上已啟用這些功能。 此程序的指示可能因電腦而異,請參閱 Bleeping Computer 的這篇文章中的範例。

  4. 啟用 Virtual Machine Platform 選用元件之後,請將您的電腦重新開機。

  5. 此外,如果您已安裝協力廠商的虛擬機器 (例如 VMware 或 VirtualBox) 則請確定您已在最新版本上安裝這些服務,以支援 HyperV (VMware 15.5.5 版 +VirtualBox 6 +) 或已關閉。

深入瞭解如何在虛擬機器中執行 Hyper-v 時 設定嵌套虛擬化

Bash 連線到 VPN 之後,會失去網路連線能力

如果在連線到 Windows 上的 VPN 之後,bash 失去網路連線能力,請從 bash 內嘗試這個因應措施。 這個因應措施可讓您透過 /etc/resolv.conf 手動覆寫 DNS 解析。

  1. 記下 VPN 的 DNS 伺服器,使其無法執行 ipconfig.exe /all
  2. 建立現有 resolv.conf sudo cp /etc/resolv.conf /etc/resolv.conf.new 的複本
  3. 取消連結目前的 resolv.conf sudo unlink /etc/resolv.conf
  4. sudo mv /etc/resolv.conf.new /etc/resolv.conf
  5. 開啟 /etc/resolv.conf
    a. 刪除檔案中的第一行,這一行會顯示「#此檔案由 WSL 自動產生。 若要停止自動產生此檔案,請移除這一行」。
    b. 將上述 (1) 中的 DNS 項目新增為 DNS 伺服器清單中的第一個項目。
    c. 關閉檔案。

當您中斷連線 VPN 之後,您必須將變更還原為 /etc/resolv.conf。 若要這麼做,請執行:

  1. cd /etc
  2. sudo mv resolv.conf resolv.conf.new
  3. sudo ln -s ../run/resolvconf/resolv.conf resolv.conf

啟動 WSL,否則安裝散發套件會傳回錯誤代碼

請遵循這些指示來收集詳細記錄,並在我們的 GitHub 上提出問題。

更新 WSL

有兩個 Windows 子系統 Linux 版元件可能需要更新。

  1. 若要更新 Windows 子系統 Linux 版本身,請使用 wsl --update PowerShell 或 CMD 中的命令。

  2. 若要更新特定 Linux 散發使用者二進位檔,請使用 apt-get update | apt-get upgrade 您想要更新的 linux 發行版本中的命令:。

Apt-get 升級錯誤

有些套件會使用我們尚未實作的功能。 例如,尚未支援 udev,而且會導致數個 apt-get upgrade 錯誤。

若要修正與 udev 相關的問題,請遵循下列步驟:

  1. 將下列程式碼寫入 /usr/sbin/policy-rc.d 並儲存您的變更。

    #!/bin/sh
    exit 101
    
  2. 將執行權限新增至 /usr/sbin/policy-rc.d

    chmod +x /usr/sbin/policy-rc.d
    
  3. 執行下列命令:

    dpkg-divert --local --rename --add /sbin/initctl
    ln -s /bin/true /sbin/initctl
    

"Error:0x80040306」,在安裝時出現

這與我們不支援舊版主控台的事實有關。 若要關閉舊版主控台:

  1. 開啟 cmd.exe
  2. 以滑鼠右鍵按一下標題列 -> 屬性 -> 取消核取 [使用舊版主控台]
  3. 按一下 [確定]

"Error:0x80040154」,在 Windows 更新之後出現

「適用於 Linux 的 Windows 子系統」功能可能會在 Windows 更新期間停用。 如果發生這種情況,則必須重新啟用 Windows 功能。 您可以在手動安裝指南中找到啟用 Windows 子系統 Linux 版的指示。

變更顯示語言

WSL 安裝會嘗試自動變更 Ubuntu 地區設定,以符合 Windows 安裝的地區設定。 如果您不想要此行為,您可以執行此命令,以在安裝完成後變更 Ubuntu 地區設定。 您必須重新啟動 bash.exe,這個變更才會生效。

下列範例會將地區設定變更為 en-US:

sudo update-locale LANG=en_US.UTF8

Windows 系統還原後的安裝問題

  1. 刪除 %windir%\System32\Tasks\Microsoft\Windows\Windows Subsystem for Linux 資料夾。
    注意:如果您的選用功能已完整安裝且正常運作,請不要這麼做。
  2. 啟用 WSL 選用功能 (如果尚未這麼做)
  3. 重新開機
  4. lxrun /uninstall /full
  5. 安裝 bash

WSL 中沒有網際網路存取

某些使用者回報了特定防火牆應用程式在 WSL 中封鎖網際網路存取的問題。 回報的防火牆如下:

  1. Kaspersky
  2. AVG
  3. Avast
  4. Symantec Endpoint Protection

在某些情況下,關閉防火牆可讓您存取。 在某些情況下,只是安裝防火牆似乎會封鎖存取。

如果您使用 Microsoft Defender 防火牆,取消核取「會封鎖所有連入連線,包括允許的應用程式清單中的連線。」 允許存取。

使用 ping 時發生權限遭拒錯誤

對於 Windows 年度更新版 (版本 1607),需要 Windows 中的 系統管理員 權限,才能在 WSL 中執行 ping。 若要執行 ping,請以系統管理員身分在 Windows 上的 Ubuntu 上執行 Bash,或從具有系統管理員權限的 CMD/PowerShell 提示字元執行 bash.exe。

對於較新版本的 Windows 組建 14926 +,不再需要系統管理員權限。

Bash 已停止回應

當您使用 bash 時,您會發現 bash 已停止回應 (或鎖死),而且沒有回應輸入,請收集和報告記憶體傾印,以協助我們診斷問題。 請注意,這些步驟將會損毀您的系統。 如果您不熟悉這個作業,或未在執行此動作之前儲存您的工作,請不要這麼做。

若要收集記憶體傾印

  1. 將記憶體傾印類型變更為「完成記憶體傾印」。 變更傾印類型時,請記下您目前的類型。

  2. 使用步驟以使用鍵盤控制項設定當機。

  3. 重現停止回應或鎖死。

  4. 使用 (2) 中的機碼序列來損毀系統。

  5. 系統會損毀並收集記憶體傾印。

  6. 系統重新開機之後,請將 memory.dmp 回報給 secure@microsoft.com。 傾印檔案的預設位置是 %SystemRoot%\memory.dmp or C:\Windows\memory.dmp (如果 C: 是系統磁碟機)。 在電子郵件中,請注意,傾印適用於 Windows 小組的 WSL 或 Bash。

  7. 將記憶體傾印類型還原為原始設定。

檢查您的組建編號

若要尋找您電腦的架構和 Windows 組建編號,請開啟
[設定] > [系統] > [關於]

尋找 [作業系統組建] 和 [系統類型] 欄位。
[組建] 和 [系統類型] 欄位的螢幕擷取畫面

若要尋找您的 Windows Server 組建編號,請在 PowerShell 中執行下列命令:

systeminfo | Select-String "^OS Name","^OS Version"

確認已啟用 WSL

您可以在 PowerShell 中執行下列命令,確認已啟用適用於 Linux 的 Windows 子系統:

Get-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux

OpenSSH-伺服器連線問題

嘗試連線 SSH 伺服器失敗,發生下列錯誤:「連線已由 127.0.0.1 連接埠 22 關閉」。

  1. 請確定您的 OpenSSH 伺服器正在執行:

    sudo service ssh status
    

    您已遵循此教學課程: https://ubuntu.com/server/docs/service-openssh

  2. 停止 sshd 服務並以偵錯模式啟動 sshd:

    sudo service ssh stop
    sudo /usr/sbin/sshd -d
    
  3. 檢查啟動記錄,並確認 HostKeys 可供使用,而且您未看到記錄訊息,例如:

    debug1: sshd version OpenSSH_7.2, OpenSSL 1.0.2g  1 Mar 2016
    debug1: key_load_private: incorrect passphrase supplied to decrypt private key
    debug1: key_load_public: No such file or directory
    Could not load host key: /etc/ssh/ssh_host_rsa_key
    debug1: key_load_private: No such file or directory
    debug1: key_load_public: No such file or directory
    Could not load host key: /etc/ssh/ssh_host_dsa_key
    debug1: key_load_private: No such file or directory
    debug1: key_load_public: No such file or directory
    Could not load host key: /etc/ssh/ssh_host_ecdsa_key
    debug1: key_load_private: No such file or directory
    debug1: key_load_public: No such file or directory
    Could not load host key: /etc/ssh/ssh_host_ed25519_key
    

如果您看到這類訊息,而 /etc/ssh/ 底下遺漏了金鑰,您就必須重新產生金鑰,或只是清除及安裝 openssh-server:

sudo apt-get purge openssh-server
sudo apt-get install openssh-server

啟用 WSL 選用功能時 會顯示「找不到參考的組件」。

此錯誤與安裝狀態錯誤有關。 請完成下列步驟以嘗試並修正此問題:

  • 如果您正在從 PowerShell 執行 [啟用 WSL 功能] 命令,請嘗試使用 GUI 代替,方法是開啟 [開始] 功能表,搜尋 [開啟或關閉 Windows 功能],然後在清單中選取 [適用於 Linux 的 Windows 子系統],這將會安裝選用元件。

  • 前往 [設定]、[更新],然後按一下 [檢查更新],以更新您的 Windows 版本。

  • 如果這兩種方法都失敗,而且您需要存取 WSL,請考慮使用安裝媒體重新安裝 Windows 10 以就地升級,並選取 [保留所有項目],確保您的應用程式和檔案都會保留下來。 您可以在重新安裝 Windows 10 頁面找到如何執行此動作的指示。

如果看到此錯誤:

@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@         WARNING: UNPROTECTED PRIVATE KEY FILE!          @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
Permissions 0777 for '/home/artur/.ssh/private-key.pem' are too open.

若要修正此問題,請將下列內容附加至 /etc/wsl.conf 檔案:

[automount]
enabled = true
options = metadata,uid=1000,gid=1000,umask=0022

請注意,新增此命令將包含中繼資料,以及修改 WSL 中所見 Windows 檔案的檔案權限。 如需詳細資訊,請參閱檔案系統權限

在發行版本內執行 Windows 命令失敗

Microsoft Store 中提供的某些散發套件尚未完全相容,無法執行 Windows 命令。 如果您在執行 powershell.exe /c start . 或任何其他 Windows 命令時收到錯誤 -bash: powershell.exe: command not found,您可以遵循下列步驟來解決此問題:

  1. 在您的 WSL 發行版本中執行 echo $PATH
    如果不包含:/mnt/c/Windows/system32,則會重新定義標準 PATH 變數。
  2. 使用 cat /etc/profile 檢查設定檔設定。
    如果其包含 PATH 變數的指派,請編輯檔案以使用 # 字元將 PATH 指派區塊註解排除。
  3. 檢查 wsl.conf 是否存在於 cat /etc/wsl.conf 並確定其不包含 appendWindowsPath=false,否則將其註解排除。
  4. 輸入 wsl -t 後面接著發行版本名稱,或在 cmd 或 PowerShell 中執行 wsl --shutdown,以重新啟動發行版本。

無法在安裝 WSL 2 之後開機

我們注意到一個會影響使用者的問題,那就是使用者在安裝 WSL 2 之後無法開機。 當我們完整地診斷這些問題時,使用者已回報變更緩衝區大小安裝正確的驅動程式 有助於解決此問題。 如需有關此問題的最新更新,請參閱此 Github 問題

停用 ICS 時的 WSL 2 錯誤

(ICS) 的網際網路連線共用是 WSL 2 的必要元件。 主機網路服務會使用 ICS 服務 (HNS) 來建立 WSL 2 依賴 NAT、DNS、DHCP 和主機連線共用的基礎虛擬網路。

停用 ICS 服務 (Win2k3 sharedaccess) 或透過群組原則停用 ICS,會導致無法建立 WSL 的 HNS 網路。 這會導致在建立新的 WSL 第2版映射時失敗,並在嘗試將第1版映射轉換為第2版時產生下列錯誤。

There are no more endpoints available from the endpoint mapper.

需要 WSL 2 的系統應讓 ICS 服務 (Win2k3 sharedaccess) 處於預設的啟動狀態、手動 (觸發程式開始) ,以及任何停用 ICS 的原則都應該覆寫或移除。 停用 ICS 服務將會中斷 WSL 2,而不建議停用 ICS,則可以 使用下列指示來停用 ics 的部分: ng-應用程式防護-)

使用較舊版本的 Windows 和 WSL

如果您執行的是舊版 Windows 和 WSL (例如 Windows 10 Creators Update (十月2017、組建 16299) 或年度更新 (8 月2016,build 14393) ,則有幾個不同的注意事項。 建議您更新至最新的 Windows 版本,但如果無法這麼做,我們會概述下列一些差異。

互通性命令差異:

  • bash.exe 已取代為 wsl.exe。 Linux 命令可以從 Windows 命令提示字元或從 PowerShell 執行,但對於早期的 Windows 版本,您可能需要使用 bash 命令。 例如:C:\temp> bash -c "ls -la"。 傳入 bash -c 的 WSL 命令會轉送至 WSL 程序,而不會進行修改。 檔案路徑必須以 WSL 格式指定,逸出相關字元時必須小心謹慎。 例如:C:\temp> bash -c "ls -la /proc/cpuinfo"C:\temp> bash -c "ls -la \"/mnt/c/Program Files\""
  • 若要查看哪些命令可用於特定的散發套件,請執行 [distro.exe] /?。 例如,使用 Ubuntu: C:\> ubuntu.exe /?
  • Windows 路徑包含在 WSL $PATH 中。
  • 從舊版 Windows 10 中的 WSL 發行版本呼叫 Windows 工具時,您將需要指定目錄路徑。 例如,若要從 WSL 命令列呼叫 Windows 記事本應用程式,請輸入:/mnt/c/Windows/System32/notepad.exe
  • 若要在 PowerShell 中將預設使用者變更為 root 使用這個命令: C:\> lxrun /setdefaultuser root 然後執行 Bash.exe 以登入: C:\> bash.exe 。 使用散發密碼命令來重設您的密碼: $ passwd username 然後關閉 Linux 命令列: $ exit 。 從 Windows 命令提示字元或 Powershell,將您的預設使用者重設回一般 Linux 使用者帳戶: C:\> lxrun.exe /setdefaultuser username

卸載舊版的 WSL

如果您最初是在建立者更新之前的 Windows 10 版本上安裝 WSL (10 月2017日組建 16299) ,我們建議您將任何必要的檔案、資料等等,從您安裝的舊版 Linux 發行版本遷移至透過 Microsoft Store 安裝的較新散發套件。 若要從您的電腦移除舊版散發,請從命令列或 PowerShell 實例執行下列命令: wsl --unregister Legacy 。 您也可以選擇手動移除舊版的發行版本,方法是 %localappdata%\lxss\ 使用 Windows 檔案總管或使用 PowerShell 來刪除資料夾 (和其所有的子內容) : rm -Recurse $env:localappdata/lxss/