davfs2: /sbin/mount.davfs: другой URL в /etc/fstab

Я пытаюсь смонтировать webdav-сервер в / etc / fstab с помощью davfs, но когда я пытаюсь открыть это в моем файловом менеджере (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 ответ

TL;DR или забавная часть:

в /etc/fstabфайла, вы НЕ должны экранировать символ запятой, в то время как пробелы и табуляции должны быть экранированы с помощью восьмеричных чисел с нулями, которым предшествует обратная косая черта \как указано на странице руководства fstab. В вашем случае строка URL-адреса должна выглядеть так:

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

Скучная часть:

Прежде всего, вы должны взглянуть на это: /questions/3357/ustanovka-ubuntu-v-uefi-uvelichit-skorost-zagruzki/3360#3360

Я процитирую последнее предложение сообщения выше, которое, на мой взгляд, важно для ответа:

Обратите внимание, что хотя кодовые точки поддерживаются и для других символов, поддержка довольно нестабильная. На моей машине вы можете написать \127 вместо W, но не \070 вместо 8...

И человек davfs2 заявляет:

URL-адреса и точки монтирования с пробелами. Использование специальных символов, таких как пробелы, в именах путей - беспорядок. Они по-разному интерпретируются разными программами и протоколами, и существуют разные правила для экранирования. В fstab пробелы должны быть заменены трехзначной восьмеричной escape-последовательностью. Напишите http://foo.bar/path%5C040with%5C040spaces вместо http://foo.bar/path с пробелами. Для файлов davfs2.conf и секретов см. Правила экранирования и цитирования, описанные на странице руководства davfs2.conf(5). В командной строке вы должны соблюдать правила экранирования оболочки.

И напоследок посмотрим на сам мануал fstab:

Второе поле (fs_file). Это поле описывает точку монтирования файловой системы. Для разделов подкачки в этом поле должно быть указано "нет". Если имя точки монтирования содержит пробелы, они могут быть экранированы как '\040'

Как мы видим выше, на самом деле ничего не упоминается, кроме пробелов и табуляций.

Я протестировал проблему с одним из бесплатных онлайн-экземпляров Nextcloud (Nextcloud изначально поставляется со встроенной поддержкой WevDAV), и я получил ту же ошибку, используя то же имя папки, что и в вашем примере Doe, John и та же экранирующая последовательность \054\040. Затем я удалил экранирование запятой, и он установился нормально.

Слишком мало информации, чтобы дать подсказку о том, что здесь происходит не так, но после установки 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

но имейте в виду - фодлер должен существовать до того, как гора может быть инициализирована...

Другие вопросы по тегам