![WSL(ubuntu/windows) AppData\Local\Lxss 实际上并没有同步回 ubuntu,有什么想法吗?](https://linux22.com/image/1489619/WSL(ubuntu%2Fwindows)%20AppData%5CLocal%5CLxss%20%E5%AE%9E%E9%99%85%E4%B8%8A%E5%B9%B6%E6%B2%A1%E6%9C%89%E5%90%8C%E6%AD%A5%E5%9B%9E%20ubuntu%EF%BC%8C%E6%9C%89%E4%BB%80%E4%B9%88%E6%83%B3%E6%B3%95%E5%90%97%EF%BC%9F.png)
如果您在 bash 中创建文件(touch /root/foo.txt),该文件出现在隐藏目录中,AppData\Local\Lxss\
则修改该文件不会在 bash 中更改它。更糟糕的是,如果您在 bash 中再次更改它,您通过 explorer 更改的文件将被破坏!
是否有任何真正的挂载点C:\
?
真正的图像隐藏在哪里?(就像文件系统实际上写回到图像文件一样?)
0:14:29 在此https://channel9.msdn.com/Events/Build/2016/C906似乎声称您将拥有从资源管理器的完全访问权限。0:16:30 他们会向您显示,AppData\Local\Lxss\
但没有提到您的文件不会像我描述的那样同步。
答案1
通过 Windows 资源管理器创建的新文件可能不会出现在 bash 中,因为它们缺少特殊的 LXSS NTFS 属性。
当 LXSS 在 LXSS 根目录中创建文件时,它会通过 NTFS 属性将附加信息附加到这些文件,以存储标准 NTFS 属性无法表示的内容,例如 Linux 文件权限。如果缺少这些信息,文件就不会显示。
事实是,如果你在 bash 中创建一个文件,然后创建一个复制使用 Windows 资源管理器打开它时,它会出现在 bash 中。这可能是因为所有特殊的 LXSS 属性都与文件重复。
LXSS 文件系统层似乎也会缓存文件系统,因此如果添加或删除文件,bash 中的目录条目将不会反映文件系统的实际状态,直到所有 bash 终端停止(这会结束 LXSS 服务中的 LXSS 会话并从而清除缓存)。
答案2
好的,看来内容AppData\Local\Lxss\
是可修改的,并且会同步回 Ubuntu bash 会话。
您必须完全关闭 bash。并且您无法创建新文件。
奇怪的是微软似乎说你不能。
然而,除了令人烦恼之外,这仍然不是很实用,因为创建新文件似乎不起作用。
我不知道 bash 会话是否会将东西放入 RAM 中,但是微软似乎可以做到这一点。如果他们选择的话。
答案3
对我而言,有效的是使用 bash 进行复制,而不是使用 Explorer。
C 盘位于 /mnt/c,因此要将文件夹 C:\tmp\test1 复制到 bash 主目录中的 /tmp/,请执行以下操作:cp -r /mnt/c/tmp/test1 ~/tmp
。
答案4
在他们解决这个问题之前,我安装了cygwin sshd了解本机 NTFS 文件系统并运行Ubuntu sshd以便查看 lsxx linux 文件。使用 apt-get 安装sshfs 和 win-sshfs以各种方式进行安装。这是一个迂回的 hack,但目前对我来说是可行的。
如果您不想弄乱 cygwin sshd,您可以使用 cygwin ssh 来回 scp 文件。
使用 cygwin sshd 有助于通过在 .ssh/config 文件中使用真实管理员帐户来解决文件权限问题。我在通过 DevFS/NTFS 接口时遇到了一些奇怪的访问权限。