A volte si ricevere un codice errore -43 quando si tenta di accedere ai file in una cartella condivisa durante l’uso di Finder in MacOS tramite SMB. Quale è la causa?

Nella schermata precedente, Finder sta tentando di accedere (tramite SMB) alla directory “1_ã” nella cartella condivisa e di creare una sotto cartella, generando un errore. Ciò accade perché il carattere “ã” è codificato utilizzando Normalization Form D (NFD), il modulo di normalizzazione Unicode di “Decomposizione canonica”.
Sul lato client, tuttavia, Finder invia la richiesta utilizzando Normalization Form C (NFC), il modulo di “Composizione canonica”. Pertanto, il server NAS non riesce a riconoscere il nome o trovare la directory, e restituisce un errore.
Inoltre, a causa di questa differenza alcuni file nelle cartelle con nomi contenenti lettere dal modulo NFD potrebbero essere invisibili e non modificabili. Le operazioni come la rinomina, la creazione o la modifica dei file in questo tipo di cartella potrebbero non riuscire.
Questo errore è causato dall’uso da parte del server e del client di due diversi moduli di normalizzazione Unicode. Quando un utente tenta di accedere a una cartella condivisa sul server NAS tramite SMB, il client invia una richiesta per conoscere quali file sono presenti nella directory. Alla ricezione della richiesta, il server NAS invia tutti i nomi file nella directory al client. Il problema nasce quando i nomi file utilizzano un diverso modulo di normalizzazione Unicode, in questo caso l’NFD sul lato server e l’NFC sul lato client. Ciò si verifica quando il client sceglie un modulo diverso quando salva i file sul server NAS. Quando il client riceve i nomi file, chiede al server di visualizzare questi file o richiede che venga creato un nuovo file nella directory. Il formato di codifica della richiesta dipende dalle impostazioni sul lato client. Se la richiesta del client è in un formato diverso rispetto al formato usato sul server, allora il server non sarà in grado di trovare i file o le directory, e viene segnalato un errore.
Tuttavia, se di desidera convertire i nomi file del modulo NFD nel modulo NFC per i file salvati sul NAS, è possibile usare uno strumento che prende il nome di convmv. Per installare convmv procedere come segue.
- Accedere al NAS e andare su App Center.
- Installare Perl.

- Andare su https://www.j3e.de/linux/convmv/ e scaricare convmv.
- Salvare il file in una directory sul NAS. (Ad esempio uno cartella condivisa, Pubblica)
- Aprire il terminale e stabilire una connessione SSH per accedere al NAS.
- Inserire il percorso della cartella dove è stato salvato convmv.
Inserimento comando: Run: cd /share/Public - Estrarre il file.
Inserimento comando: Run: tar -xvf convmv-2.05.tar.gz - Inserire il percorso della cartella dove salvare i file estratti.
Inserimento comando: Run: cd convmv-2.05 - Assicurarsi che convmv sia eseguibile.
Inserimento comando: Run: chmod a+x convmv - Modificare il percorso shell di Perl per il NAS.
Inserimento comando: Run: sed -i -e'1c\\#\!\/opt\/bin\/perl' convmv - Convertire i nomi file.
Inserimento comando: Run: ./convmv -r --nfc --nosmart -f UTF-8 -t UTF-8 --notest <percorso cartella che contiene i file da convertire>
Nota:
Queste istruzioni si basano sul firmware QTS 4.3.6 con una piattaforma x86_64. L’uso di questi passaggi con versioni firmware precedenti potrebbe produrre risultati diversi. Ad esempio, il percorso shall di Perlo potrebbe essere diverso nel passaggio 10, pertanto potrebbe essere necessario sostituirlo con il percorso corretto.
Queste istruzioni non si applicano ai modelli basati su ARM.
Riferimenti:
https://en.wikipedia.org/wiki/Unicode_equivalence#Errors_due_to_normalization_differences
https://en.wikipedia.org/wiki/Unicode_equivalence#Normalization
https://www.j3e.de/linux/convmv/
https://linux.die.net/man/1/convmv
http://unicode.org/reports/tr15