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,则有两个安装位置。

相关内容