davfs2:/sbin/mount.davfs:/etc/fstab 中的不同 URL

davfs2:/sbin/mount.davfs:/etc/fstab 中的不同 URL

我正在尝试使用 davfs 在 /etc/fstab 中挂载一个 webdav 服务器,但是当我尝试在我的文件管理器(Thunar)中打开它时,我会收到错误:

Failed to mount "My Folder"

/sbin/mount.davfs: different URL in /etc/fstab

/etc/fstab 中的条目如下所示:

http://<server_url>/my/path/Doe\054\040John/  /home/john/My\040Folder       davfs   user,noauto     0       0

但我仍然可以成功安装它:

sudo mount -t davfs http://<server-url>/my/path/Doe,\ John/ /home/john/My\ Folder

你知道我在 /etc/fstab 中做错了什么吗?

感谢您的帮助!

答案1

总结又有趣的部分:

/etc/fstab文件中,你应该不是逃离逗号字符,而空格和制表符必须使用以零填充的八进制数字进行转义,并以反斜杠开头,\如 fstab 的手册页中所述。对于您的情况,URL 字符串应如下所示:

http://<server_url>/my/path/Doe,\040John/

无聊的部分:

首先,你应该看一下这个: https://superuser.com/a/527503/938480

我将在此引用上述帖子的最后一句话,我认为这对于答案至关重要:

请注意,虽然支持代码点对于其他角色来说,支持也相当不稳定在我的计算机上,你可以用 \127 代替 W,但不能用 \070 代替 8……

davfs2 人员指出:

带有空格的 URL 和挂载点 路径名中的特殊字符(如空格)很乱。不同的程序和协议对它们的解释不同,并且有不同的转义规则。在 fstab 中,空格必须用三位八进制转义序列替换。写http://foo.bar/path\040with\040spaces代替 http://foo.bar/路径带空格。对于 davfs2.conf 和 secrets 文件,请参阅 davfs2.conf(5) 手册页中描述的转义和引号规则。在命令行上,您必须遵守 shell 的转义规则。

最后让我们看一下 fstab 手册本身:

第二个字段(fs_file)。此字段描述文件系统的挂载点。对于交换分区,此字段应指定为“无”。如果挂载点的名称包含空格,则可以将其转义为“\040”

正如我们上面看到的,除了空格和制表符之外,实际上没有提到任何内容。

我已经使用一个免费的在线 Nextcloud 实例测试了该问题(Nextcloud 本身带有内置的 WevDAV 支持),并且使用与示例中相同的文件夹名称Doe, John和相同的转义序列时出现了相同的错误\054\040。然后我删除了逗号的转义,它就可以正常安装了。

答案2

信息太少,无法提示这里出了什么问题 - 但安装后davfs2我的工作 fstab 条目如下所示:

https://my-owncloud-url/remote.php/webdav  /media/owncloud/ davfs user,noauto,rw,_netdev 0 0

效果很好...只需更改 fstab 的内容后,您就可以通过输入来检查它是否正常工作

sudo mount -a

或者输入

sudo mount mountpoint-here

但请记住 - 在初始化挂载之前该文件夹必须存在......

相关内容