当前位置: 首页>>技术问答>>正文


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

,

问题描述

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

最佳解决思路

对于从Windows商店安装的Ubuntu:

Each distribution you install through the store is installed to that application’s appdata directory. For example: C:\Users\<username>\AppData\Local\Packages\CanonicalGroupLimited.UbuntuonWindows_79rhkp1fndgsc\LocalState – benhillis

在Windows子系统for Linux的早期版本中,Ubuntu文件系统位于%localappdata%\Lxss(例如,C:\Users\Username\AppData\Local\Lxss–用Windows上的用户名替换用户名)。参见the WSL blog post on File System Support

The primary file system used by WSL is VolFs. It is used to store the Linux system files, as well as the content of your Linux home directory. As such, VolFs supports most features the Linux VFS provides, including Linux permissions, symbolic links, FIFOs, sockets, and device files.

VolFs is used to mount the VFS root directory, using %LocalAppData%\lxss\rootfs as the backing storage. In addition, a few additional VolFs mount points exist, most notably /root and /home which are mounted using %LocalAppData%\lxss\root and %LocalAppData%\lxss\home respectively. The reason for these separate mounts is that when you uninstall WSL, the home directories are not removed by default, so any personal files stored there will be preserved.

CAUTION

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

Interoperability with Windows

While VolFs files are stored in regular files on Windows in the directories mentioned above, interoperability with Windows is not supported. If a new file is added to one of these directories from Windows, it lacks the EAs needed by VolFs, so VolFs doesn’t know what to do with the file and simply ignores it. Many editors will also strip the EAs when saving an existing file, again making the file unusable in WSL.


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

wsl,ubuntu

来源:Dustin Kirkland’s bloghowtogeek

次佳解决思路

自从Bash最初引入以来,这似乎已经发生了变化,或者由于我的主目录位于另一个位置,所以对于所有系统可能不一致:

%localappdata%\lxss\home\{username}

要么:

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

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

所以根目录将是:

%localappdata%\lxss

请注意根目录可能不会在Windows资源管理器中从%localappdata%目录中可见。您应该可以通过在资源管理器的’address bar’中键入它来访问它。

第三种解决思路

如果您从MS Market安装Linux:

他们将发行版放置在:

$ 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根目录更深入:

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},其中{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/

参考资料

本文由Ubuntu问答整理, 博文地址: https://ubuntuqa.com/article/134.html,未经允许,请勿转载。