NFS compartido desde Linux con caracteres acentuados y no ascii: los archivos funcionan en el terminal pero no en los programas

1

Tengo mi colección de música y películas en un servidor Linux y los nombres de los archivos no contienen caracteres ASCII. Esto no es un problema en sí mismo, ya que el servidor de música también se ejecuta en el mismo servidor y todo está bien.

La configuración regional del servidor es:

root@lms:~# locale
LANG=C
LANGUAGE=
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=en_US.UTF-8

y los clientes (macOS Sierra) son:

09:15:38 ~$ locale
LANG="en_US.UTF-8"
LC_COLLATE="en_US.UTF-8"
LC_CTYPE="en_US.UTF-8"
LC_MESSAGES="en_US.UTF-8"
LC_MONETARY="en_US.UTF-8"
LC_NUMERIC="en_US.UTF-8"
LC_TIME="en_US.UTF-8"
LC_ALL="en_US.UTF-8"

Pero estoy usando OS X / macOS en mi computadora de escritorio y me gustaría administrar los archivos (etiquetado, clasificación, ...) usando programas OS X. He creado un recurso compartido NFS en el servidor linux de la siguiente manera:

/exports/Music          192.168.1.201(rw,async,crossmnt,no_subtree_check,insecure,all_squash,anongid=1002,anonuid=501) 192.168.1.0/255.255.255.0(ro,async,crossmnt,no_subtree_check,insecure,all_squash,anonuid=501,anongid=1002)

y montado en la manzana:

lms:/exports/Music on /Volumes/Music (nfs, nodev, nosuid, mounted by rainerkrug)

Mi problema es que no puedo copiar los archivos con caracteres que no son ASCII mediante Finder (el buscador me dice

La operación no se puede completar porque no se pueden encontrar uno o más elementos necesarios. (Código de error -43)

Donde el código de error -43 significa "Archivo no encontrado".

Pero puedo copiar el archivo desde el terminal.

Esto también se refleja porque no puedo abrir el archivo en el volumen externo usando el botón derecho del mouse, pero puedo abrir el local que copié usando el terminal, o que otros programas (por ejemplo, Metadatics para editar etiquetas) pueden No ver ni trabajar con los archivos.

Todo esto me suena bastante extraño, ya que macOS y Linux pueden funcionar con los caracteres que no son ascii (caracteres acentuados en particular), pero ¿macOS tiene problemas al acceder al recurso compartido?

¿Hay algo que pueda hacer, excepto cambiar los nombres de los archivos a caracteres ascii? ¿Hay opciones de montaje que debería establecer?

Debo mencionar que este problema no es nuevo en Sierra, también estaba allí bajo ElCapitan.

    
pregunta Rainer 29.09.2016 - 11:04

1 respuesta

3

Bien, encontré aquí enlace la respuesta. Cito:

  

Después de leer mucho, no hay muchas maneras de construir el   mismo carácter Unicode, y así para una comparación eficiente hay una   concepto llamado normalización ( enlace ).   Después de normalizar con el mismo algoritmo la representación de cualquier   El personaje será consistente.

     

Lamentablemente hay múltiples algoritmos de normalización y no hay consenso sobre   el cual usar. Apple usa NFD, donde como la mayoría de los otros sistemas operativos usan   NFC. NFS no especifica un método de normalización, por lo que OSX no puede   Convertir con confianza fuera de la caja.

     

Todo lo que tenía que hacer para solucionar esto era decirle a NFS que mis recursos compartidos de NFS usaban   NFC. Luego aparecieron todos los archivos con los caracteres impares y se leyeron.   bien.

     

Hice esto agregando esta línea a /etc/nfs.conf en la Mac.

     

nfs.client.mount.options = intr, locallocks, nfc

Funciona perfectamente.

Adición: Las opciones intr,locallocks están no relacionadas con la codificación de caracteres, por lo que la solución debería ser workinf = g sin estas, es decir,

nfs.client.mount.options = nfc

Aunque no lo he intentado ya que estas dos opciones tienen sentido en mi escenario de uso.

    
respondido por el Rainer 29.09.2016 - 12:35

Lea otras preguntas en las etiquetas