21 On-demand mounting with autofs
21 On-demand mounting with autofs
https://documentation.suse.com/sles/15-SP7/html/SLES-all/cha-autofs.html
Revision History: SUSE Linux Enterprise Server Documentation autofs is a program that automatically mounts specified directories on an on-demand basis. It is based on a kernel module for high efficiency, and can manage both local directories and network shares. These automatic mount points are mounted only when they are accessed, and unmounted after a certain period of inactivity. This on-demand behaviour saves bandwidth and results in better performance than static mounts managed by /etc/fstab. While autofs is a control script, automount is the command (daemon) that does the actual auto-mounting.
21.1 Installation
autofs is not installed on SUSE Linux Enterprise Server by default. To use its auto-mounting capabilities, first install it with
sudo zypper install autofs Copy 21.2 Configuration
You need to configure autofs manually by editing its configuration files with a text editor, such as vim. There are two basic steps to configure autofs—the master map file, and specific map files.
21.2.1 The master map file
The default master configuration file for autofs is /etc/auto.master. You can change its location by changing the value of the DEFAULT_MASTER_MAP_NAME option in /etc/sysconfig/autofs. Here is the content of the default one for SUSE Linux Enterprise Server:
#
Sample auto.master file
This is an automounter map and it has the following format
key [ -mount-options-separated-by-comma ] location
For details of the format look at autofs(5).
# #/misc /etc/auto.misc #/net -hosts #
Include /etc/auto.master.d/*.autofs
# #+dir:/etc/auto.master.d #
Include central master map if it can be found using
nsswitch sources.
#
Note that if there are entries for /net or /misc (as
above) in the included master map any keys that are the
same will not be seen as the first read key seen takes
precedence.
# +auto.master Copy 1
The autofs manual page (man 5 autofs) offers a lot of valuable information on the format of the automounter maps.
2
Although commented out (#) by default, this is an example of a simple automounter mapping syntax.
3
In case you need to split the master map into several files, uncomment the line, and put the mappings (suffixed with .autofs) in the /etc/auto.master.d/ directory.
4
+auto.master ensures that those using NIS (see Section 3.1, “Configuring NIS servers” for more information on NIS) will still find their master map.
Entries in auto.master have three fields with the following syntax:
mount point map name options Copy mount point The base location where to mount the autofs file system, such as /home.
map name The name of a map source to use for mounting. For the syntax of the map files, see Section 21.2.2, “Map files”.
options These options (if specified) will apply as defaults to all entries in the given map.
TipTip: More information For more detailed information on the specific values of the optional map-type, format, and options, see the auto.master manual page (man 5 auto.master).
The following entry in auto.master tells autofs to look in /etc/auto.smb, and create mount points in the /smb directory:
/smb /etc/auto.smb Copy 21.2.1.1 Direct mounts
Direct mounts create a mount point at the path specified inside the relevant map file. Instead of specifying the mount point in auto.master, replace the mount point field with /-. For example, the following line tells autofs to create a mount point in the place specified in auto.smb:
/- /etc/auto.smb Copy TipTip: Maps without full path If the map file is not specified with its full local or network path, it is located using the Name Service Switch (NSS) configuration:
/- auto.smb Copy 21.2.2 Map files
ImportantImportant: Other types of maps Although files are the most common types of maps for auto-mounting with autofs, there are other types as well. A map specification can be the output of a command, or a result of a query in LDAP or a database. For more detailed information on map types, see the manual page man 5 auto.master.
Map files specify the (local or network) source location, and the mount point where to mount the source locally. The general format of maps is similar to the master map. The difference is that the options appear between the mount point and the location instead of at the end of the entry:
mount point options location Copy Make sure that map files are not marked as executable. You can remove the executable bits by executing chmod -x MAP_FILE.
mount point Specifies where to mount the source location. This can be either a single directory name (so-called indirect mount) to be added to the base mount point specified in auto.master, or the full path of the mount point (direct mount, see Section 21.2.1.1, “Direct mounts”).
options Specifies an optional comma-separated list of mount options for the relevant entries. If auto.master contains options for this map file as well, these are appended.
location Specifies from where the file system is to be mounted. It is usually an NFS or SMB volume in the usual notation host_name:path_name. If the file system to be mounted begins with a ‘/’ (such as local /dev entries or smbfs shares), a colon symbol ‘:’ needs to be prefixed, such as :/dev/sda1.
21.3 Operation and debugging
This section introduces information on how to control the autofs service operation, and how to view more debugging information when tuning the automounter operation.
21.3.1 Controlling the autofs service
The operation of the autofs service is controlled by systemd. The general syntax of the systemctl command for autofs is
sudo systemctl SUB_COMMAND autofs Copy where SUB_COMMAND is one of:
enable Starts the automounter daemon at boot.
start Starts the automounter daemon.
stop Stops the automounter daemon. Automatic mount points are not accessible.
status Prints the current status of the autofs service together with a part of a relevant log file.
restart Stops and starts the automounter, terminating all running daemons and starting new ones.
reload Checks the current auto.master map, restarts those daemons whose entries have changed, and starts new ones for new entries.
21.3.2 Debugging automounter problems
If you experience problems when mounting directories with autofs, it is useful to run the automount daemon manually and watch its output messages:
Stop autofs.
sudo systemctl stop autofs Copy From one terminal, run automount manually in the foreground, producing verbose output.
sudo automount -f -v Copy From another terminal, try to mount the auto-mounting file systems by accessing the mount points (for example by cd or ls).
Check the output of automount from the first terminal for more information on why the mount failed, or why it was not even attempted.
21.4 Auto-mounting an NFS share
The following procedure illustrates how to configure autofs to auto-mount an NFS share available on your network. It uses the information mentioned above, and assumes you are familiar with NFS exports. For more information on NFS, see Chapter 19, Sharing file systems with NFS.
Edit the master map file /etc/auto.master:
sudo vim /etc/auto.master Copy Add a new entry for the new NFS mount at the end of /etc/auto.master:
/nfs /etc/auto.nfs –timeout=10 Copy This tells autofs that the base mount point is /nfs, the NFS shares are specified in the /etc/auto.nfs map, and that all shares in this map will be automatically unmounted after 10 seconds of inactivity.
Create a new map file for NFS shares:
sudo vim /etc/auto.nfs Copy /etc/auto.nfs normally contains a separate line for each NFS share. Its format is described in Section 21.2.2, “Map files”. Add the line describing the mount point and the NFS share network address:
export jupiter.com:/home/geeko/doc/export Copy The above line means that the /home/geeko/doc/export directory on the jupiter.com host will be auto-mounted to the /nfs/export directory on the local host (/nfs is taken from the auto.master map) when requested. The /nfs/export directory will be created automatically by autofs.
Optionally comment out the related line in /etc/fstab if you previously mounted the same NFS share statically. The line should look similar to this:
#jupiter.com:/home/geeko/doc/export /nfs/export nfs defaults 0 0 Copy Reload autofs and check if it works:
sudo systemctl restart autofs Copy
ls -l /nfs/export
total 20 drwxr-xr-x 5 1001 users 4096 Jan 14 2017 .images/ drwxr-xr-x 10 1001 users 4096 Aug 16 2017 .profiled/ drwxr-xr-x 3 1001 users 4096 Aug 30 2017 .tmp/ drwxr-xr-x 4 1001 users 4096 Apr 25 08:56 manual/ Copy If you can see the list of files on the remote share, then autofs is functioning.
21.5 Advanced topics
This section describes topics that are beyond the basic introduction to autofs—auto-mounting of NFS shares that are available on your network, using wild cards in map files, and information specific to the CIFS file system.
21.5.1 /net mount point
This helper mount point is useful if you use a lot of NFS shares. /net auto-mounts all NFS shares on your local network on demand. The entry is already present in the auto.master file, so all you need to do is uncomment it and restart autofs:
/net -hosts Copy sudo systemctl restart autofs Copy For example, if you have a server named jupiter with an NFS share called /export, you can mount it by typing
sudo cd /net/jupiter/export Copy on the command line.
21.5.2 Using wild cards to auto-mount subdirectories
If you have a directory with subdirectories that you need to auto-mount individually—the typical case is the /home directory with individual users’ home directories inside—autofs offers a clever solution.
In case of home directories, add the following line in auto.master:
/home /etc/auto.home Copy Now you need to add the correct mapping to the /etc/auto.home file, so that the users’ home directories are mounted automatically. One solution is to create separate entries for each directory:
wilber jupiter.com:/home/wilber penguin jupiter.com:/home/penguin tux jupiter.com:/home/tux […] Copy This is very awkward as you need to manage the list of users inside auto.home. You can use the asterisk ‘*’ instead of the mount point, and the ampersand ‘&’ instead of the directory to be mounted:
- jupiter:/home/& Copy 21.5.3 Auto-mounting CIFS file system
If you want to auto-mount an SMB/CIFS share (see Chapter 20, Samba for more information on the SMB/CIFS protocol), you need to modify the syntax of the map file. Add -fstype=cifs in the option field, and prefix the share location with a colon ‘:’.
mount point -fstype=cifs ://jupiter.com/export Copy PreviousChapter 20 Samba NextAppendix A GNU licences