![gvfs 在 Android 手机上的 Krusader 中工作,但在尝试将文件复制到其中时“无法写入...”](https://linux22.com/image/187577/gvfs%20%E5%9C%A8%20Android%20%E6%89%8B%E6%9C%BA%E4%B8%8A%E7%9A%84%20Krusader%20%E4%B8%AD%E5%B7%A5%E4%BD%9C%EF%BC%8C%E4%BD%86%E5%9C%A8%E5%B0%9D%E8%AF%95%E5%B0%86%E6%96%87%E4%BB%B6%E5%A4%8D%E5%88%B6%E5%88%B0%E5%85%B6%E4%B8%AD%E6%97%B6%E2%80%9C%E6%97%A0%E6%B3%95%E5%86%99%E5%85%A5...%E2%80%9D.png)
我使用 Krusader 访问我的 Android 手机并将文件复制到其中。路径是这样的
/run/user/1000/gvfs/mtp:host=<my_phone123>/
首先,它不会显示该路径的内容,即使它已被安装,除非我首先通过 Thunar 访问。只有在此之后,Krusader 才会显示手机及其 SD 卡的内容。
其次,当我尝试复制文件时,它会抛出错误“无法写入.../downloads/123.txt”
如何解决这一切?
答案1
gvfs 未启动,或者启动后退出或崩溃。
崩溃的进程应该记录到 /var/log/messages 或 /var/log/syslog 或现在 systemd 执行此操作的任何地方。
这gvfs调试文档还描述了 GVFS_DEBUG 环境变量,以及在桌面会话期间重新启动 gvfs 并捕获其输出的方法。这可能是最有帮助的。
它可以帮助跟踪它以确定它在哪个系统调用中失败以及出现什么错误,例如。缺少文件,缺乏权限。可能strace -f
还用于跟踪跟踪时分叉的子进程。尽管错误通常接近尾声,但需要挖掘大量输出。
gvfs 是一种 DBus 服务。在它的架构图,从 libgio 及其插件(gvfs 模块/dbus)到“gvfs 模块”的路径,实际上底部块中的所有内容都通过 DBus:
您可以监控系统上的所有 DBus 请求、响应和事件。 gvfsd 在会话总线中运行,因此您可以在调试文档中的调试命令之前运行类似的命令:
dbus-monitor --session 2>&1 | tee dbus-log.txt
还有一个可以dbus-monitor --system
查看 gvfs <-> udisks2 通信等。
我希望你能解决这个问题。请报告进展情况。我最近做了一些与 gvfs 相关的开发,所以一旦我可以查看一些日志,我应该能够提供更多帮助。