WSL 位於我的電腦上的什麼位置?

WSL 位於我的電腦上的什麼位置?

我是 Windows 新手,已根據提供的說明安裝了 WSL2這裡

它工作正常,但我無法找到它在我的電腦上的安裝位置。的輸出pwdhome/nkp68.

如何從 WSL2 存取 Windows 電腦中的檔案?

答案1

如果我從字面上閱讀您的帖子,可能會有一些不同的問題:

  • 您的 WSL Ubuntu 實例安裝在電腦上的什麼位置?
  • (大概是基於第一個問題)如何從 Windows 存取 WSL2 中的檔案?
  • “如何從 WSL2 存取 Windows 電腦中的檔案?” (有點像對面的前兩個問題)

您的 WSL Ubuntu 實例在哪裡?

簡短回答:在您的情況下,考慮到基本安裝,實際檔案位於名為 的虛擬磁碟中ext4.vhdx。此時您實際上不需要擔心“位置”(因為它是虛擬驅動器),但您通常會在%userprofile%\AppData\Local\Packages\Canonical...\LocalState\ext4.vhdx.你的 %userprofile%通常是這樣的C:\Users\<username>

更多詳情:

這是預設安裝的情況。您可以安裝多個發行版,甚至可以安裝同一發行版的多個實例。 WSL 的一大優點是能夠快速複製發行版、測試某些內容並丟棄測試。這可以防止你用包包、測試或其他可能長期造成「麻煩」的東西污染你的「好的」日常發行版。

查看全部您已安裝的發行版,請前往 PowerShell 並執行:

Get-ChildItem "HKCU:\Software\Microsoft\Windows\CurrentVersion\Lxss" -Recurse

就您而言,您可能會看到類似以下內容:

{cff9bfd6-39db-42af-a85b-d6fca State              : 1
94beff8}                       DistributionName   : Ubuntu
                               Version            : 2
                               BasePath           : C:\Users\krutik\AppData\Local\Packages\CanonicalGroupLimited.UbuntuonWindows_79rhkp1fndgsc\LocalState
                               Flags              : 15
                               DefaultUid         : 1000
                               PackageFamilyName  : CanonicalGroupLimited.UbuntuonWindows_79rhkp1fndgsc
                               KernelCommandLine  : BOOT_IMAGE=/kernel init=/init
                               DefaultEnvironment : {HOSTTYPE=x86_64, LANG=en_US.UTF-8, PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games, TERM=xterm-256color}

我還有很多,在不同的地方。

如何從 Windows 存取 WSL2 中的檔案?

但是你的問題的標題「哪裡」並不重要,除非你需要對文件做一些事情ext4.vhdx(例如也許回收空間)。

若要從 Windows 存取 WSL 中的文件,請使用\\wsl$\Ubuntu路徑(或您的發行版的任何名稱)。在這裡,您會發現\\wsl$\Ubuntu\home\nkp68,您可以在其中安全地複製輸入和輸出檔案。

更新說明: 在 Windows 11 下,\\wsl$\<distro_name>仍然有效,但也有一個新的\\wsl.localhost\<disro_name>路徑。兩者的工作原理相同,但wsl.localhost在某些情況下應該更強大一些。

如何從 WSL2 存取 Windows 電腦中的檔案?

如果您使用 Ubuntu 並需要存取 Windows 磁碟機上的檔案(例如C:),那麼您會發現這些檔案(預設)會自動為您安裝:

ls /mnt/c/Users
ls /mnt/c

在 WSL 中處理 Windows 磁碟機上的檔案存在一些細微差別,特別是在權限和效能方面。您通常需要保留所有專案文件裡面Ubuntu ext4 檔案系統(例如在您的/home/nkp68目錄下)。但您當然可以根據需要在磁碟機之間存取、複製和移動檔案。

WSL 功能位於哪裡?

問題的標題可以解釋為您想知道實際的 WSL 功能安裝在哪裡。我知道原發文者的情況並非如此,但這個問題是其他人提出的,所以我將在此處添加它,以防他們根據標題找到此問題。

WSL 功能在您系統上的位置將取決於您使用的 WSL 版本:

  • 至少從 Windows 10 21H2(或許更早)開始,舊版的 WSL 就作為 Windows 功能包含在 Windows 本身中,並且今天仍然可以啟用此功能。

    當您開啟 WSL Windows 功能時,可在 下找到 WSL 適用的二進位C:\Windows\System32\lxss。您很少需要擔心此資料夾,但有時它會派上用場。

    WSL2 核心也位於此資料夾中,如果您想要回滾多個版本,可以備份較舊的核心。

  • 較新版本的 WSL 作為應用程式套件安裝,通常來自 Microsoft Store。

    安裝 WSL 應用程式套件時,檔案位於(Windows 應用程式套件的典型情況)C:\Program Files\WindowsApps\<package_dir>

    請注意,這C:\Program Files\Windows Apps是一個受保護的目錄,預設情況下您將無法看到其中的內容。你不應該嘗試變更此目錄的權限,這將損害系統的安全性和穩定性。

    不過還是可以看到裡面的內容包裹目錄,假設您知道其名稱。要找到它,請從 PowerShell 執行以下命令:

    Get-AppxPackage |? { $_.Name -like "*WindowsSubsystemforLinux*" } | tee-object -Variable packageMatches
    

    您應該會看到InstallLocation返回的結果。如果只有一個結果(應該是這種情況),您可以使用以下命令打開它:

    explorer "$($packageMatches.InstallLocation)"
    

    此外,在此目錄中,您會發現tools\kernel,它是此版本的 WSL2 核心。

  • 在 Windows 10 系統上,您可能會有兩個都這些。

  • 在 Windows 11 系統上,您可能如果您安裝了 WSL1,則具有這兩個安裝位置。

相關內容