Windows 10中Linux子系统的文件系统在哪里?


22

很明显,/mnt/c/从“ Linux”的角度来看,Windows的10个“主机”文件系统已安装。但是是否可以从Windows访问“ Linux”文件系统?如果是这样,它在哪里?


什么是从输出mountbash壳呢?
DavidPostill

这不会返回任何线索:rootfs on / type rootfs
有四盏灯

嗯 好。那cat /etc/fstab
DavidPostill

不,不幸的是,从“ Linux”的角度来看,它看起来是坐在硬件上:LABEL=cloudimg-rootfs / ext4 defaults 0 0
有四个

好。没有其他想法。
DavidPostill

Answers:


24

在Windows 10 Fall Creators更新(2017年10月发布)之前,单个根文件系统位于此处:

%LOCALAPPDATA%\Lxss\rootfs

例如, C:\Users\Vigo\AppData\Local\Lxss\rootfs\

其他安装点位于lxss目录的上一级。例如,homeLinux中您自己的目录将位于中%LOCALAPPDATA%\Lxss\home

从Fall Creators更新开始,可以安装多个Linux实例并并行运行它们。现有实例(又称旧版)将保留在其目录中,但是创建的新实例位于以下位置:

%LOCALAPPDATA%\ Packages \ <特定于发行版的名称> _ <随机字符串> \ LocalState \ rootfs

例如,我的Ubuntu 18.04安装位于

CanonicalGroupLimited.Ubuntu18.04在Windows_ 79rhkp1fndgsc
目录。

警告:当心不要创建修改删除位于下的文件lxss从Windows或分发特定树。

浏览和读取文件是唯一无害的操作。有关详细信息,请参见此Microsoft博客页面

请注意,从内部版本1903开始,存在另一种访问正在运行的发行版文件的方法,该方法没有出现上述问题。

只要使用路径\\wsl$\<distribution_specific_name>\,您就可以创建和修改文件。该应用程序数据依然支持的方式与构建1903年访问文件。


它是隐藏的:)
Y2K

我无法将其作为书签添加到Windows资源管理器的“快速访问”中,很难找到它。
约翰

4
用户中立的可复制粘贴版本:%USERPROFILE%\AppData\Local\Lxss\rootfs
Silveri

3
警告:根据Microsoft,您不应使用Windows应用程序来修改linux文件系统。blogs.msdn.microsoft.com/commandline/2016/11/17/…–
Korey

1
您可以通过使用简化的路径有很多的第一部分%LOCALAPPDATA%,而不是%USERPROFILE%\AppData\Local
Herohtar

8

如今,您可以安装多个Linux发行版。因此,每个发行版将在不同的文件夹中拥有自己的文件系统。

  • 如果从Windows应用商店安装一些Linux发行版,则文件系统位于 %USERPROFILE%\AppData\Local\Packages\...\LocalState\rootfs
  • 如果您已经安装,移动或复制使用的Linux发行版LxRunOffline或任何版本WSLDistroLauncher,文件系统可以位于您的计算机的任何文件夹中。

从注册表中获取信息

每个文件系统的位置都可以从Windows注册表中获取。数据位于

HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Lxss

您可以启动PowerShell窗口并执行以下命令来获取文件系统的位置

PS> (Get-ChildItem HKCU:\Software\Microsoft\Windows\CurrentVersion\Lxss | ForEach-Object {Get-ItemProperty $_.PSPath}) | select DistributionName, @{n="Path";e={$_.BasePath + "\rootfs"}}

您将获得一个包含如下信息的表格

DistributionName Path
---------------- ----
Ubuntu           C:\Users\Jaime\AppData\Local\Packages\CanonicalGroupLimited.UbuntuonWindows_79rhkp1fndgsc\LocalState\rootfs
Ubuntu-18.04     C:\Users\Jaime\AppData\Local\Packages\CanonicalGroupLimited.Ubuntu18.04onWindows_79rhkp1fndgsc\LocalState\rootfs
mydistro         C:\wsl\mydistro\rootfs

使用lxRunOffline

LxRunOffline是用于管理安装在WSL上的Linux发行版的工具。您可以使用LxRunOffline来获取已安装发行版使用的目录

# lxrunoffline get-dir -n <name of the distro>

C:\> lxrunoffline get-dir -n backup
c:\wsl\installed\backup

C:\> lxrunoffline get-dir -n Ubuntu
C:\Users\Jaime\AppData\Local\Packages\CanonicalGroupLimited.UbuntuonWindows_79rhkp1fndgsc\LocalState


1

更高版本的linux子系统将文件系统安装在下面,packages因此完整路径如下所示:

C:\Users\myUserName\AppData\Local\Packages\UbuntuLinux.someUID\LocalState\rootfs\root

要么:

C:\Users\myUserName\AppData\Local\Packages\UbuntuLinux.someUID\LocalState\rootfs\home\myLinuxUserName

...当然取决于安装点。进行目录搜索.bashrc将显示这些路径...

或者readlink .在linux shell中使用,将当前linux路径作为Windows剪贴板的“ DOS”路径发布。粘贴在合理的位置以读取实际的物理路径。


1

看起来微软已经对其进行了更改/隐藏,当前位于:

%USERPROFILE%\ AppData \ Local \ Packages \ CanonicalGroupLimited.UbuntuonWindows _ ????????????? \ LocalState \ rootfs

由于将来这种情况可能会进一步改变,因此PGP建议对.profile或.bashrc文件进行文件搜索。


1

我创建了在资源管理器中打开WLS文件夹的脚本

cd C:\Users\Naotho Machida\AppData\Local\Packages\Canonical*\LocalState\rootfs\etc
explorer %cd%

只需将其另存为yourScript.cmd并运行

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.