Autofs ou comment se simplifier le partage réseau

Une des choses géniales sous Linux est la possibilité de monter n’importe quel système au sein de son arborescence et de pouvoir utiliser cela comme n’importe quel fichier local. Un partage réseau ? Un dossier. Une machine accessible en SFTP ? Un dossier. etc… Sur un SBC avec un espace limité c’est vraiment pratique de pouvoir accéder à son NAS pour stocker des données (par exemple ses enregistrements TV). Ou à l’inverse pour un usage mediacenter de pouvoir accéder à sa librairie. Ce qui est nettement moins intuitif est le comment ajouter ces dossier montés. On peut retrouver la commande mount pour ajouter un dossier à la demande, ajouter une configuration dans /etc/fstab pour que le dossier soit ajouté au démarrage, …
Mais savez-vous qu’il existe un outil qui combien le meilleur de tout ça ? Voici autofs, l’outil parfait pour gérer les partages réseau.

Une fois configuré, autofs va automatiquement monter les dossiers lorsque l’on tente d’y accéder. Mais également démonter les dossiers lorsqu’ils ne sont plus utilisés. Et tenter de remonter un dossier inaccessible suite par exemple à une coupure réseau. Plusieurs partages Samba sur votre NAS ? Pas besoin de les configurer individuellement : une fois le NAS configuré il suffit de descendre dans le dossier que l’on souhaite pour que autofs monte le partage ayant ce nom…

Partage réseau NFS

On commence par s’assurer qu’on dispose des paquets requis

sudo apt install autofs nfs-common

On configure le fichier principal de autofs /etc/auto.master en ajoutant à la fin

/mnt/share     /etc/auto.nfs --ghost,--timeout=60

On complète alors le fichier correspondant : /etc/auto.nfs

<nom_partage>   -fstype=nfs,rw,nosuid,vers=4    <ip_serveur>:<path_serveur>

Puis on redémarre le service

sudo service autofs restart

Dans cet exemple autofs va créer le dossier <nom_partage> dans /mnt/share et si on tente d’accéder au dossier /mnt/share/<nom_partage> (via un cd ou un ls par exemple) il va tenter de monter le partage ainsi configuré puis la commande fonctionnera comme si de rien n’était.

Partage réseau SMB

Dans ce cas autofs devient encore plus magique.

On vérifie qu’on a tout :

sudo apt install autofs cifs-utils

Dans le fichier /etc/auto.master on ajoute :

/mnt/nas       /etc/auto.mnt --ghost,--timeout=30

que l’on complète par le fichier /etc/auto.mnt

* -fstype=cifs,username=<username>,domain=WORKGROUP,password=<password>,rw,uid=1000,gid=1000,file_mode=0666,dir_mode=0777 ://<IP_NAS>/&

Puis on redémarre

sudo service autofs restart

On peut alors par exemple accéder au dossier partagé « Photo » en utilisant le dossier /mnt/nas/Photo. Et si on essaye /mnt/nas/Video autofs essaiera de monter le partage Video et s’il existe (et que le compte configuré a bien les droits d’accès) on y a accès.

Et voilà !

Il est bien sûr possible de spécifier plusieurs partages en ajoutant à chaque fois une ligne dans /etc/autofs.master puis en ajoutant le fichier de conf correspondant

Et si ça coince ?

Comme toujours avec la magie noire quand ça marche c’est génial mais quand ça ne fonctionne pas on est vite bloqué.

Pour investiguer on stoppe le service

sudo service autofs stop

et on lance la commande suivante :

sudo automount -f -v -d

La commande va ainsi loguer ce que fait autofs. En utilisant un deuxième shell (ou via screen par exemple) on tente alors d’accéder au dossier posant problème et on peut voir l’erreur apparaître dans ce log ce qui facilite grandement les investigations.