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
но имейте в виду - фодлер должен существовать до того, как гора может быть инициализирована...