Windows子系统Linux中的Ubuntu文件系统根目录在哪里,反之亦然?

我在Windows 10上安装了Ubuntu子系统(在设置中启用function之后),但是驱动器中的Ubuntu文件系统根目录在哪里?

    对于从Windows商店安装的Ubuntu:

    您通过商店安装的每个分发都安装在该应用程序的appdata目录中。 例如: C:\Users\\AppData\Local\Packages\CanonicalGroupLimited.UbuntuonWindows_79rhkp1fndgsc\LocalState – benhillis

    在Windows子系统Linux的早期迭代中,Ubuntu文件系统位于%localappdata%\Lxss (例如, C:\Users\Username\AppData\Local\Lxss – 在Windows上用您的用户名替换用户名 )。 请参阅有关文件系统支持的WSL博客文章 :

    WSL使用的主要文件系统是VolF。 它用于存储Linux系统文件以及Linux主目录的内容。 因此,VolF支持Linux VFS提供的大多数function,包括Linux权限,符号链接,FIFO,套接字和设备文件。

    VolF用于装载VFS根目录,使用%LocalAppData%\lxss\rootfs作为后备存储。 此外,还存在一些额外的VolF挂载点,最明显的是/root/home ,分别使用%LocalAppData%\lxss\root%LocalAppData%\lxss\home 。 这些单独安装的原因是当您卸载WSL时,默认情况下不会删除主目录,因此将保留存储在那里的任何个人文件。

    警告

    使用Windows应用程序和工具在Linux子系统中创建/修改任何文件都可能导致Ubuntu子系统中的数据损坏和数据丢失! (感谢Rich Turner建议这些谨慎的话!) 绝对支持。 来自同一篇博文:

    与Windows的互操作性

    虽然VolFs文件存储在Windows上的常规文件中,但在上述目录中,不支持与Windows的互操作性。 如果将新文件添加到Windows中的其中一个目录中,则它缺少VolF所需的EA,因此VolF不知道如何处理该文件而只是忽略它。 许多编辑者还会在保存现有文件时删除EA,再次使文件在WSL中无法使用。


    您的Windows文件系统位于Bash shell环境中的/mnt/c

    在此处输入图像描述

    来源: Dustin Kirkland的博客 , howtogeek

    自Bash最初推出以来,这似乎已经发生了变化,并且不适用于Windowsapp store的发行版,或者可能因为我的主目录位于其他位置而对所有系统都不一致:

     %localappdata%\lxss\home\{username} 

    要么:

     C:\Users\{user}\AppData\Local\lxss\{username} 

    其中{user}是您的Windows用户{username}{username}是您在安装期间设置的UNIX用户{username}

    所以根目录是:

     %localappdata%\lxss 

    请注意,根据%localappdata%目录,Windows资源管理器中可能看不到根目录。 无论如何,您应该可以通过在资源管理器的“地址栏”中输入它来访问它。

    如果从MS Market安装Linux:

    • 在Windows商店中免费使用Ubuntu
    • Windows商店中的免费Open Suse

    他们将发行版放在:

     $ cat /proc/registry/HKEY_CURRENT_USER/Software/Microsoft/Windows/CurrentVersion/Lxss/\{861c29b4-ebe2-49a5-8a22-7e53a27934a0\}/BasePath C:\Users\user\AppData\Local\Packages\CanonicalGroupLimited.UbuntuonWindows_79rhkp1fndgsc\LocalState 

    默认发行版定义如下:

     bash# cat /proc/registry/HKEY_CURRENT_USER/Software/Microsoft/Windows/CurrentVersion/Lxss/DefaultDistribution {861c29b4-ebe2-49a5-8a22-7e53a27934a0} 

    Linux root更深入:

     c:/Users/user/AppData/Local/Packages/46932SUSE.openSUSELeap42.2_022rs5jcyhyac/LocalState/rootfs 

    PS。 我使用Cygwin来探索注册表项。

    PPS。 https://blogs.msdn.microsoft.com/commandline/2016/11/17/do-not-change-linux-files-using-windows-apps-and-tools/

    对我来说唯一%localappdata%\lxss\home\{username}%localappdata%\lxss\home\{username} ,其中{username}是您在安装期间给出的BASH用户名。 出于某种原因,在显示隐藏文件夹后,lxss拒绝出现在C:\Users\WINDOWS-USER\AppData\Local\ ,并且还提供带有Windows和BASH用户名的完整C:\路径也不起作用。

    请创建一个有效的桌面快捷方式。

    通过在位置栏中键入bash ,可以从打开的文件夹的“文件资源管理器”窗口快速打开Bash。

    这就够了。

    您还可以添加上下文菜单项。 如果不需要,我个人不推荐它,因为在上下文菜单中添加快捷方式会占用更多RAM。

    https://www.howtogeek.com/270810/how-to-quickly-launch-a-bash-shell-from-windows-10s-file-explorer/