AutoFS

ce logiciel permet de monter des systèmes de fichier a la demande que ce soit des disque USB/carte flash ou des système de fichiers distant et même pourquoi pas un disque interne.

Ce qu'il faut

  • Un noyau ayant l'option "Kernel automounter" File Systems ---> <*> Kernel automounter version 4 support (also supports v3)
  • Le logiciel autofs apt-get install autofs
  • De quoi gerer le(s) système(s) de fichier qu'on aura a monté

    Par exemple pour un disque USB il faudra le bon module noyau, pour du samba pareil avec en plus le logiciel smbfs.

Configuration

Pour configurer autofs il faut éditer le fichier maitre /etc/auto.master, dans ce fichier on fera référence a d'autre fichiers de configuration.

/etc/auto.master

Dans le fichier /etc/auto.master il faut ajouter la ligne (on peut avoir plusieurs lignes au besoin):

/mnt/autofs-user /etc/auto.user --timeout=3 --ghost

Dans l'ordre on précise:

  • le répertoire de montage
  • le fichier de configuration des montages
  • les options supplémentaire

--timeout : permet d'indiquer a partir de combien de temps (en secondes) de non accès au ressource le système de fichiers sera démonté.

--ghost : si l'on ne mets pas cette option aucun répertoire ne sera crée dans /mnt/autofs-user et donc pour monter le systéme de fichiers il faudra y accéder en tapant le chemin complet, par exemple /mnt/autofs-user/sda1, vous comprendrez en lisant la suite.

Il faut donc créer le répertoire de montage:

mkdir -p /mnt/autofs-user

/etc/auto.user

C'est dans ce fichier que l'on pourra définir les montages un par un:

usb1 -fstype=auto,rw,uid=1000,gid=1000 :/dev/sda1 usb2 -fstype=auto,rw,uid=1000,gid=1000 :/dev/sdb1

C'est donc dans /mnt/autofs-user/sda1 que sera monté /dev/sda1 avec les options habituelles de fstab. etc etc.

uid et gid : le numéro du compte utilisateur a qui appartiendra le montage, il est important sans quoi cela risque d'avoir les droits "root".

maintenant que tout est bon on redémarre autofs

/etc/init.d/autofs restart

En pratique

Il suffit donc d'aller dans /mnt/autofs-user/ vous verrez les répertoires usb1 et usb2 qui sont a priori vides.

En allant dans le répertoire /mnt/autofs-user/usb1 (ou en listant son contenu etc etc) autofs va monter /dev/sda1 dans le répertoire usb1 comme défini dans le fichier /etc/auto.user et /etc/auto.master. En effet il va monter sda1 dans usb1 par rapport au point de montage défini dans /etc/auto.master, c'est a dire dans /mnt/autofs-user.

La configuration sans --ghost

L'option --ghost va créer automatiquement les répertoires usb1 et usb2 dans /mnt/autofs-user/ ce qui est pratique, cependant je trouve cela moins pratique pour ce que j'en fait.

Ma technique consiste a créer un répertoire depuis lequel j'accéderais au montage, dans mon cas je fais:

mkdir /home/manu/autofs/ cd /home/manu/autofs/ ln -s /mnt/autofs-user/usb1 . ln -s /mnt/autofs-user/usb2 .

Cela me créera des liens vers des répertoires qui n'existe pas SAUF quand sda1 ou sda2 est monté.

lrwxrwxrwx 1 manu manu 21 2005-08-14 09:53 usb1 -> /mnt/autofs-user/sda1 lrwxrwxrwx 1 manu manu 21 2005-08-14 09:53 usb2 -> /mnt/autofs-user/sdb1

Ainsi quand je liste le contenu du répertoire /home/manu/autofs/ autofs va tenter de monter sda1 et sdb1, normal, ce qui est plus subtile est l'affichage.

Je m'explique, j'ai un bash coloré, si le lien pointe vraiment quelque part ce sera affiché en jaune pour moi, si c'est un lien vers un répertoire inexistant (non monté) ce sera rouge, ainsi je sais tout de suite ce qui est monté ou non. De plus avec un navigateur de fichier comme Konqueror par exemple on voit de suite si l'icône affiché est un lien vers quelque chose cela veut dire que la ressource est monté sinon il m'affichera une icône avec un "?".

AutoFS et samba et/ou NFS

AutoFS est une sorte de fstab qui monte au besoin, on peut tout a fait monté des partages réseau avec.

zik -fstype=smbfs,credentials=/etc/smb.auth.manu,uid=1000,gid=1000 ://192.168.0.100/zik nfs -rsize=8192,wsize=8192,soft,timeo=14,rw 192.168.0.100:/chemin/nfs

A noter pour le samba qu'il faudra le fichier /etc/smb.auth.manu, qu'il soit chmod 600 et contienne les infos d'authentification samba, par exemple:

username=manu password=toto

maintenant tout devrait fonctionner a merveille, le soleil doit briller et vous gagnerais le lotto si vous forwardez ce lien vers au moins 15 personnes.. . .

: ]