Installation

Configuration

AutoFS uses template files for configuration which are located in /etc/autofs The main template is called auto.master, which can point to one or more other templates for specific media types.

Open the file /etc/autofs/auto.master with your favorite editor, you will see something similar to this:

/etc/autofs/auto.master

#/media /etc/autofs/auto.media

The first value on each line determines the base directory under which all the media in a template are mounted, the second value is which template to use. The default base path is /media, but you can change this to any other location you prefer. For instance:

Note: Make sure there is an empty line on the end of template files (press ENTER after last word). If there is no correct EOF (end of file) line, the AutoFS daemon won't properly load.

The optional parameter timeout sets the amount of seconds after which to unmount directories.

The base directory will be created if it does not exist on your system. The base directory will be mounted on to load the dynamically loaded media, which means any content in the base directory will not be accessible while autofs is on. This procedure is however non-destructive, so if you accidentally automount into a live directory you can just change the location in auto.master and restart AutoFS to regain the original contents.

If you still want to automount to a target non-empty directory and want to have the original files available even after the dynamically loaded directories are mounted, you can use autofs to mount them to another directory (e.g. /var/autofs/net) and create soft links.

# ln -s /var/autofs/net/share_name /media/share_name

Alternatively, you can have autofs mount your media to a specific folder, rather than inside a common folder.

Note: This can cause problems with resources getting locked if the connection to the share is lost. When trying to access the folder, programs will get locked into waiting for a response, and either the connection has to be restored or the process has to be forcibly killed before unmounting is possible. To mitigate this, only use if you will always be connected to the share, and don't use your home folder or other commonly used folders lest your file browser reads ahead into the disconnected folder

Open the file /etc/nsswitch.conf and add an entry for automount:

automount: files

When you are done configuring your templates (see below), launch the AutoFS daemon as root:

# systemctl start autofs

To start the daemon on boot:

# systemctl enable autofs

Devices are now automatically mounted when they are accessed, they will remain mounted as long as you access them.

Removable media

Open /etc/autofs/auto.misc to add, remove or edit miscellaneous devices. For instance:

If you have a CD/DVD combo-drive you can change the cdrom line with -fstype=auto to have the media type autodetected.

NFS network mounts

AutoFS provides a new way of automatically discovering and mounting NFS-shares on remote servers (the AutoFS network template in /etc/autofs/auto.net has been removed in autofs5). To enable automagic discovery and mounting of network shares from all accessible servers without any further configuration, you'll need to add the following to the /etc/autofs/auto.master file:

/net -hosts --timeout=60

Each host name needs to be resolveable, e.g. the name an IP address in /etc/hosts or via DNS and please make sure you have at least nfs-common installed and working. You also have to enable RPC (systemctl start|enable rpcbind) to browse shared Folders.

For instance, if you have a remote server fileserver with an NFS share named /home/share, you can just access the share by typing:

# cd /net/fileserver/home/share

Note: Please note that ghosting, i.e. automatically creating directory placeholders before mounting shares is enabled by default, although AutoFS installation notes claim to remove that option from /etc/conf.d/autofs in order to start the AutoFS daemon.

The -hosts option uses a similar mechanism as the showmount command to detect remote shares. You can see the exported shares by typing:

# showmount <servername> -e

Replacing <servername> with the name of your own server.

Samba

The Arch package does not provide any Samba or CIFS templates/scripts (23.07.2009), but the following should work for single shares:

Note: Your passwords are plainly visible for anyone that can run df (only for mounted servers) or view the file /etc/autofs/auto.ftp.

If you want slightly more security you can create the file ~root/.netrc and add the passwords there.
Passwords are still plain text, but you can have mode 600, and df command will not show them (mounted or not).
This method is also less sensitive to special characters (that else must be escaped) in the passwords. The format is:

machine remoteserver
login myuser
password mypassword

The line in /etc/autofs/auto.ftp looks like this without user and password:

servername -fstype=curl,allow_other :ftp\://remoteserver

Create the file /sbin/mount.curl with this code:

/sbin/mount.curl

#! /bin/sh
curlftpfs $1 $2 -o $5,disable_eprt

Create the file /sbin/umount.curl with this code:

/sbin/umount.curl

#! /bin/sh
fusermount -u $1

Set the permissions for both files:

# chmod 755 /sbin/mount.curl
# chmod 755 /sbin/umount.curl

After a restart your new FTP server should be accessible through /media/ftp/servername.

Remote SSH

These are basic instructions to access a remote filesystem over SSH with AutoFS.

Note: The example below does not use an ssh-passphrase to simplify the installation procedure, please note that this may be a security risk in case your local system gets compromised.

When the generator ask for a passphrase, just press ENTER. Using SSH keys without a passphrase is less secure, yet running AutoFS together with passphrases poses some additional difficulties which are not (yet) covered in this article.

Next, copy the public key to the remote SSH server:

# ssh-copy-id -i /home/username/.ssh/id_dsa.pub username@remotehost

See that you can login to the remote server without entering a password:

# sudo ssh -i /home/username/.ssh/id_dsa username@remotehost

Note: The above command is needed to add the remote server to the root's list of known_hosts. Alternatively, hosts can be added to /etc/ssh/ssh_known_hosts.

On earlier versions of NIS (before 5.0.4), you should add nis to /etc/nsswitch.conf:

automount: files nis

Optional parameters

You can set parameters like timeout systemwide for all AutoFS media in /etc/conf.d/autofs:

Open the /etc/conf.d/autofs file and edit the daemonoptions line:

daemonoptions='--timeout=5'

To enable logging (default is no logging at all), add --verbose to the daemonoptions line in /etc/conf.d/autofs e.g.:

daemonoptions='--verbose --timeout=5'

After restarting the autofs daemon, verbose output is visible in /var/log/daemon.log.

Identify multiple devices

If you use multiple USB drives/sticks and want to easily tell them apart, you can use AutoFS to set up the mount points and Udev to create distinct names for your USB drives. See udev#Setting static device names for instructions on setting up Udev rules.

AutoFS permissions

If AutoFS isn't working for you, make sure that the permissions of the templates files are correct, otherwise AutoFS will not start. This may happen if you backed up your configuration files in a manner which did not preserve file modes. Here are what the modes should be on the configuration files:

0644 - /etc/autofs/auto.master

0644 - /etc/autofs/auto.media

0644 - /etc/autofs/auto.misc

0644 - /etc/conf.d/autofs

In general, scripts (like previous auto.net) should have executable (chown a+x filename) bits set and lists of mounts shouldn't.

If you are getting errors in /var/log/daemon.log similar to this, you have a permissions problem: