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.. . .

: ]
commentaires:
avatar

Strad drakov

Correction :
--ghost : si l'on ne mets pas cette option aucun répertoire ne sera VISIBLE 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.

→ l'utilisation du terme crée dans ce cas prète a confusion
Commentaires en d'autres langues: English
avatar

David - http://www.conexcol.com

Cool.. it works.

Stupid question: Should I replace the word "user"in the commands?
i.e.
/mnt/autofs-user /etc/auto.user --timeout=3 --ghost
for:
/mnt/autofs-manu /etc/auto.manu --timeout=3 --ghost
avatar

manu

Indeed, "user" could be replaced by the username for whom you are applying autofs. You can create as many auto.user files as you may need (one per user, or even one per type of mounts, whatever may suit you).

oh and yes, my antispam filter requires me to moderate comments :]
avatar

David Velasquez - http://www.conexcol.net.co

Ok, this is my problem: I need to mount 3 directories from a remote NFS server. My fstab looks like this:

storage1.co.conexcol.net:/-bak /-bak nfs rsize=32768,wsize=32768,intr,noatime 0 0
storage1.co.conexcol.net:/data /data nfs rsize=32768,wsize=32768,intr,noatime 0 0
storage1.co.conexcol.net:/progs /progs nfs rsize=32768,wsize=32768,intr,noatime 0 0

I noticed that with autofs I can't just mount the remote subdirectories inside the local directory, but I would need to mount something like /mnt/progs and then I could do it. Any wy to do automount like normal fstba in just one line inside auto.master but with the advantages of automount (i.e no symlinks, or auto.misc or whatever)?

avatar

manu

It's a good question (once I got exactly what you are looking for :]). I would have mounted everything in /mnt/storage or something and then linked /mnt/storage/progs to /progs. I am assuming that is exactly what you want to avoid, and hence mount directly /progs as an NFS resource.

I think you might need to check some of the fstab options, there could be something there... . . or write a wrapper something..
: ]
Laisser un commentaire
You may use the following HTML tags: <p> <a> <strong> <b> <em> <i> <cite> <blockquote> <code> <pre>

Les commentaires ne sont pas envoyés vers des tiers pour vérification