关于安装在/mnt/c
1的文件系统。与C:/Users/相比,/mnt/c/Users/到底是什么?似乎它们是一个整体–那么/mnt/c/是什么?
与Windows相反,Linux(以及其他基于Unix的系统)使用的是单一的文件夹结构,与你的磁盘数量无关。如果你有多个磁盘,所有这些磁盘都必须在某些时候被安装到文件夹结构中。
- 通常情况下,所有的磁盘(不同于用来启动系统的磁盘)都会被_挂载到一个名为
/mnt
或/media
的文件夹中,WSL有一个特殊类型的文件系统,名为DrvFS,让你可以访问windows中使用的磁盘。您不仅可以使用DrvFS来挂载windows文件系统,还可以挂载网络磁盘和其他媒体类型。
- 在WSL中,默认情况下,windows中的
C:
磁盘被挂载在/mnt/c
- 如果你有另一个磁盘,例如windows中的
D:
磁盘,它将被挂载在/mnt/d
你在/mnt/c
中能看到的文件和你在C:
中的文件是一样的。如果你修改了一些文件,你也会在windows中得到改变。
您可以 使用 mount
命令来访问其他类型的媒体 (例如,可移动驱动器或网络共享)。
关于/home/<username>
的位置
1.如何使用Windows文件资源管理器查看/home/中的文件?并不是说我真的想这样做–我只是想了解一下Windows是如何组织Linux子系统的。
在WSL中,所有的Linux文件系统都位于一个Windows文件夹下。文件夹的位置取决于Windows的版本和你使用的WSL发行版。
- 初始版本的WSL将linux文件系统存储在
%LOCALAPPDATA%\Lxss\rootfs
- 从Windows Store安装的WSL发行版 ,从Windows Build 16215(2017年年中)开始,使用类似
%LOCALAPPDATA%\Packages\...\LocalState\rootfs
的文件夹。软件包的名称根据发行版的不同而不同(例如,对于Ubuntu和Debian来说是不同的)
- 使用其他工具安装的Linux发行版,如 lxRunOffline 或 WSL-DistroLauncher 可以将linux文件系统存储到任何位置。
你可以查看 许多选项来知道WSL文件夹的位置。例如,我认为最简单的选项是使用 lxRunOffline 来知道安装文件夹的位置。
## You can use lxrunoffline to check which WSL distributions have installed
## using: lxrunoffline list
C:\> lxrunoffline list
backup
Ubuntu-18.04
## And you can use it to get the location of any of these WSL installations
## using: lxrunoffline get-dir -n <name of distribution>
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
一旦你知道了安装文件夹的位置,/home/<username>
就在<installation folder>\rootfs\home\username
下。
注意: Linux和Windows都以不同的方式存储文件权限。现在,WSL DrvFS将Linux的权限以Streams(元数据)的形式存储在Windows中可以看到的文件上。微软不建议使用Windows程序修改Linux文件。有可能某些Windows程序在没有注意到的情况下破坏了linux的权限。