Table des matières

, , , , , ,

AutoFS - montage automatique de systèmes de fichier

(avril 2021) Systemd peut gérer simplement le montage automatique de systèmes de fichiers. Comme en témoigne ce post sur StackExchange en date du 7 juillet 2017, AutoFS est l'ancien moyen de monter automatiquement des systèmes de fichiers.

Avec Systemd-automount, cela peut se faire facilement : consulter la page monter un disque avec system.automount pour le mettre en place.

Ainsi, à moins d'avoir des besoins spécifiques, dans la plupart des cas systemd-automount fonctionnera correctement. Cela permet, par exemple, monter automatiquement des disques durs que l'on insère dans un dock sur le bureau (stockage, sauvegarde…).

Le montage manuel ou par mount_fstab a plusieurs inconvénients:

D'autre part les montages réalisés à partir de nautilus (ou files) ne sont pas visibles dans les autres applications comme Firefox, shotwell, ….

AutoFS permet de résoudre ces problèmes.

AutoFS contrôle les opérations des démons d'automount. Les démons d'automount montent automatiquement des systèmes de fichiers quand ils sont employés et les démontent après une période d'inactivité. Ceci est fait en se basant sur un ensemble de cartographies pré-configurés. Le montage automatique par le noyau sous Linux est implémenté, presque complètement, à la manière de celui de SunOS. Une version récente du module autofs4 du noyau (intégrée ou séparée) est nécessaire.

Pré-requis

Installation

Installez le paquet autofs .

supprimez (ou commentez) dans /etc/fstab les montages que vous voulez gérer par AutoFS (si vous en aviez écrit auparavant).

Partage

Créer

Déclaration des répertoires parents de montages et de leur types

Pour chaque type de montage via AutoFS, éditez le fichier (avec les droits d'administration) /etc/auto.master pour y ajouter une ligne concernant le type de système de fichier :

/<point_de_montage_parent> /etc/auto.<type> --ghost,--timeout=30

<point_de_montage_parent> est le répertoire parent de montages…cf. §Explication ci-dessous

Les 3 champs peuvent être séparés par un nombre quelconque d'espaces ou par des tabulations.
Il est possible de mettre un commentaire précisant ces types de système de fichier.

Pour les noms de dossier avec un espace :

  • Dans /etc/fstab, on remplaçait les espaces par \040
  • Avec autoFs, on ajoute un antislash \ avant les espaces

exemples :

/etc/auto.master
/media   /etc/auto.media --ghost,--timeout=30    # !! /media est à éviter… cela peut empêcher le montage auto des clés USB, disques externe et autre smartphone !!
/mnt     /etc/auto.mnt   --ghost,--timeout=30
/net     /etc/auto.net   --ghost,--timeout=30

Création des partages

Il faut ensuite créer les partages pour chaque type de système fichier éditez le fichier (avec les droits d'administration) /etc/auto.<type>

<mon_partage>    -fstype=<type>,rw,options    <ip_serveur>:/<dossier_du_partage_sur_le_serveur>

Explications

Déclaration des répertoires parents de montages et de leur types

Création des partages

paramétrez les options de montage suivantes.

Prise en compte des modifications apportées dans les fichiers de configuration :

Après avoir configuré le service par le biais des fichiers que vous avez créés/modifiés il faut penser à relancer le service autofs; pour qu'il actualise les données. Dans un terminal :

sudo service autofs restart
Quand autofs est actif, vous ne pouvez plus créer de sous-répertoires dans le répertoire où autofs réalise ses montages, /mnt par exemple
Cela se traduit par :
drwxr-xr-x   3 root root     0 mars  20 08:41 mnt/

Remarquer ci-dessus le 0 au lieu de 4096 sans autofs
Aussi si vous essayez:

   sudo mkdir /mnt/test
[sudo] Mot de passe de user : 
mkdir: impossible de créer le répertoire «/mnt/test»: Permission non accordée

Ce qui est assez déroutant avec sudo!!

Type de montage

NFS

Exemple de partage NFS

Editez le fichier /etc/auto.master

/media/serveur_maison	/etc/auto.nfs --ghost,--timeout=60

Editez le fichier /etc/auto.nfs

Photos_serveur  -fstype=nfs,rw   192.168.1.3:/home/blinckers/Photos
Entreprise      -fstype=nfs,rw   192.168.1.3:/home/professionnel
Musique_serveur -fstype=nfs,rw   192.168.1.3:/home/blinckers/Musique

Chaque partage sera monté dans :

et sera visible sur le bureau (Gnome)

un autre exemple de partage NFS

Editez le fichier /etc/auto.master

+auto.master
/media/nas	/etc/auto.nfs --ghost,--timeout=60

Editez le fichier /etc/auto.nfs

Photos -fstype=nfs,rw,uid=1000,gid=1000,rsize=8192,wsize=8192   192.168.1.250:/volume1/photo
video -fstype=nfs,rw,uid=1000,gid=1000,rsize=8192,wsize=8192   192.168.1.250:/volume1/video
music -fstype=nfs,rw,uid=1000,gid=1000,rsize=8192,wsize=8192  192.168.1.250:/volume1/music
public -fstype=nfs,rw,uid=1000,gid=1000,rsize=8192,wsize=8192   192.168.1.250:/volume1/public
images -fstype=nfs,rw,uid=1000,gid=1000,rsize=8192,wsize=8192   192.168.1.250:/volume1/homes/remy/images
Pour NFS, l'option fstype est facultative : c'est le système de fichier par défaut pour autofs.
N'utilisez pas les signets nautilus vers des dossiers issus du partage nfs, le timeout d'autofs ne fonctionnera pas et cela provoquera des freezes si le serveur est hors ligne. Par contre, les volumes NFS présent par défaut dans les raccourcis de nautilus ne poseront pas de problème.

Pour ce faire allez voir le fichier /home/Utilisateur/.gtk-bookmarks, il se peut qu'il y ai une ligne qui pointe vers un partage nfs et qui n'apparaisse pas dans la partie signet de nautilus, supprimez là, sinon freezes…

En cas de problème au montage (dossier introuvable), essayer de déclarer dans le auto.nfs le répertoire père du répertoire partagé sur le serveur.

Exemple:

si sur le serveur /mnt/Mon_DD/Partage

Dans auto.nfs

partage_serveur -fstype=nfs,rw,uid=1000,gid=1000,rsize=8192,wsize=8192   192.168.1.250:/mnt/Mon_DD

SSH

Procédure de montage sur SSH

FTP

Il faut avoir précédemment visité la page curlftpfs

exemple de partage FTP Editez le fichier /etc/auto.master

/net/ftp /etc/auto.ftp uid=1000,gid=1000,--ghost,--timeout=30

Editez le fichier /etc/auto.ftp

serveur_1      -fstype=fuse,allow_other,user=<login>:<pass>    :curlftpfs\#serveur_1

Le partage sera monté dans /net/ftp/serveur_1

SAMBA - CIFS

Pré requis / Remarques générales

Si vous avez déjà une solution via fstab, n'oubliez pas de commenter les lignes dans /etc/fstab et de démonter les montages avant de mettre en place cette solution. Si le serveur (montage samba) n'est pas accessible, cela empêche l'explorateur de fichier nautilus de démarrer. Dans ce cas ouvrir une console et taper

sudo service autofs stop

Installer autofs et cifs

sudo apt-get install autofs cifs-utils

création du credential

Dans les commandes suivantes, remplacer <user> par votre nom d'utilisateur Créer le fichier /home/<user>/.cred-file (référencé ci-dessus) et rendez-le accessible uniquement par vous-même (IMPORTANT car il contient un mot de passe en clair…) :

touch /home/$USER/.cred-file
chmod 600 /home/$USER/.cred-file

Ajouter les lignes suivantes à ce fichier (à valoriser correctement bien sûr) :

username=<user>
password=<password>

Avec <user> et <password> les login et mot de passe sur le serveur nas.

Modification du fichier auto.master

Ajoutez la ligne suivante à la fin du fichier /etc/auto.master (sudo) :

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

Créer un fichier /etc/auto.mnt

Créer un fichier /etc/auto.mnt contenant les informations d'accès aux partages :

/etc/auto.mnt
  nas -fstype=cifs,credentials=/home/<user>/.cred-file,user=<user>,uid=1000,gid=1000 ://nomDuNas/montageDuNas

Remarques :

Bien précéder le nom du serveur par le caractère ` : ` 1)
sudo usermod -aG users loginUtilisateur

Il faut quitter la session et la rouvrir pour que le changement prenne effet.

Quelques options supplémentaires :

file_mode et dir_mode en 0777 n'est pas indispensables pour un partage Windows, même si on veut avoir un accès en écriture ! Il suffit que l'utilisateur Windows utilisé pour la connexion (dans le fichier de credentials) ait les droits d'écriture sur le dossier partagé. Par ailleurs, si on précise le username dans le fichier de credentials, il est inutile de le re spécifier dans les options du mount. Et uid et gid ne doivent pas forcément être des valeurs numériques. Voir mount.cifs(8)

Pour finir, redémarrez autofs :

sudo service autofs restart

L'utiliser

Pour y accéder, et lancer le montage auto, il suffit d'ouvrir votre gestionnaire de fichiers (nautilus) puis de pointer sur le répertoire de montage (/mnt/nas). Pour simplifier les prochains accès, créez un (des) signet(s) afin d'accéder aux partages.

Si ça ne marche pas ...

Arrêter autofs :

sudo service autofs stop

Tester le montage avec cette commande :

sudo mount -t cifs -o credentials=/home/<user>/.cred-file,user=<user>,uid=1000,gid=1000   //ipServeur/nomPartageServeur  /mnt

Remarques :

Une fois que le mount marche, démonter :

sudo umount /mnt

Utiliser les paramètres du mount dans le fichier /etc/auto.mnt et relancer autofs :

sudo service autofs start

Débogage

Tant que ça ne marche pas, laissez arrêté le service et lancez automount manuellement, vous trouverez beaucoup plus facilement d'où vient l'erreur.

Arrêter autofs :

sudo service autofs stop

Lancer automount directement (Ctrl+C pour l'arrêter) :

 sudo automount -f -v -d

La plupart des problèmes se voient en regardant la commande "mount". Voici le type d’erreur que vous pourrez trouver :

 >> mount error: could not resolve address for nas: Unknown error
 lookup(program): lookup for nas failed
 >> mount: unknown filesystem type 'cif'

Au moins on sait où chercher. Ici par exemple, un problème de résolution de nom et une option de montage avec une erreur de saisie (cif au lieu de cifs)

Le <nomPartageServeur> après l'adresse IP du serveur est nécessaire (en tout cas avec un partage Windows 10), sinon ça retourne une erreur

mount error(22): Invalid argument

Aller plus loin