Condivisione NFS da Linux con caratteri accentati e non ascii: i file funzionano nel terminale ma non nei programmi

1

Ho la mia collezione di musica e film su un server Linux e i nomi dei file contengono caratteri non ascii. Questo di per sé non è un problema dato che il server musicale funziona anche sullo stesso server e tutto va bene.

Le impostazioni locali del server sono:

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

e i client (macOS Sierra) sono:

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"

Ma sto usando OS X / macOS sul mio computer desktop e vorrei gestire i file (tagging, ordinamento, ...) usando i programmi OS X. Ho creato una condivisione NFS sul server Linux come segue:

/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)

e montato su Apple:

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

Il mio problema è che non riesco a copiare i file con caratteri non ascii usando Finder (finder mi dice

L'operazione non può essere completata perché non è possibile trovare uno o più elementi richiesti. (Codice errore -43)

Dove il codice di errore -43 significa "File non trovato".

Ma posso copiare il file dal terminale.

Ciò si riflette anche perché non posso aprire il file sul volume esterno usando il tasto destro del mouse, ma posso aprire quello locale che ho copiato usando il terminale, o che altri programmi (es. Metadati per modificare i tag) possono non vedere o lavorare con i file.

Tutta questa cosa mi sembra piuttosto strana, dato che macOS e Linux possono lavorare con i caratteri non-ascii (in particolare i caratteri accentati), ma macOS ha problemi durante l'accesso alla condivisione?

C'è qualcosa che posso fare tranne la modifica dei nomi dei file in caratteri ascii? Ci sono opzioni di montaggio che dovrei impostare?

Dovrei menzionare che questo problema non è nuovo in Sierra - è stato anche lì sotto ElCapitan.

    
posta Rainer 29.09.2016 - 11:04
fonte

1 risposta

3

OK - Ho trovato qui link la risposta. Cito:

After much reading I learn't there are multiple ways to construct the same unicode character, and so for efficient comparision there is a concept called normalisation ( http://www.unicode.org/reports/tr15/ ). After normalising with the same algorithm the representiation of any character will be consistent.

Sadly there are multiple normalisation algorithms and no concensus on which to use. Apple use NFD, where as most other operating systems use NFC. NFS does not specify a normalisation method, so OSX cannot confidently convert out of the box.

All I needed to do to fix this was to tell NFS that my NFS shares used NFC. Then all the files with the odd characters appeared and read fine.

I did this by adding this line to /etc/nfs.conf on the Mac.

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

Funziona perfettamente.

Aggiunta: Le opzioni intr,locallocks sono non correlate alla codifica dei caratteri, quindi la soluzione dovrebbe essere workinf = g senza questi, cioè

nfs.client.mount.options = nfc

Anche se non l'ho provato, queste due opzioni hanno senso nel mio scenario di utilizzo.

    
risposta data 29.09.2016 - 12:35
fonte

Leggi altre domande sui tag