3.4 Mounting and Unmounting Filesystems

The filesystem is best visualized as a tree, rooted, as it were, at /. /dev, /usr, and the other directories in the root directory are branches, which may have their own branches, such as /usr/local, and so on.

There are various reasons to house some of these directories on separate filesystems. /var contains the directories log/, spool/, and various types of temporary files, and as such, may get filled up. Filling up the root filesystem is not a good idea, so splitting /var from / is often favorable.

Another common reason to contain certain directory trees on other filesystems is if they are to be housed on separate physical disks, or are separate virtual disks, such as Network File System mounts, or CDROM drives.

3.4.1 The fstab File

During the boot process, filesystems listed in /etc/fstab are automatically mounted (unless they are listed with the noauto option).

The /etc/fstab file contains a list of lines of the following format:

    device       /mount-point fstype     options      dumpfreq     passno
device

A device name (which should exist), as explained in Disk naming conventions above.

mount-point

A directory (which should exist), on which to mount the filesystem.

fstype

The filesystem type to pass to mount(8). The default FreeBSD filesystem is ufs.

options

Either rw for read-write filesystems, or ro for read-only filesystems, followed by any other options that may be needed. A common option is noauto for filesystems not normally mounted during the boot sequence. Other options are listed in the mount(8) manual page.

dumpfreq

The number of days the filesystem should be dumped, and passno is the pass number during which the filesystem is checked during the boot sequence.

3.4.2 The mount Command

The mount(8) command is what is ultimately used to mount filesystems.

In its most basic form, you use:

    # mount device mountpoint

There are plenty of options, as mentioned in the mount(8) manual page, but the most common are:

Mount Options

-a

Mount all the filesystems listed in /etc/fstab. Exceptions are those marked as ``noauto'', excluded by the -t flag, or those that are already mounted.

-d

Do everything except for the actual system call. This option is useful in conjunction with the -v flag to determine what the mount is actually trying to do.

-f

Force the mount of an unclean filesystem (dangerous), or forces the revocation of write access when downgrading a filesystem's mount status from read-write to read-only.

-r

Mount the filesystem read-only. This is identical to using the rdonly argument to the -o option.

-t fstype

Mount the given filesystem as the given filesystem type, or mount only filesystems of the given type, if given the -a option.

``ufs'' is the default filesystem type.

-u

Update mount options on the filesystem.

-v

Be verbose.

-w

Mount the filesystem read-write.

The -o option takes a comma-separated list of the options, including the following:

nodev

Do not interpret special devices on the filesystem. This is a useful security option.

noexec

Do not allow execution of binaries on this filesystem. This is also a useful security option.

nosuid

Do not interpret setuid or setgid flags on the filesystem. This is also a useful security option.

3.4.3 The umount Command

The umount(8) command takes, as a parameter, one of a mountpoint, a device name, or the -a or -A option.

All forms take -f to force unmounting, and -v for verbosity.

-a and -A are used to unmount all mounted filesystems, possibly modified by the filesystem types listed after -t. -A, however, does not attempt to unmount the root filesystem.

This, and other documents, can be downloaded from ftp://ftp.FreeBSD.org/pub/FreeBSD/doc/.

For questions about FreeBSD, read the documentation before contacting <questions@FreeBSD.org>.
For questions about this documentation, e-mail <doc@FreeBSD.org>.