В / etc / exports:
/tmp/test *(rw)
/dev/sda1
(файловая система ext4) смонтирована в /tmp/test
команда для монтирования nfs:
mount -o vers=3 $HOST:/tmp/test $NFS_DIR
(где HOST - это IP-адрес сервера nfs, NFS_DIR - локальная точка монтирования на клиенте)
В первый раз nfs монтируется успешно. А потом я размонтировал.
Затем я командую запись в / etc / exports (без экспорта nfs) и делаю exportfs -r
.
Затем я раскомментирую запись / tmp / test в / etc / exports (как и раньше) и делаю exportfs -r
очередной раз
И я монтирую общий ресурс nfs, используя ту же команду. Но на этот раз крепление зависнет и истечет время ожидания.
Однако, когда я проверял журнал nfs, я получил следующее:
/tmp and /tmp/test have same filehandle for *, using first
qword_eol: fflush failed: errno 22 (Invalid argument)
Cannot export /tmp, possibly unsupported filesystem or fsid= required"
Ошибка с жалобой на export / tmp имеет смысл, потому что это tmpfs.
Но почему / tmp и / tmp / test имеют одинаковый дескриптор файла?
Я знаю, что проблема вызвана тем, что / tmp и / tmp / test имеют один и тот же дескриптор файла, поэтому nfs возвращает первый из них / tmp. Я хочу экспортировать / tmp / test (ext4 fs), а не / tmp (tmpfs).
Проблема решается перезапуском rpc.mountd.
Похоже, это ошибка в самой nfs-utils. И эта ошибка исправлена в версии 1.3.3. Я также пробовал использовать nfs-utls 1.3.2, но проблема все еще существует. Использование nfs-utils 1.3.3 решит эту проблему.