Parfois, j’obtiens un code d'erreur -43 lorsque j’essaie d’accéder à des fichiers dans un dossier partagé tout en utilisant Finder dans macOS via SMB. Quelle en est la cause ?
Dans l’écran ci-dessus, Finder essaie d’accéder (via SMB) au répertoire « 1_ã » dans un dossier partagé et de créer un sous-dossier, ce qui entraîne l’erreur. Cela se produit car le caractère « ã » est encodé en utilisant la Forme de normalisation D (NFD), qui est la forme de normalisation unicode « Décomposition canonique ».
Cependant, du côté client, Finder envoie la demande en utilisant la Forme de normalisation C (NFC), la forme « Composition canonique ». Par conséquent, le serveur NAS ne peut pas reconnaître le nom du répertoire ou retrouver le répertoire et donc, le serveur signale l’erreur.
De plus, cette différence peut rendre invisibles et non éditables certains fichiers de dossiers avec des noms contenant des lettres de la forme NFD. Des opérations telles que le renommage, la création ou l’édition de fichiers dans ce type de dossier pourrait s’avérer impossible.
Cette erreur est le résultat du serveur et du client qui utilisent deux formes de Normalisation unicode différentes. Si un utilisateur essaie d’accéder à un dossier partagé sur le serveur NAS via SMB, le client envoie une demande pour connaître les fichiers du répertoire. Lorsqu’il reçoit la demande, le serveur NAS envoie tous les noms de fichiers du répertoire au client. Le problème survient si les noms de fichiers utilisent une forme de Normalisation unicode différente - dans le cas présent, NFD du côté serveur et NFC du côté client. Cela se produit si le client choisit une forme différente lorsqu’il sauvegarde des fichiers dans le serveur NAS. Lorsque le client reçoit les noms de fichiers, il demande au serveur d’afficher ces fichiers ou demande la création d’un nouveau fichier dans le répertoire. Le format d'encodage de la demande dépend des paramètres côté client. Si la demande du client est d’un format différent de celui utilisé sur le serveur, alors le serveur ne pourra pas retrouver les fichiers ou les répertoires, et il signalera une erreur.
Néanmoins, si vous voulez convertir des noms de fichiers de forme NFD en forme NFC pour les fichiers stockés sur le NAS, vous pouvez utiliser un outil tel que convmv. Suivez les étapes ci-dessous pour installer convmv.
- Connectez-vous au NAS et allez dans l’App Center.
- Installez Perl.

- Allez dans https://www.j3e.de/linux/convmv/ et téléchargez convmv.
- Enregistrez le fichier dans un répertoire du NAS. (Par ex. dossier partagé, Public)
- Ouvrez le Terminal et établissez une connexion SSH pour vous connecter au NAS.
- Entrez le chemin du dossier où convmv est enregistré.
Entrée de commande : Run: cd /share/Public - Extrayez le fichier.
Entrée de commande : Run: tar -xvf convmv-2.05.tar.gz - Entrez le chemin du dossier où les fichiers extraits sont enregistrés.
Entrée de commande : Run: cd convmv-2.05 - Assurez-vous que convmv soit exécutable.
Entrée de commande : Run: chmod a+x convmv - Modifiez le chemin shell Perl du NAS.
Entrée de commande : Run: sed -i -e'1c\\#\!\/opt\/bin\/perl' convmv - Convertissez les noms de fichiers.
Entrée de commande : Run: ./convmv -r --nfc --nosmart -f UTF-8 -t UTF-8 --notest
Remarque :
Ces instructions se basent sur le firmware de QTS 4.3.6 sous une plate-forme x86_64. L’exécution de ces étapes en utilisant les versions précédentes du firmware peut produire des résultats différents. Par exemple, le chemin shell Perl peut différer dans l’étape 10, ainsi, vous pourriez avoir besoin de le remplacer par le chemin correct.
Ces instructions ne sont pas applicables aux modèles ARM.
Références :
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