This program allows one to automate mounting and unmounting of different types of filesystems, be it a usb drive, samba share or nfs, and for sure others. It is like fstab but on demand.

What you will need

  • A kernel with the option "Kernel automounter" File Systems ---> <*> Kernel automounter version 4 support (also supports v3)
  • The program autofs apt-get install autofs
  • Stuff to cope with the filesystems you want to mount

    For example: for a USB drive you will need the appropriate kernel modules (mass storage + filesystem support), for a samba share you will need the kernel options AND the program smbfs.


To configure autofs edit the master file /etc/auto.master, in this file we shall declare which configuration files to use with some options.


Ok, so in /etc/auto.master add a line according to the following example (you can add as many as you need):

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

Explanation (in order of appearance):

  • the root folder where we shall mount things
  • the configuration file for these mountings
  • some additional options

--timeout : as it sounds, timeout option defines how much time (in seconds) before a resource is unmounted when not in use.

--ghost : this option creates a "ghost" folder of each defined mount point, whether it is mounted or not, as long as autofs is running it will create the folder. If you don't have this option you will need to specify precisely the path to indicate to autofs that it must attempt to mount the filesystem you are trying to access. (reading on might help to understand this)

Now we need to create the root folder for our mounts:

mkdir -p /mnt/autofs-user


It is here that we define the crap we want to mount, in this case some usbdrive:

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

It is in /mnt/autofs-user/sda1 that we will mount /dev/sda1 with the same type of options as you would put in fstab.. ..

uid and gid : here we put the uid and gid of the user who is supposed to access this resource, if you don't mount will belong to root and the user won't be able to write to his usbdrive.

now if all is good, restart autofs

/etc/init.d/autofs restart


Now all you need to do is goto /mnt/autofs-user/, you should see the folders usb1 and usb2 which should be "empty".

By entering /mnt/autofs-user/usb1 (or listing it's contents etc etc.) autofs will mount /dev/sda1 in the folder usb1 as defined in the file /etc/auto.user and /etc/auto.master. To be clear, /etc/auto.master defines the root for mounting things according to a sub configuration file (in this case /etc/auto.user) and /etc/auto.user defines the subfolder only.

And what about not using --ghost

The option --ghost will automatically create the folders usb1 and usb2 in /mnt/autofs-user, people can think it's practical, however i think not, at least not for the way i use it.

What i do is create a folder from which i want to access the autofs mounts, in my case this is what i do:

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

This creates some links to inexistent folders Except when sda1 OR sda2 is mounted.

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

This way when i list the contents of /home/manu/autofs/ autofs will try to mount sda1 and sdb1... the subtle part is what you see as a result of this.

For example, i have a colored bash, if the link points to an existing resource it shows up in yellow for me, if the link points to an inexistent resource it shows up red, this way i know right away what is mounted. Plus with a file navigator such as Konqueror you will see a regular "folder link" if it is mounted or a "?" icon if it is not.

AutoFS and samba and/or NFS

AutoFS is like fstab just that it is on demand, hence you can mount network file systems too.

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

Note for the samba share, the file /etc/smb.auth.manu must existe and be chmod 600 and it must contain samba authentication info, example:

username=manu password=toto

now everything should work fine, the sun should shine brighter than the usual and something good will happen to you in less than two weeks if you forward this article to at least 15 people from your contact list. .. . .

: ]

David -

Cool.. it works.

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


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 :]

David Velasquez -

Ok, this is my problem: I need to mount 3 directories from a remote NFS server. My fstab looks like this: /-bak nfs rsize=32768,wsize=32768,intr,noatime 0 0 /data nfs rsize=32768,wsize=32768,intr,noatime 0 0 /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)?



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..
: ]
Comments in other languages: Français

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
Leave a comment
You may use the following HTML tags: <p> <a> <strong> <b> <em> <i> <cite> <blockquote> <code> <pre>

Your comments WILL NOT be submitted to any third party (not even for anti spam verification).