Монтирование nfs-ресурсов в MacOS
Задача: монтировать nfs-ресурсы в макоси.
В принципе, в макоси уже встроена поддержка nfs и соответствующие сетевые ресурсы можно монтировать через Finder (⌘K), однако чтобы это работало для обычного юзера, требуется некоторое шаманство на стороне linux-сервера.
И заодно важный момент: я монтирую только на чтение, поскольку если разрешить запись, то макось загадит диск своими служебными файлами.
На линукс-машине в /etc/exports прописываем что-то вроде:
/home/user/downloads 192.168.13.12(ro,sync,no_subtree_check,insecure)
Здесь адрес 192.168.13.12 — это айпишник макосной машины. После чего в Finder стандартным образом (через ⌘K или меню Go → Connect to Server...) монтируем ресурс, адрес указываем в виде nfs://nfs-server.name/home/user/downloads.
Опция insecure как раз и нужна, чтобы можно было простым юзером монтировать, без неё будет выдаваться маловразумительная ошибка.
Ещё одна вредная и очень трудноуловимая проблема связана с макосной интерпретаций кодирования «составных» букв в именах файлов, например, «й» или «ё», или «ü». Если имя файла (или вообще где-то в пути до файла встречается) содержит такую букву, то файл просто не откроется, причём с невразумительной ошибкой типа “The application can’t be found.” Я в детали не хочу вдаваться, можете сами погуглить по ключевым словам “mac os x nfc nfd unicode”.
Решение достаточно простое: нужно изменить опции монтирования nfs-ресурсов по умолчанию, для этого добавьте в файл /etc/nfs.conf такую строчку:
nfs.client.mount.options = nfc
Теперь можно монтировать через Finder и всё будет в порядке.
Ну и команда для всяких тестов, вдруг пригодится:
/sbin/mount_nfs -v 192.168.13.12:/home/user/downloads /Volumes/test