很明显,/mnt/c/
从“ Linux”的角度来看,Windows的10个“主机”文件系统已安装。但是是否可以从Windows访问“ Linux”文件系统?如果是这样,它在哪里?
rootfs on / type rootfs
cat /etc/fstab
呢
LABEL=cloudimg-rootfs / ext4 defaults 0 0
很明显,/mnt/c/
从“ Linux”的角度来看,Windows的10个“主机”文件系统已安装。但是是否可以从Windows访问“ Linux”文件系统?如果是这样,它在哪里?
rootfs on / type rootfs
cat /etc/fstab
呢
LABEL=cloudimg-rootfs / ext4 defaults 0 0
Answers:
在Windows 10 Fall Creators更新(2017年10月发布)之前,单个根文件系统位于此处:
%LOCALAPPDATA%\Lxss\rootfs
例如, C:\Users\Vigo\AppData\Local\Lxss\rootfs\
其他安装点位于lxss
目录的上一级。例如,home
Linux中您自己的目录将位于中%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年访问文件。
%USERPROFILE%\AppData\Local\Lxss\rootfs
%LOCALAPPDATA%
,而不是%USERPROFILE%\AppData\Local
如今,您可以安装多个Linux发行版。因此,每个发行版将在不同的文件夹中拥有自己的文件系统。
%USERPROFILE%\AppData\Local\Packages\...\LocalState\rootfs
从注册表中获取信息
每个文件系统的位置都可以从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
更高版本的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”路径发布。粘贴在合理的位置以读取实际的物理路径。
mount
的bash
壳呢?