WSL(ubuntu / windows)AppData \ Local \ Lxss实际上没有同步回ubuntu,想法?


10

如果您在bash中创建文件(触摸/root/foo.txt),该文件在AppData\Local\Lxss\ 修改时显示在隐藏目录中,则不会在bash中对其进行更改。更糟糕的是,如果您再次以bash更改它,则通过资源管理器更改的文件将变得!废!

上有任何实际的挂载点C:\吗?

真实的图像隐藏在哪里?(就像文件系统实际上写回映像文件一样?)

https://channel9.msdn.com/Events/Build/2016/C906中的 0:14:29 似乎声称您将拥有资源管理器的完全访问权限。0:16:30它们向您显示,AppData\Local\Lxss\ 但一次也没有提及您的文件将不会像我描述的那样同步。


令人遗憾的是,没有linux-binary或可以使用sys调用的东西,他们在监狱外面教了ntkernel(为此回到cygwin :(),但是当它们至少需要挂载在Windows C:\上可写的根文件系统时,周年纪念金
萨布根顿

我猜总是有桑巴舞:(
sabgenton

1
显然,这并不是要那样使用。github.com/Microsoft/BashOnWindows/issues/45
wbkang '16

真糟 cosmicdan似乎只是说完我在评论的结尾处所做的事情。Mac现在似乎仍然是更好的设置。
sabgenton

Answers:


4

通过Windows资源管理器创建的新文件可能没有出现在bash中,因为它们缺少特殊的LXSS NTFS属性。

当LXSS在LXSS根目录中创建文件时,它会通过NTFS属性将其他信息附加到它们,以存储标准NTFS属性无法表示的内容,例如Linux文件权限。如果缺少这些文件,则不会显示文件。

如果您使用bash制作文件,然后使用Windows资源管理器制作该文件的副本,该文件将显示在bash中,这一事实得到了支持。大概是因为所有特殊的LXSS属性都与文件重复。

LXSS文件系统层也似乎在缓存文件系统,因此,如果添加或删除文件直到所有bash终端都停止(结束LXSS服务中的LXSS会话),bash中的目录条目将不会反映文件系统的实际状态。并因此清除缓存)。


3

好的,看来at的内容AppData\Local\Lxss\是可修改的,并且将同步回到Ubuntu bash会话。

您必须完全关闭bash。并且您无法创建新文件。

正如微软似乎说的那样,您做不到。

但是,除了使人烦恼之外,它仍然不是很有用,因为制作新文件似乎不起作用。

我不知道bash会话是否将内容放入ram或什么,但是Microsoft可以使它出现。


3

对我有用的是使用bash复制而不是使用资源管理器。

在C-驱动器是在/ mnt / c,从而以该文件夹复制C:\ tmp目录\ test1的到/ tmp /在你的bash家目录下执行:cp -r /mnt/c/tmp/test1 ~/tmp


3

我认为您会发现这……非常有帮助。那里有很多有用的信息,但是可以归纳为一小节:

与Windows的互操作性

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

此外,由于VFS会缓存目录条目,因此在WSL运行时从Windows对这些目录所做的任何修改都可能无法准确反映。

本文确实讨论了文件系统的细节以及扩展属性。但总而言之,从Windows修改WSL文件是不行的。


0

在他们解决这个问题之前,我安装了cygwin sshd以查看本机NTFS文件系统,并运行ubuntu sshd以便查看lsxx linux文件。使用apt-get安装sshfs和win-sshfs进行每种方式的安装。这是一种环回操作,但目前对我有效。

如果您不想弄混cygwin sshd,可以使用cygwin ssh来回传输文件。

使用cygwin sshd可以通过在.ssh / config文件中使用真实的管理员帐户来解决文件权限问题。我通过DevFS / NTFS界面有一些奇怪的访问权限。


您仅应通过LXSS中的/ mnt /“共享”文件,而不是通过根文件系统。
ZiggyTheHamster,
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.