Проблема с NFSv4 возникает при попытке смонтировать путь, содержащий пробел или скобку. NFSv3 отлично работает, используя путь, который использует символическую ссылку на фактическую папку, а NFSv4 - нет. Я не могу изменить путь установки Dropbox без каких-либо проблем, поэтому он должен оставаться неизменным. Ниже приведены конфигурации и результаты того, что я пробовал.
NFS Server:
Debian 8.4
NFS Client:
RHEL 7.2
На сервере установлен Dropbox, который создает символическую ссылку, как показано ниже:
From:
/home/USER_ACCOUNT/Dropbox/
To:
/home/USER_ACCOUNT/Dropbox (corp)/
Путь, экспортированный на сервер: (Я пробовал использовать полный путь, и результаты такие же, поэтому я использую символическую ссылку в примере ниже)
/home/USER_ACCOUNT/Dropbox/HOSTXX_BACKUP/GUESTXX_BACKUP XXX.XXX.XXX.XXX(rw,sync,no_subtree_check)
Путь в клиентском fstab:
XXX.XXX.XXX.XXX:/home/USER_ACCOUNT/Dropbox/040(corp)/HOSTXX_BACKUP/GUESTXX_BACKUP /nfs_mount nfs4 rw,bg,hard,nointr,rsize=32768,wsize=32768,tcp,actimeo=0,timeo=600 0 0
При установке клиента я смог обойтись без использования пространства, заменив его, как показано ниже:
/home/USER_ACCOUNT/Dropbox (corp)/
becomes:
/home/USER_ACCOUNT/Dropbox\040(corp)/
Теперь клиент возвращает следующую ошибку:
mount.nfs4: mounting XXX.XXX.XXX.XXX:/home/USER_ACCOUNT/Dropbox/040(corp)/HOSTXX_BACKUP/GUESTXX_BACKUP failed, reason given by server: No such file or directory
Когда я выбираю этот путь и пытаюсь войти в него на сервере, он застревает в скобке и возвращает следующую ошибку:
-bash: syntax error near unexpected token `('
Пока я не смог найти способ обрабатывать символ скобки. Когда я пытаюсь использовать стандартные escape-последовательности в / etc / fstab при его монтировании, он обрезает все после экранирующей косой черты.
Я также безуспешно пробовал "mount -d bind". И новая папка, и исходные пути (абсолютные и символические) кажутся пустыми, как и данные, до тех пор, пока я не перезагружусь.
Как указано в вопросе, в /etc/fstab
пробелы следует заменить на \040
не /040
, поэтому строка fstab должна быть:
XXX.XXX.XXX.XXX:/home/USER_ACCOUNT/Dropbox\040(corp)/HOSTXX_BACKUP/GUESTXX_BACKUP /nfs_mount nfs4 rw,bg,hard,nointr,rsize=32768,wsize=32768,tcp,actimeo=0,timeo=600 0 0
В командной строке оболочки пробел должен быть заключен в кавычки:
mount -t nfs4 'XXX.XXX.XXX.XXX:/home/USER_ACCOUNT/Dropbox (corp)/HOSTXX_BACKUP/GUESTXX_BACKUP' /nfs_mount
Или:
cd '/home/USER_ACCOUNT/Dropbox (corp)/HOSTXX_BACKUP/GUESTXX_BACKUP'