Mieux gérer les partages SMB avec macOS High Sierra

Dans les (gros) problèmes de macOS? il y a la gestion du SMB, le protocole de partage de fichiers de Microsoft. Imposé par Apple depuis quelques années, il est finalement assez mal géré et les performances sont parfois en retrait. Voici quelques petites astuces qui peuvent aider en cas de soucis.

TL;DR : Si vous avez de soucis de réseau avec macOS High Sierra, les commandes dans l’article peuvent aider (désolé, il faut quand même lire).

J’avais déjà parlé d’un problème récurrent qui date de macOS El Capitan (10.11.5 exactement) : la signature des paquetes grèvent violemment les performances. On peut la désactiver pour gagner un peu en débit. Mais High Sierra amène d’autres soucis.

Premier truc, qui énerve pleins de gens, macOS enregistre des fichiers cachés, les .DS_Store, dans chaque dossier. A l’origine, ils servent à gérer l’affichage dans le Finder. Si vous avez modifié manuellement l’ordre des fichiers, mis une icône dans un coin, etc., tout est stocké dans le .DS_Store. Par défaut, avant High Sierra, le Finder essayait de lire le .DS_Store avant d’afficher le contenu du dossier. Sous macOS High Sierra, le comportement change : le Finder affiche par ordre alphabétique (si l’option est cochée, visiblement) avant d’essayer de lire les fichiers, ce qui en théorie accélère un peu la navigation.

Apple propose une solution pour ne pas lire les .DS_Store, mais c’est un peu une blague : elle consiste surtout à ne pas écrire les .DS_Store. Attention, ça enlève quelques trucs liés à macOS comme les tags colorés ou la traduction automatique de certains dossiers.

defaults write com.apple.desktopservices DSDontWriteNetworkStores -bool TRUE

Deuxième truc, si vous voulez revenir à l’ancien comportement (affichage uniquement à partir des .DS_Store), il y a une commande. Je ne vois pas bien l’intérêt, mais ça existe.

defaults write com.apple.desktopservices UseBareEnumeration -bool FALSE

Troisièmement, le cache. Vous pouvez le désactiver sur les partages réseau, ce qui accélère parfois l’affichage mais peut le ralentir avec un réseau lent (oui, c’est un peu paradoxal). Ca permet surtout d’éviter un truc énervant : la création d’un dossier qui n’apparaît pas directement. Si le cache (ou le réseau) traîne un peu, il arrive parfois que la création d’un fichier ou d’un dossier semble ne pas fonctionner. En désactivant le cache, on évite ce problème mais ça peut amener de la latence d’affichage. Vous avez donc le choix entre un réseau qui s’affiche vite avec des erreurs potentielles ou un affichage potentiellement plus lent, mais sans erreurs.

Il faut modifier le fichier /etc/nsmb.conf.

sudo nano /etc/nsmb.conf

Ajoutez dir_cache_off=yes en fin de fichier. S’il n’existe pas, il faut ajouter [default] au début du fichier.

Je rappelle que vous pouvez ajouter signing_required=no à la fin du même fichier pour désactiver la signature des paquets.

Enfin, si vous voulez forcer une ancienne version de SMB (par exemple pour un vieux serveur Windows ou un NAS), ajoutez – toujours dans le même fichier – protocol_vers_map=2 ou protocol_vers_map=1, en fonction de vos besoins. Attention, SMBv1 est obsolète.

Si vous utilisez essentiellement des Mac, je vous conseille de désactiver le cache, désactiver la signature des paquets, de garder le fonctionnement de High Sierra pour l’affichage et de garder les .DS_Store, c’est plus simple pour l’affichage. Dans un environnement Windows avec un boss qui affiche les fichiers cachés, pensez à désactiver les .DS_Store.