Я создал общий ресурс NFS на виртуальной машине Ubuntu 21.04, который я хочу смонтировать на клиенте Mac OS Big Sur.
При проверке с помощью showmount
ресурс отображается нормально, но монтирование не происходит:
andi@iMac-Pro Projects % showmount -e 10.116.0.108
Exports list on 10.116.0.108:
/srv/nfsv4/vsc-docker-projects 10.116.0.0/24
/srv/nfsv4 10.116.0.0/24
andi@iMac-Pro Projects % sudo mount -t nfs 10.116.0.108:/srv/nfsv4/vsc-docker-projects /Users/andi/Documents/Projects/vsc-docker-projects
mount_nfs: can't mount with remote locks when server (10.116.0.108) is not running rpc.statd: RPC prog. not avail
mount: /Users/andi/Documents/Projects/vsc-docker-projects failed with 74
andi@iMac-Pro Projects %
У меня следующий конфиг на сервере:
$ cat /etc/exports
/srv/nfsv4 10.116.0.0/24(rw,sync,root_squash,no_subtree_check,fsid=0)
/srv/nfsv4/vsc-docker-projects 10.116.0.0/24(rw,sync,root_squash,no_subtree_check)
$ cat /etc/fstab
/home/andi/vsc-docker-projects /srv/nfsv4/vsc-docker-projects none bind 0 0
Я так понимаю, что проблема связана с rpc. statd
, который установлен в системе:
$ which rpc.statd
/usr/sbin/rpc.statd
...но, очевидно, не запущен:
$ ps -ef | grep rpc
root 407 2 0 04:00 ? 00:00:00 [rpciod]
_rpc 648 1 0 04:00 ? 00:00:00 /sbin/rpcbind -f -w
root 2361 1 0 04:21 ? 00:00:00 /usr/sbin/rpc.idmapd
root 2362 1 0 04:21 ? 00:00:00 /usr/sbin/rpc.mountd --manage-gids
andi 2509 1255 0 04:32 pts/0 00:00:00 grep --color=auto rpc
Также запуск невозможен:
$ sudo systemctl start rpc.statd
Failed to start rpc.statd.service: Unit rpc.statd.service not found.
$ service start rpc.statd
start: unrecognized service
Мне просто не хватает служебного файла в /etc/systemd/system/
?
VM действительно недавно установлена, и я только что обновил ее с помощью apt, установил Docker. Я не могу представить, что я сломал его за такое короткое время.
Есть идеи, что я могу попробовать дальше? Заранее спасибо.
Поискав немного вокруг, я нашел сообщение, указывающее в правильном направлении.
Активация службы помогла:
# check status on rpcbind.service
systemctl status rpcbind.service
systemctl reenable rpcbind.service
systemctl restart rpcbind.service
# check status on rpc-statd.service
systemctl status rpc-statd.service
systemctl reenable rpc-statd.service
systemctl restart rpc-statd.service
Теперь я получаю сообщение, связанное с правами, что, несомненно, является шагом вперед:
andi@iMac-Pro Projects % sudo mount -t nfs 10.116.0.108:/srv/nfsv4/vsc-docker-projects /Users/andi/Documents/Projects/vsc-docker-projects
Password:
mount_nfs: can't mount /srv/nfsv4/vsc-docker-projects from 10.116.0.108 onto /Users/andi/Documents/Projects/vsc-docker-projects: Operation not permitted
mount: /Users/andi/Documents/Projects/vsc-docker-projects failed with 1
andi@iMac-Pro Projects %
Некоторые дополнения в /etc/exports сервера помогли:
/srv/nfsv4/vsc-docker-projects 10.116.0.109/24(rw,sync,root_squash,no_subtree_check,anonuid=1000,anongid=1000,insecure)
Общий ресурс открыт только для одного другого хоста. Следовательно, небезопасный должен быть в порядке.
Теперь просто добавьте запись в клиентский /etc/fstab, и мы готовы к работе:
10.116.0.108:/srv/nfsv4/vsc-docker-projects /Users/andi/Documents/Projects/vsc-docker-projects nfs auto 0 0