Как подключить NTFS-диск как utf8 через NFS

Вопрос

Как монтировать общий ресурс nfs (файловая система с файловой системой NTFS) как utf8 в CentOS 6.5 ?

Что я пробовал

 mount -o iocharset=utf8 mount -o nfs=utf8 mount -o utf8=1 mount -o utf8 

Проблема:

Когда я создаю файл на своем диске unix, содержащий umlauts (äöü), и экспортирую этот файл на мой общий ресурс NFS, я вижу сломанные символы в Windows (например, ). Сломанные символы находятся только в имени файла, а не в содержимом.

Возможно ли, что языковые настройки неверны?
LC_* = "en_US.UTF-8"
Пробовал также de_DE.UTF-8

Когда я создаю файл в Windows в share с помощью umlauts, он отображается как ? в unix. Я думаю, что есть проблема с настройками локали.

Настройки LC по умолчанию

 LANG=en_US.UTF-8 LC_CTYPE="en_US.UTF-8" LC_NUMERIC="en_US.UTF-8" LC_TIME="en_US.UTF-8" LC_COLLATE="en_US.UTF-8" LC_MONETARY="en_US.UTF-8" LC_MESSAGES="en_US.UTF-8" LC_PAPER="en_US.UTF-8" LC_NAME="en_US.UTF-8" LC_ADDRESS="en_US.UTF-8" LC_TELEPHONE="en_US.UTF-8" LC_MEASUREMENT="en_US.UTF-8" LC_IDENTIFICATION="en_US.UTF-8" LC_ALL= 

locale -a | grep de_DE

 de_DE de_DE@euro de_DE.iso88591 de_DE.iso885915@euro de_DE.utf8 

Пробовал все – никакого улучшения.

  • Как преобразовать файлы txt UTF-8 во все прописные буквы в bash?
  • Названия кириллических файлов были повреждены после обновления Slackware
  • Текстовый режим emacs UTF-8
  • Как изменить шрифт консоли bash для отображения символов UTF-8
  • Символы Unicode не отображаются в браузерах (как на интерфейсе, так и на страницах)
  • Удалить несколько регулярных выражений из переменной с помощью sed
  • Использование символов UTF-8 с программой сообщений `write`
  • Имя домашней папки с символами Unicode?
  • 2 Solutions collect form web for “Как подключить NTFS-диск как utf8 через NFS”

    Решение

     mount 192.168.1.1:/SHARE share -o nolock,nfsvers=4.1 

    Мой Windows Server разрешает все протоколы NFS, CentOS не выбирает 4.1. У NFS 4.1 больше нет проблем с умлаутами, как кажется.

    Установка файловой системы NTFS с использованием NFS версии 4.1 в ответе @Lucas может показаться волшебной, поэтому вот почему это решило эту конкретную проблему. Если вы просмотрите RFC IETF под названием: « Сетевая файловая система (NFS)» Версия 4 «Малая версия 1» , в частности раздел 14.4 «Возможности UTF-8 :

    выдержка

     14.4. UTF-8 Capabilities const FSCHARSET_CAP4_CONTAINS_NON_UTF8 = 0x1; const FSCHARSET_CAP4_ALLOWS_ONLY_UTF8 = 0x2; typedef uint32_t fs_charset_cap4; Because some operating environments and file systems do not enforce character set encodings, NFSv4.1 supports the fs_charset_cap attribute (Section 5.8.2.11) that indicates to the client a file system's UTF-8 capabilities. The attribute is an integer containing a pair of flags. The first flag is FSCHARSET_CAP4_CONTAINS_NON_UTF8, which, if set to one, tells the client that the file system contains non-UTF-8 characters, and the server will not convert non-UTF characters to UTF-8 if the client reads a symlink or directory, neither will operations with component names or pathnames in the arguments convert the strings to UTF-8. The second flag is FSCHARSET_CAP4_ALLOWS_ONLY_UTF8, which, if set to one, indicates that the server will accept (and generate) only UTF-8 characters on the file system. If FSCHARSET_CAP4_ALLOWS_ONLY_UTF8 is set to one, FSCHARSET_CAP4_CONTAINS_NON_UTF8 MUST be set to zero. FSCHARSET_CAP4_ALLOWS_ONLY_UTF8 SHOULD always be set to one. 

    Это было добавлено в 4.1 и не существовало ранее. По крайней мере, согласно моему исследованию этого вопроса.

    Для тех, кто управляет серверами NFS и использует 4.0, похоже, что вам рекомендуется использовать 4.1, если вы хотите:

    NFS версия 4 младшая версия 1 не имеет зависимостей от NFS версии 4 младшей версии 0, и считается отдельным протоколом. Таким образом, этот документ не обновляет и не устаревает RFC 3530 . NFS-малая версия 1 считается превосходящей младшую версию NFS 0 без потери функциональности, и ее использование предпочтительнее версии 0. Обе младшие версии NFS 0 и 1 могут использоваться одновременно в одной и той же сети между одним и тем же клиентом и сервером.

    Linux и Unix - лучшая ОС в мире.