
Я пытаюсь смонтировать экспорт NFS4 с сервера Ubuntu на клиент Mac, подключенный к локальной сети. Клиент Mac может смонтировать экспорт nfs с помощью nfs3, однако, похоже, он не может сделать это с помощью nfs4.
Сервер (Ubuntu)
Каталог, к которому будет предоставлен общий доступ, был fstab
привязан /export/share
, и этот каталог был экспортирован через /etc/exports
.
user@<server>:~$ tail -n 2 /etc/exports
/export *(insecure,no_subtree_check,rw,sync,fsid=0)
/export/share *(insecure,no_subtree_check,rw,nohide,sync)
Клиент (Mac OS 10.11)
Клиент может видеть оба экспорта с сервера.
Macintosh:~ user$ showmount -e <server-ip>
Exports list on <server-ip>:
/export/share *
/export *
Клиент может смонтировать диск с помощью nfs3 (в локальную точку монтирования ~/NFS/Server_Media/
)
Macintosh:~ user$ sudo mount -t nfs <server-ip>:/export/share NFS/Server_Media/
или (оба дают одинаковый результат)
Macintosh:~ user$ sudo mount -t nfs -o vers=3 <server-ip>:/export/share NFS/Server_Media/
Доказательство nfs3 (при параметрах NFS: vers=3)
Macintosh:~ user$ nfsstat -m
/Users/user/NFS/Server_Media from <server-ip>:/export/share
-- Original mount options:
General mount flags: 0x0
NFS parameters:
File system locations:
/export/share @ <server-ip> (<server-ip>)
-- Current mount parameters:
General mount flags: 0x4000000 multilabel
NFS parameters: vers=3,tcp,port=2049,nomntudp,hard,nointr,noresvport,negnamecache,callumnt,locks,quota,rsize=32768,wsize=32768,readahead=16,dsize=4096,nordirplus,nodumbtimr,timeo=10,maxgroups=16,acregmin=5,acregmax=60,acdirmin=5,acdirmax=60,nomutejukebox,nonfc,sec=sys
File system locations:
/export/share @ <server-ip> (<server-ip>)
Status flags: 0x0
Экспорт размонтирован для проверки nfs4
Macintosh:~ user$ sudo umount NFS/Server_Media/
Клиент пытается смонтировать nfs4
Macintosh:~ user$ sudo mount -t nfs -o vers=4 <server-ip>:/export/share NFS/Server_Media/
mount_nfs: can't mount /export/share from <server-ip> onto /Users/user/NFS/Server_Media: No such file or directory
Любопытно, что операция Finder Connect to Server...
( Cmd
+ k
) позволяет подключиться с помощью nfs4, введя Server Address
:
nfs://vers=4,<server-ip>:/export/share
Однако этот процесс невозможно автоматизировать без знания команд Терминала, и он монтируется только в /Volumes/share/
, а не в предполагаемую точку монтирования клиента.
Литература на удивление скудна, когда дело касается Mac и NFS4, по крайней мере, насколько я могу судить. Любая помощь с этим будет очень признательна!
решение1
После некоторых экспериментов и поисков мне наконец удалось решить эту проблему.
Как найдено вэта тема(примерно Fedora, но достаточно близко к Mac), похоже, что, хотя и nfs3
позволит sudo mount <...> <server-ip>:/export/share <...>
, nfs4
похоже, потребуетsudo mount <...>
<server-ip>:/
<...>
(монтируя "корневой" каталог экспорта, а не сам экспортированный каталог). После исправления этого мои каталоги монтируются нормально, хотя, похоже, он привязывает каталог /export
вместо каталога /export/share
(добавляя еще один уровень каталогов). Не такая уж большая проблема, но стоит отметить, если для этого есть исправление.РЕДАКТИРОВАТЬ: Я ошибался, оказывается, можно экспортировать каталог /share
специально с помощьюsudo mount <...>
<server-ip>:/share
<...>
, по сути, просто пропуская корневой каталог экспортируемого каталога.
Интересное замечание: если я изменю строку /etc/export
на сервере с /export/share *(insecure,no_subtree_check,rw,nohide,sync)
на/export/share *(insecure,
fsid=0
,no_subtree_check,rw,nohide,sync)
, целевой каталог на клиенте, NFS/Share_Media
кажется, становится бесконечно самовложенным после монтирования, по какой-то причине. Просто подумал, что стоит включить это наблюдение на случай, если у кого-то из будущего возникнет та же проблема с летающей машиной.